SaveText.Ru

bot
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using System;
  5. using TMPro;
  6.  
  7.  
  8. public class Genesis : MonoBehaviour
  9. {
  10.    
  11.     public static int pwd = 27000;
  12.     public int[] one = new int[100];
  13.     public int[] two = new int[100];
  14.     public int[] hpHero1 = new int [100];
  15.     public int[] hpHero2 = new int[100];
  16.  
  17.     //public int[] hero = new int[100];
  18.     //public int[] hero2 = new int[100];
  19.     public int[] temphp = new int[100];
  20.     public int[] Winner = new int[100];
  21.    
  22.  
  23.     public int[] temphp2 = new int[100];
  24.     public static int i3 = 0;
  25.     public static int i2 = 0;
  26.     public static int i1 = 0;
  27.     public static int[][] tempHero = new int[64][];
  28.    
  29.  
  30.     public int Turn;
  31.     public bool isPlaerTurn  // Кратность
  32.     {
  33.         get
  34.         {
  35.             return Turn % 2 == 0;
  36.         }
  37.     }
  38.     // Start is called before the first frame update
  39.    
  40.  
  41.     void Start()
  42.     {
  43.        
  44.     }
  45.  
  46.  
  47.     // Update is called once per frame
  48.     void Update()
  49.     {
  50.  
  51.     }
  52.     public void Awake()
  53.     {
  54.        
  55.        
  56.         // for (int i = 0; i < hero.Length; i++)
  57.         //  {
  58.         //     Debug.Log("Hero " + hero[i]);
  59.         // }
  60.  
  61.         //for (int i = 0; i < hero.Length; i++)
  62.         //   {
  63.         //     Debug.Log("Hero2 " + hero2[i]);
  64.         // }
  65.  
  66.         for (int w = 0;w< tempHero.Length; w++) {
  67.             // Debug.Log("tempHero.Length" + tempHero.Length + "w " + w);
  68.             int[] hero = new int[100];
  69.             int[] hero2 = new int[100];
  70.             int[] tHero = new int[100];
  71.             hero = GenerateHero();
  72.             hero2 = GenerateHero();
  73.             tHero = Game(hero, hero2);
  74.           // Debug.Log("tHero[HP]  " + tHero[1]);
  75.             tHero[tHero.Length - 1] = 0; // счетчик уровня карты (1 - 3)
  76.             tHero[tHero.Length - 2] = 0; // счетчик уровня карты (1 - 3)
  77.             tHero[tHero.Length - 3] = 0; // счетчик уровня карты (1 - 3)
  78.             tHero[tHero.Length - 4] = 0; // счетчик уровня карты (1 - 3)
  79.             tHero[tHero.Length - 5] = 0; // Свободный слот (Защита)
  80.             tHero[tHero.Length - 6] = 0; // Замарозить Удар1
  81.             tHero[tHero.Length - 7] = 0; // Замарозить Удар2
  82.             tHero[tHero.Length - 8] = 0; // Замарозить Удар3
  83.             tHero[tHero.Length - 9] = 0; // Замарозить Удар4
  84.             tHero[tHero.Length - 10] = 0; // Счетчки ходов
  85.             tHero[tHero.Length - 11] = 8; // Constanta %
  86.             tHero[tHero.Length - 12] = UnityEngine.Random.Range(1, 4); // Ультимате класс игрока 1>2>3>1
  87.             tHero[tHero.Length - 13] = 0; // Буфер для здоровья 2 игрока
  88.             tHero[tHero.Length - 14] = 0; // Поколения  
  89.             tHero[tHero.Length - 15] = UnityEngine.Random.Range(1, 20);
  90.             tempHero[w] = tHero;
  91.           // Debug.Log("tempHero[HP]  " + tempHero[w][1]);
  92.            
  93.  
  94.         }
  95.        
  96.         StartCoroutine(GoBestGenesis(tempHero));
  97.  
  98.         // GoBestGenesis(tempHero);
  99.  
  100.         Debug.Log("i3= " + i3 + " i2= " + i2 + " i1= " + i1);
  101.         // one = GeneratorFight(hero);
  102.         // for (int i = 0; i < one.Length; i++)
  103.         // {
  104.         //     Debug.Log("One " + one[i]);
  105.         //  }
  106.         // two = GeneratorFight(hero2);
  107.         // for (int i = 0; i < two.Length; i++)
  108.         // {
  109.         //    Debug.Log("Two " + two[i]);
  110.         // }
  111.     }
  112.    
  113.  
  114.     public int[] Game(int[] hero, int[] hero2)
  115.     {
  116.         // Debug.Log("temp[temp.Length - 11]" + hero[hero.Length - 11]); //Константа
  117.  
  118.         // Debug.Log("Attacka" + hero[0]);
  119.         //Debug.Log("at " + hero2[0]);
  120.         //Debug.Log("hp " + hp);
  121.        
  122.         Array.Copy(hero, 0, hpHero1, 0, 64);
  123.         Array.Copy(hero2, 0, hpHero2, 0, 64);
  124.        
  125.        // Debug.Log("hpHero1 " + hpHero1[1]);
  126.        // Debug.Log("hpHero2 " + hpHero2[1]);
  127.         // Debug.Log("temp 2hp  " + temphp2);
  128.         // Debug.Log("temp hp   " + tempHp);
  129.         for (int i = 10; i < hero.Length; i++)
  130.         {
  131.             Turn++; //  Ход другого игрока
  132.                     //Debug.Log("i " + i);
  133.                     // Debug.Log("hp " + hp);
  134.  
  135.             // Debug.Log("hero[i]" + hero[i]);
  136.             //Debug.Log("HP hero2[1] " + hero2[1]);
  137.             //  Debug.Log("Ход N " + hero[hero.Length - 10]);
  138.             // количесво ходов
  139.             ////////////////////////////////////////////////////////////////////////////
  140.  
  141.            // Debug.Log("hpHero1 stage2 " + hpHero1[1]);
  142.            // Debug.Log("hpHero2 stage2 " + hpHero2[1]);
  143.  
  144.             ////////////////////////////////////////////////////////////////////////
  145.             if (hero2[1] <= 0)
  146.             {
  147.                 Array.Copy(hpHero1, 0, hero, 0, 64);
  148.                
  149.              //   Debug.Log("stage1 hero2[HP] stage2 " + hero2[1]);
  150.                 Turn = 0;
  151.                 if (hero2[hero2.Length - 14] > 1000)
  152.                 {
  153.                   Debug.Log("Мне дали пизды Побед подряд = " + hero2[hero2.Length - 14] + "мой класс " + hero2[hero2.Length - 12] + " это был я сука побед: " + hero[hero.Length - 14] + "Класс  " + hero[hero.Length - 12]);
  154.                 }
  155.                 return hero;
  156.                
  157.             }
  158.             if (hero[1] <= 0)
  159.             {
  160.                 Array.Copy(hpHero2, 0, hero2, 0, 64);
  161.                 //  Debug.Log("stage1 hero1[HP] stage2 " + hero[1]);
  162.                 if (hero[hero.Length - 14] > 1000)
  163.                 {
  164.                  Debug.Log("Мне дали пизды Побед подряд = " + hero[hero.Length - 14] + "мой класс " + hero[hero.Length - 12]  +" это был я сука побед: "  + hero2[hero2.Length - 14] + "Класс  " + hero2[hero2.Length - 12]);
  165.                 }
  166.                 Turn = 0;
  167.                 return hero2;
  168.                
  169.             }
  170.          
  171.  
  172.             //// запомнить здоровья 2 игроков
  173.             ///
  174.            
  175.             //////////////////////////
  176.             if (isPlaerTurn)
  177.             {
  178.                 _CooldaunUdar(hero,out hero);
  179.                 Fight(hero, hero2, i);
  180.                 int g = UnityEngine.Random.Range(0, hero[hero.Length -15]); // бот тестит лучше с контро играть или нет
  181.                 if (g == 1)
  182.                 {
  183.                     CheackContra(hero,hero2, i);
  184.                 }
  185.  
  186.  
  187.             }
  188.             else
  189.             {
  190.                 i -= 1;
  191.                 _CooldaunUdar(hero2, out hero2);
  192.                
  193.                 if (i < 0)
  194.                 {
  195.                 Debug.Log("Жопа у 2 игрока I = -1;");
  196.                     break;
  197.                 }
  198.                 Fight(hero2, hero, i);
  199.                 int g = UnityEngine.Random.Range(0, hero2[hero2.Length -15]);
  200.                 if (g == 1)
  201.                 {
  202.                     CheackContra(hero2, hero, i);
  203.                 }
  204.  
  205.             }
  206.  
  207.  
  208.         }
  209.  
  210.         return hero;
  211.     }
  212.  
  213.     public int[] ChangeFight(int[] hero, int[] hero2, int i)   //Смена удара генетическая мутация масива !
  214.     {
  215.         //  Debug.Log("ChangeFight");
  216.         if (hero[hero.Length - 6] != 0)
  217.         {
  218.             hero = Udar1(hero, hero2, i);
  219.             hero[i] = 2;
  220.             return hero;
  221.         }
  222.         if (hero[hero.Length - 7] != 0)
  223.         {
  224.             hero = Udar2(hero, hero2, i);
  225.             hero[i] = 3;
  226.             return hero;
  227.         }
  228.         if (hero[hero.Length - 8] != 0)
  229.         {
  230.             hero = Udar3(hero, hero2, i);
  231.             hero[i] = 4;
  232.             return hero;
  233.         }
  234.         if (hero[hero.Length - 9] != 0)
  235.         {
  236.             hero = Udar4(hero, hero2, i);
  237.             hero[i] = 5;
  238.             return hero;
  239.         }
  240.  
  241.         return hero;
  242.     }
  243.     public int[] BlockFight(int[] hero, int[] hero2, int i)
  244.     {
  245.        
  246.  
  247.         // Debug.Log("BlockFight");
  248.         if (hero[i] == 2 || hero[i] == 20)   // 1 Карта !!!
  249.         {
  250.             if (hero[hero.Length - 1] == 3)
  251.             {
  252.                 if (hero[6] > hero[2])
  253.                 {
  254.                     hero[hero.Length - 6] = hero[6];
  255.                     hero[hero.Length - 1] = 0;
  256.                     return hero;
  257.                 }
  258.  
  259.             }
  260.            
  261.             hero[hero.Length - 1] = 0;
  262.             hero[hero.Length - 6] = hero[2];
  263.            
  264.             return hero;
  265.         }
  266.         if (hero[i] == 3 || hero[i] == 30)   // 2 Карта !!!
  267.         {
  268.             if (hero[hero.Length - 2] == 3)
  269.             {
  270.                 if (hero[7] > hero[2])
  271.                 {
  272.                     hero[hero.Length - 7] = hero[7];
  273.                     hero[hero.Length - 2] = 0;
  274.                     return hero;
  275.                 }
  276.             }
  277.             hero[hero.Length - 2] = 0;
  278.             hero[hero.Length - 7] = hero[3];
  279.             return hero;
  280.         }
  281.         if (hero[i] == 4 || hero[i] == 40)   // 3 Карта !!!
  282.         {
  283.             hero[hero.Length - 5] = 0; //снять зашитный баф
  284.             if (hero[hero.Length - 4] == 3)
  285.             {
  286.                 if (hero[8] > hero[4])
  287.                 {
  288.                     hero[hero.Length - 8] = hero[8];
  289.                     hero[hero.Length - 3] = 0;
  290.                     return hero;
  291.                 }
  292.             }
  293.             hero[hero.Length - 3] = 0;
  294.             hero[hero.Length - 8] = hero[4];
  295.             return hero;
  296.         }
  297.         if (hero[i] == 5 || hero[i] == 50)   // 4 Карта !!!
  298.         {
  299.             if (hero[hero.Length - 5] == 3)
  300.             {
  301.                 if (hero[9] > hero[5])
  302.                 {
  303.                     hero[hero.Length - 9] = hero[9];
  304.                     hero[hero.Length - 5] = 0;
  305.                     return hero;
  306.                 }
  307.             }
  308.             hero[hero.Length - 5] = 0;
  309.             hero[hero.Length - 9] = hero[5];
  310.             return hero;
  311.         }
  312.         return hero;
  313.     }   // 2 Стадия
  314.  
  315.     public int[] Udar1(int[] hero, int[] hero2, int i)
  316.     {
  317.         //   Debug.Log("Udar1");
  318.         int hp = 0;
  319.  
  320.         if (hero[hero.Length - 1] == 3)
  321.         {
  322.             //   Debug.Log("hero[hero.Length - 1] == 3");
  323.             if (hero[2] < hero[6])
  324.             {
  325.                 hp = hero[6] * hero[0] + hero[6] * hero[0] * hero[hero.Length - 11] / 100;
  326.                 hero[hero.Length - 13] = hp;
  327.                 hero[0] += hero[hero.Length - 11] * hero[0] * hero[6] / 100;
  328.                 return hero;
  329.             }
  330.             hp = hero[2] * hero[0] + hero[2] * hero[0] * hero[hero.Length - 11] / 100;
  331.             hero[hero.Length - 13] = hp;
  332.             hero[0] += hero[hero.Length - 11] * hero[0] * hero[2] / 100;
  333.             return hero;
  334.         }
  335.         if (hero[hero.Length - 1] == 2)
  336.         {
  337.             if (hero[2] < hero[6])
  338.             {
  339.                 hp = hero[6] * hero[0] + hero[6] * hero[0] * hero[hero.Length - 11] / 100;
  340.                 hero[hero.Length - 1] = 3;
  341.                 hero[hero.Length - 13] = hp;
  342.                 hero[0] += hero[hero.Length - 11] * hero[0] * hero[6] / 100;
  343.                 return hero;
  344.             }
  345.             hp = hero[2] * hero[0] + hero[2] * hero[0] * hero[hero.Length - 11] / 100;
  346.             hero[hero.Length - 1] = 3;
  347.             hero[hero.Length - 13] = hp;
  348.             hero[0] += hero[hero.Length - 11] * hero[0] * hero[2] / 100;
  349.             return hero;
  350.         }
  351.         if (hero[hero.Length - 1] == 1)
  352.         {
  353.             hp = hero[2] * hero[0] + hero[2] * hero[0] * hero[hero.Length - 11] / 100;
  354.             hero[hero.Length - 1] = 2;
  355.             hero[hero.Length - 13] = hp;
  356.             hero[0] += hero[hero.Length - 11] * hero[0] * hero[2] / 100;
  357.             return hero;
  358.         }
  359.  
  360.         hero[hero.Length - 1] = 1; // уровень 1 карты
  361.         hp = hero[2] * hero[0];
  362.         hero[hero.Length - 13] = hp;
  363.         return hero;
  364.     }
  365.     public int[] Udar2(int[] hero, int[] hero2, int i)
  366.     {
  367.         //  Debug.Log("Udar2");
  368.         int hp = 0;
  369.  
  370.         if (hero[hero.Length - 2] == 3)
  371.         {
  372.             //    Debug.Log("hero[hero.Length - 2] == 3");
  373.             if (hero[3] < hero[7])
  374.             {
  375.                 hp = hero[7] * hero[0] ;
  376.                 hero[hero.Length - 13] = hp;
  377.                 return hero;
  378.             }
  379.             hp = hero[3] * hero[0] ;
  380.             hero[hero.Length - 13] = hp;
  381.             return hero;
  382.         }
  383.         if (hero[hero.Length - 2] == 2)
  384.         {
  385.             if (hero[3] < hero[7])
  386.             {
  387.                 hp = hero[7] * hero[0] ;
  388.                 hero[hero.Length - 1] = 3;
  389.                 hero[hero.Length - 13] = hp;
  390.                 return hero;
  391.             }
  392.             hp = hero[3] * hero[0] ;
  393.             hero[hero.Length - 1] = 3;
  394.             hero[hero.Length - 13] = hp;
  395.             return hero;
  396.         }
  397.         if (hero[hero.Length - 2] == 1)
  398.         {
  399.             hp = hero[3] * hero[0] ;
  400.             hero[hero.Length - 1] = 2;
  401.             hero[hero.Length - 13] = hp;
  402.             return hero;
  403.         }
  404.  
  405.         hero[hero.Length - 2] = 1; // уровень 2 карты
  406.         hp = hero[3] * hero[0];
  407.         hero[hero.Length - 13] = hp;
  408.         return hero;
  409.     }
  410.     public int[] Udar3(int[] hero, int[] hero2, int i)
  411.     {
  412.         //    Debug.Log("Udar3");
  413.         int hp = 0;
  414.  
  415.         if (hero[hero.Length - 3] == 3)
  416.         {
  417.             //       Debug.Log("hero[hero.Length - 3] == 3");
  418.             if (hero[4] < hero[8])
  419.             {
  420.                 hp = hero[8] * hero[0];
  421.                 int hh2 = hero[hero.Length - 11] * hero[8];
  422.                 hero[hero.Length - 13] = hp;
  423.                 return hero;
  424.             }
  425.             hp = hero[4] * hero[0];
  426.             int hh = hero[hero.Length - 11] * hero[4];
  427.             hero[hero.Length - 13] = hp;
  428.             return hero;
  429.         }
  430.         if (hero[hero.Length - 3] == 2)
  431.         {
  432.             if (hero[4] < hero[8])
  433.             {
  434.                 hp = hero[8] * hero[0];
  435.                 int hh2 = hero[hero.Length - 11] * hero[8];
  436.                 hero[hero.Length - 3] = 3;
  437.                 hero[hero.Length - 13] = hp;
  438.                 return hero;
  439.             }
  440.             hp = hero[4] * hero[0];
  441.             int hh = hero[hero.Length - 11] * hero[4];
  442.             hero[hero.Length - 3] = 3;
  443.             hero[hero.Length - 13] = hp;
  444.             return hero;
  445.         }
  446.         if (hero[hero.Length - 3] == 1)
  447.         {
  448.             hp = hero[4] * hero[0];
  449.             int hh = hero[hero.Length - 11] * hero[4] ;
  450.             hero[hero.Length - 5] = hh; // процент защиты
  451.             hero[hero.Length - 13] = hp;
  452.             hero[hero.Length - 3] = 2;
  453.             return hero;
  454.         }
  455.  
  456.         hero[hero.Length - 3] = 1; // уровень 3 карты
  457.         hp = hero[4] * hero[0];
  458.         hero[hero.Length - 13] = hp;
  459.         return hero;
  460.     }
  461.     public int[] Udar4(int[] hero, int[] hero2, int i)
  462.     {
  463.         //  Debug.Log("Udar4");
  464.         int hp = 0;
  465.  
  466.         if (hero[hero.Length - 4] == 3)   // уровень 4 карты
  467.         {
  468.             int temp, temp2;
  469.             temp = hero[hero.Length - 12];
  470.             temp2 = hero2[hero.Length - 12];
  471.             if (temp + 1 == temp2 || temp - 2 == temp2)
  472.             {
  473.                 if (hero[5] < hero[9])
  474.                 {
  475.                     hp = hero[1] * hero[hero.Length - 11] * hero[9] / 100;
  476.                     hero[hero.Length - 4] = 3; // уровень 4 карты
  477.                     hero[hero.Length - 13] = hp;
  478.                     return hero;
  479.                 }
  480.                 hp = hero[5] * hero[0] + hero[5] * hero[0] * hero[hero.Length - 11] / 100;
  481.                 hero[hero.Length - 13] = hp;
  482.                 return hero;
  483.             }
  484.             hp = hero[5] * hero[0] + hero[5] * hero[0] * hero[hero.Length - 11] / 100 / 2;
  485.             hero[hero.Length - 13] = hp;
  486.             return hero;
  487.         }
  488.         if (hero[hero.Length - 4] == 2)
  489.         {
  490.             int temp, temp2;
  491.             temp = hero[hero.Length - 12];
  492.             temp2 = hero2[hero.Length - 12];
  493.             if (temp + 1 == temp2 || temp - 2 == temp2)
  494.             {
  495.                 if (hero[5] < hero[9])
  496.                 {
  497.                     hp = hero[1] * hero[hero.Length - 11] * hero[9] / 100;
  498.                     hero[hero.Length - 4] = 3; // уровень 4 карты
  499.                     hero[hero.Length - 13] = hp;
  500.                     return hero;
  501.                 }
  502.                 hp = hero[1] * hero[hero.Length - 11] * hero[5] / 100;
  503.                 hero[hero.Length - 4] = 3; // уровень 4 карты
  504.                 hero[hero.Length - 13] = hp;
  505.                 return hero;
  506.             }
  507.             hp = hero[1] * hero[hero.Length - 11] * hero[5] / 100 / 2;
  508.             hero[hero.Length - 4] = 3; // уровень 4 карты
  509.             hero[hero.Length - 13] = hp;
  510.             return hero;
  511.         }
  512.         if (hero[hero.Length - 1] == 1)
  513.         {
  514.             int temp, temp2;
  515.             temp = hero[hero.Length - 12];
  516.             temp2 = hero2[hero.Length - 12];
  517.             if (temp + 1 == temp2 || temp - 2 == temp2)
  518.             {
  519.                 hp = hero[1] * hero[hero.Length - 11] * hero[5] / 100;
  520.                 hero[hero.Length - 4] = 2; // уровень 4 карты
  521.                 hero[hero.Length - 13] = hp;
  522.                 return hero;
  523.  
  524.             }
  525.             hp = hero[1] * hero[hero.Length - 11] * hero[5] / 100 / 2;
  526.             hero[hero.Length - 4] = 2; // уровень 4 карты
  527.             hero[hero.Length - 13] = hp;
  528.             return hero;
  529.         }
  530.  
  531.         hero[hero.Length - 4] = 1;  // уровень 4 карты
  532.         hp = hero[5] * hero[0];
  533.         hero[hero.Length - 13] = hp;
  534.         return hero;
  535.     }
  536.     public int BackHp(int[] hero, int oldhp, int newHp)
  537.     {
  538.         if (hero[hero.Length - 5] > 46)
  539.         {
  540.            // Debug.Log("Защита Aploved " + hero[hero.Length - 5]);
  541.         }
  542.         int hp = 0;
  543.         if (hero[hero.Length - 5] != 0)
  544.         {
  545.             int tempDamage = oldhp - newHp;
  546.             hp = tempDamage * hero[hero.Length - 5] / 200;
  547.            
  548.             if (hp < 0)
  549.             {
  550.                 return 0;
  551.             }
  552.            // Debug.Log("Hp Back " + hp);
  553.             return hp;
  554.         }
  555.  
  556.         return hp;
  557.     }
  558.     public void Fight(int[] hero,int[] hero2, int i)
  559.     {
  560.         int tempHeals = hero2[1];
  561.         if (hero[hero.Length - 6] != 0 && hero[hero.Length - 7] != 0 && hero[hero.Length - 8] != 0 && hero[hero.Length - 9] != 0)
  562.         {
  563.  
  564.             hero2[1] -= hero[0];
  565.             hero2[1] += BackHp(hero2, tempHeals, hero2[1]);
  566.             hero[hero.Length - 10] += 1;
  567.             hero[i] = 1;  // генетическая мутация
  568.            // Debug.Log("Мутация Активированна");
  569.            // Debug.Log("Удар " + hero[2] + " Удар  " + hero[3] + " Удар  " + hero[4] + " Удар  " + hero[5] + " Удар  " + hero[6] + " Удар  " + hero[7] + " Удар  " + hero[8] + " Удар  " + hero[9]);
  570.            // Debug.Log("Block " + hero[hero.Length - 6] + " Block " + hero[hero.Length - 7] + " Block " + hero[hero.Length - 8] + " Block " + hero[hero.Length - 9]);
  571.            
  572.         }   //если все
  573.         if (hero[i] == 2 || hero[i] == 3 || hero[i] == 4 || hero[i] == 5 || hero[i] == 20 || hero[i] == 30 || hero[i] == 40 || hero[i] == 50)
  574.         {
  575.             if (hero2[i] == 10 || hero2[i] == 20 || hero2[i] == 30 || hero2[i] == 40 || hero2[i] == 50)
  576.             {
  577.                 hero = BlockFight(hero, hero2, i);
  578.                 hero[hero.Length - 10] += 1;
  579.                 //  Debug.Log("Standart block" + hero[hero.Length - 10]);
  580.                
  581.             }
  582.  
  583.             if (hero[i] == 2 || hero[i] == 20)
  584.             {
  585.                 if (hero[hero.Length - 6] != 0)  // Карта заблокированна
  586.                 {
  587.                     hero = ChangeFight(hero, hero2, i);
  588.                     hero[hero.Length - 10] += 1;
  589.                     hero2[1] -= hero[hero.Length - 13];
  590.                     hero2[1] += BackHp(hero2, tempHeals, hero2[1]);
  591.                    
  592.                 }
  593.                 hero = Udar1(hero, hero2, i);
  594.                 //Debug.Log("-HP " + hero[hero.Length - 13]);
  595.                 hero[hero.Length - 10] += 1;
  596.                 hero2[1] -= hero[hero.Length - 13];  // отнять жизни
  597.                 hero2[1] += BackHp(hero2, tempHeals, hero2[1]);
  598.                
  599.             }
  600.             if (hero[i] == 3 || hero[i] == 30)
  601.             {
  602.                 if (hero[hero.Length - 7] != 0)  // Карта заблокированна
  603.                 {
  604.                     hero = ChangeFight(hero, hero2, i);
  605.                     hero[hero.Length - 10] += 1;
  606.                     hero2[1] -= hero[hero.Length - 13];
  607.                     hero2[1] += BackHp(hero2, tempHeals, hero2[1]);
  608.                     hero[1] += hero[hero.Length - 13] * hero[hero.Length - 11] / 50;   //50% вамперизм
  609.  
  610.                 }
  611.                 hero = Udar2(hero, hero2, i);
  612.                 hero[hero.Length - 10] += 1;
  613.                 hero2[1] -= hero[hero.Length - 13];  // отнять жизни
  614.                                                      // Debug.Log("-HP2 " + hero[hero.Length - 13]);
  615.                 hero2[1] += BackHp(hero2, tempHeals, hero2[1]);
  616.                 hero[1] += hero[hero.Length - 13] * hero[hero.Length - 11] / 50; //50% вамперизм
  617.             }
  618.             if (hero[i] == 4 || hero[i] == 40)
  619.             {
  620.                 if (hero[hero.Length - 8] != 0)  // Карта заблокированна
  621.                 {
  622.                     hero = ChangeFight(hero, hero2, i);
  623.                     hero[hero.Length - 10] += 1;
  624.                     hero2[1] -= hero[hero.Length - 13];
  625.                     hero2[1] += BackHp(hero2, tempHeals, hero2[1]);
  626.                    
  627.                 }
  628.                 hero = Udar3(hero, hero2, i);
  629.                 hero[hero.Length - 10] += 1;
  630.                 hero2[1] -= hero[hero.Length - 13];  // отнять жизни
  631.                                                      //Debug.Log("-HP3 " + hero[hero.Length - 13]);
  632.                 hero2[1] += BackHp(hero2, tempHeals, hero2[1]);
  633.              
  634.             }
  635.             if (hero[i] == 5 || hero[i] == 50)
  636.             {
  637.                 if (hero[hero.Length - 9] != 0)  // Карта заблокированна
  638.                 {
  639.                     hero = ChangeFight(hero, hero2, i);
  640.                     hero[hero.Length - 10] += 1;
  641.                     hero2[1] -= hero[hero.Length - 13];
  642.                     hero2[1] += BackHp(hero2, tempHeals, hero2[1]);
  643.                  
  644.                 }
  645.                 hero = Udar4(hero, hero2, i);
  646.                 hero[hero.Length - 10] += 1;
  647.                 hero2[1] -= hero[hero.Length - 13];  // отнять жизни
  648.                                                      // Debug.Log("-HP4 " + hero[hero.Length - 13]);
  649.                 hero2[1] += BackHp(hero2, tempHeals, hero2[1]);
  650.                
  651.             }
  652.         }
  653.         if (hero[i] == 10)
  654.         {
  655.  
  656.             hero2[1] -= hero[0];
  657.             hero2[1] += BackHp(hero2, tempHeals, hero2[1]);
  658.             hero[hero.Length - 10] += 1;
  659.            
  660.         }
  661.         hero[i] = 1;
  662.         hero2[1] -= hero[0];
  663.         hero2[1] += BackHp(hero2, tempHeals, hero2[1]);
  664.         hero[hero.Length - 10] += 1;
  665.      
  666.     } // 1 стадия
  667.     public void _CooldaunUdar(int [] hero, out int[] newHero)
  668.     {
  669.         if (hero[hero.Length - 6] != 0)
  670.         {
  671.             hero[hero.Length - 6] -= 1;
  672.             //  Debug.Log("Ban6 " + hero[hero.Length - 6]);
  673.         }
  674.         if (hero[hero.Length - 7] != 0)
  675.         {
  676.             hero[hero.Length - 7] -= 1;
  677.             //  Debug.Log("Ban7 " + hero[hero.Length - 7]);
  678.         }
  679.         if (hero[hero.Length - 8] != 0)
  680.         {
  681.             hero[hero.Length - 8] -= 1;
  682.             // Debug.Log("Ban8 " + hero[hero.Length - 8]);
  683.         }
  684.         if (hero[hero.Length - 9] != 0)
  685.         {
  686.             hero[hero.Length - 9] -= 1;
  687.             // Debug.Log("Ban9 " + hero[hero.Length - 9]);
  688.         }
  689.         newHero = hero;
  690.         return;
  691.     }
  692.     public int[] GenerateHero()
  693.     {
  694.         int at = UnityEngine.Random.Range(17, 30);
  695.         int hp = pwd / at;
  696.         int[] temp = new int[10];
  697.         while (true)
  698.         {
  699.             int a = UnityEngine.Random.Range(2, 7);
  700.             int b = UnityEngine.Random.Range(2, 7);
  701.             int c = UnityEngine.Random.Range(2, 7);
  702.             int d = UnityEngine.Random.Range(2, 7);
  703.             int w = a + b + c + d;
  704.  
  705.             if (w == 12)
  706.             {
  707.                 temp[0] = at;
  708.                 temp[1] = hp;
  709.                 temp[2] = a;
  710.                 temp[3] = b;
  711.                 temp[4] = c;
  712.                 temp[5] = d;
  713.                 break;
  714.             }
  715.  
  716.         }
  717.  
  718.         while (true)
  719.         {
  720.             int a = UnityEngine.Random.Range(1, 9);
  721.             int b = UnityEngine.Random.Range(1, 9);
  722.             int c = UnityEngine.Random.Range(1, 9);
  723.             int d = UnityEngine.Random.Range(1, 9);
  724.             int w = a + b + c + d;
  725.             if (w == 12)
  726.             {
  727.                 temp[6] = a;  // критический урон уровень 2
  728.                 temp[7] = b;  // вампериз 2
  729.                 temp[8] = c;  // щит 2
  730.                 temp[9] = d;  // ульт 2
  731.  
  732.                 break;
  733.             }
  734.  
  735.         }
  736.         // int[] temp2 = GeneratorFight(temp);
  737.         return GeneratorFight(temp);
  738.     }
  739.  
  740.     public int[] GeneratorFight(int[] hero)
  741.     {
  742.  
  743.         int[] temp = new int[100];
  744.         for (int i = 0; i < hero.Length; i++)
  745.         {
  746.             //  Debug.Log("Leght" + Hero.Length);
  747.             temp[i] = hero[i];
  748.         }
  749.         for (int i = hero.Length; i < temp.Length; i++)
  750.  
  751.         {
  752.  
  753.             temp[i] = UnityEngine.Random.Range(1, 6);
  754.         }
  755.         for (int i = 0; i < 6;)
  756.         {
  757.             int j = UnityEngine.Random.Range(10, 30);
  758.             if (temp[j] == 1 || temp[j] == 2 || temp[j] == 3 || temp[j] == 4 || temp[j] == 5)
  759.             {
  760.                 if (temp[j] == 1)
  761.                 {
  762.                     temp[j] = 10;
  763.                 }
  764.                 if (temp[j] == 2)
  765.                 {
  766.                     temp[j] = 20;
  767.                 }
  768.                 if (temp[j] == 3)
  769.                 {
  770.                     temp[j] = 30;
  771.                 }
  772.                 if (temp[j] == 4)
  773.                 {
  774.                     temp[j] = 40;
  775.                 }
  776.                 if (temp[j] == 5)
  777.                 {
  778.                     temp[j] = 50;
  779.                 }
  780.  
  781.                 i++;
  782.             }
  783.  
  784.         }
  785.         temp[temp.Length - 1] = 0; // счетчик уровня карты (1 - 3)
  786.         temp[temp.Length - 2] = 0; // счетчик уровня карты (1 - 3)
  787.         temp[temp.Length - 3] = 0; // счетчик уровня карты (1 - 3)
  788.         temp[temp.Length - 4] = 0; // счетчик уровня карты (1 - 3)
  789.         temp[temp.Length - 5] = 0; // Свободный слот (Защита)
  790.         temp[temp.Length - 6] = 0; // Замарозить Удар1
  791.         temp[temp.Length - 7] = 0; // Замарозить Удар2
  792.         temp[temp.Length - 8] = 0; // Замарозить Удар3
  793.         temp[temp.Length - 9] = 0; // Замарозить Удар4
  794.         temp[temp.Length - 10] = 0; // Счетчки ходов
  795.         temp[temp.Length - 11] = 8; // Constanta %
  796.         temp[temp.Length - 12] = UnityEngine.Random.Range(1, 4); // Ультимате класс игрока 1>2>3>1
  797.         temp[temp.Length - 13] = 0; // Буфер для здоровья 2 игрока
  798.         return temp;
  799.     }
  800.     public int[] GeneratorNewClone(int [] hero, int [] hero2)
  801.     {
  802.         int[] temp = new int[100];
  803.         for(int i = 0; i < 6; i++) // скрещевание 1 стадия
  804.         {
  805.             temp[i] = hero[i];
  806.         }
  807.         for (int i = 6; i < 10; i++)  // скрещевание 2 стадия
  808.         {
  809.             temp[i] = hero2[i];
  810.         }
  811.         for (int i = 10; i < 100; i++)   //генерация ударов
  812.  
  813.         {
  814.             temp[i] = UnityEngine.Random.Range(1, 6);
  815.         }
  816.  
  817.  
  818.         for (int i = 0; i < 6;)  // замена ударов на удар + блок
  819.         {
  820.             int j = UnityEngine.Random.Range(10, 30);
  821.             if (temp[j] == 1 || temp[j] == 2 || temp[j] == 3 || temp[j] == 4 || temp[j] == 5)
  822.             {
  823.                 if (temp[j] == 1)
  824.                 {
  825.                     temp[j] = 10;
  826.                 }
  827.                 if (temp[j] == 2)
  828.                 {
  829.                     temp[j] = 20;
  830.                 }
  831.                 if (temp[j] == 3)
  832.                 {
  833.                     temp[j] = 30;
  834.                 }
  835.                 if (temp[j] == 4)
  836.                 {
  837.                     temp[j] = 40;
  838.                 }
  839.                 if (temp[j] == 5)
  840.                 {
  841.                     temp[j] = 50;
  842.                 }
  843.  
  844.                 i++;
  845.             }
  846.  
  847.         }
  848.         temp[temp.Length - 1] = 0; // счетчик уровня карты (1 - 3)
  849.         temp[temp.Length - 2] = 0; // счетчик уровня карты (1 - 3)
  850.         temp[temp.Length - 3] = 0; // счетчик уровня карты (1 - 3)
  851.         temp[temp.Length - 4] = 0; // счетчик уровня карты (1 - 3)
  852.         temp[temp.Length - 5] = 0; // Свободный слот (Защита)
  853.         temp[temp.Length - 6] = 0; // Замарозить Удар1
  854.         temp[temp.Length - 7] = 0; // Замарозить Удар2
  855.         temp[temp.Length - 8] = 0; // Замарозить Удар3
  856.         temp[temp.Length - 9] = 0; // Замарозить Удар4
  857.         temp[temp.Length - 10] = 0; // Счетчки ходов
  858.         temp[temp.Length - 11] = 8; // Constanta %
  859.         temp[temp.Length - 12] = UnityEngine.Random.Range(1, 4); // Ультимате класс игрока 1>2>3>1
  860.         temp[temp.Length - 13] = 0; // Буфер для здоровья 2 игрока
  861.         temp[temp.Length - 14] = 0; // Счетчик побед
  862.         temp[temp.Length - 15] = UnityEngine.Random.Range(1, 20); // Счетчик побед
  863.         return temp;
  864.     }
  865.  
  866.     IEnumerator GoBestGenesis(int[][] hero)
  867.     {
  868.         //Debug.Log("KAKAITO PIZDEC222");
  869.  
  870.         int[][] tempWinner = new int[32][]; // временное хранилище
  871.         int[][] newGameBot = new int[32][];
  872.         int[] b1 = new int[100];
  873.         int[] b2 = new int[100];
  874.        // int[] Winner = new int[100]; // бот победитель
  875.         for (int w = 0; w < hero.Length/2; w++)
  876.         {
  877.           // Debug.Log("Fuflo ");
  878.           //  Debug.Log("w= " + w);
  879.             b1 = hero[w];
  880.             int www = hero.Length - w -1;
  881.            // Debug.Log("Fuflo 2");
  882.            
  883.             b2 = hero[www];
  884.            // Debug.Log("b2  " + " " + b2[0] + " " + b2[1] + " " + b2[2] + " " + b2[3] + " " + b2[4] + " " + b2[5]);
  885.  
  886.            // Debug.Log("hero.Length" + hero.Length);
  887.           // Debug.Log("HP b2 " + b2[1]);
  888.           //  Debug.Log("KAKAITO PIZDEC333");
  889.            
  890.             Winner = Game(b1, b2);
  891.             Winner[Winner.Length - 14] += 1;
  892.             tempWinner[w] = Winner;
  893.             if (Winner[Winner.Length - 14] > 10000)
  894.             {
  895.                 Debug.Log("Я батя бот " + Winner[0] + " " + Winner[1] + " " + Winner[2] + " " + Winner[3] + " " + Winner[4] + " " + Winner[5] + " " + Winner[6] + " " + Winner[7] + " " + Winner[8] + " " + Winner[9] + " Class " + Winner[Winner.Length - 12] + "Удар " + Winner[10] + "Удар " + Winner[11] + "Удар " + Winner[12] + "Удар " + Winner[13] + "Удар " + Winner[14] + "Удар " + Winner[15] + "Удар " + Winner[16] + "Удар " + Winner[17] + "Удар " + Winner[18] + "Удар " + Winner[19] + "Удар " + Winner[20] + "Удар " + Winner[21] + "Удар " + Winner[22] + "Удар " + Winner[23] + "Удар " + Winner[24] + "Удар " + Winner[25] + "Удар " + Winner[26] + "Удар " + Winner[27] + "Удар " + Winner[28] + "Удар " + Winner[29] + "Удар " + Winner[30] + "Удар " + Winner[31] + "Удар " + Winner[32] + "Удар " + Winner[33] + "Процент игры с контроударами " + Winner[Winner.Length -15]);
  896.                 Winner[Winner.Length - 14] = 0;
  897.             }
  898.  
  899.  
  900.         }
  901.         for(int i=0;i<tempWinner.Length;i++)
  902.         {
  903.  
  904.            newGameBot[i] = GeneratorNewClone(tempWinner[i], tempWinner[tempWinner.Length - 1 - i]);
  905.           //  Debug.Log("I " + i);
  906.         }
  907.         int[][] fullpack = new int[64][];
  908.  
  909.         for (int i = 0; i < 32;++i)
  910.         {
  911.            // Debug.Log("fullpack  " + fullpack.Length + "tempWinner  " + tempWinner.Length);
  912.             fullpack[i] = tempWinner[i];
  913.         }
  914.         for (int i = 0; i < 32; ++i)
  915.         {
  916.           //  Debug.Log("fullpack  " + fullpack.Length + "newGameBot  " + newGameBot.Length);
  917.             fullpack[32+i] = newGameBot[i];
  918.         }
  919.  
  920.  
  921.         // Debug.Log("KAKAITO PIZDEC");
  922.  
  923.         yield return new WaitForFixedUpdate();
  924.         yield return StartCoroutine(GoBestGenesis(fullpack));
  925.        
  926.        
  927.      
  928.        
  929.  
  930.     }
  931.  
  932.     public int[] Udar1Contra(int[] hero, int[] hero2, int i)
  933.     {
  934.         //   Debug.Log("Udar1");
  935.         int hp = 0;
  936.  
  937.         if (hero[hero.Length - 1] == 3)
  938.         {
  939.             //   Debug.Log("hero[hero.Length - 1] == 3");
  940.             if (hero[2] < hero[6])
  941.             {
  942.                 hp = hero[6] * hero[0];
  943.                 hero[hero.Length - 13] = hp;
  944.                 return hero;
  945.             }
  946.             hp = hero[2] * hero[0];
  947.             hero[hero.Length - 13] = hp;
  948.             return hero;
  949.         }
  950.         if (hero[hero.Length - 1] == 2)
  951.         {
  952.             if (hero[2] < hero[6])
  953.             {
  954.  
  955.                 hp = hero[6] * hero[0];
  956.                
  957.                 hero[hero.Length - 13] = hp;
  958.                 hero[hero.Length - 6] = hero[6];
  959.                 return hero;
  960.             }
  961.             hp = hero[2] * hero[0];
  962.             hero[hero.Length - 13] = hp;
  963.             hero[hero.Length - 6] = hero[2];
  964.             return hero;
  965.         }
  966.         if (hero[hero.Length - 1] == 1)
  967.         {
  968.             hp = hero[2] * hero[0];
  969.             hero[hero.Length - 13] = hp;
  970.             hero[hero.Length - 6] = hero[2];
  971.             return hero;
  972.         }
  973.        
  974.         hp = hero[2] * hero[0];
  975.         hero[hero.Length - 13] = hp;
  976.         hero[hero.Length - 6] = hero[2];
  977.         return hero;
  978.     }
  979.     public int[] Udar2Contra(int[] hero, int[] hero2, int i)
  980.     {
  981.         //  Debug.Log("Udar2");
  982.         int hp = 0;
  983.  
  984.         if (hero[hero.Length - 2] == 3)
  985.         {
  986.             //    Debug.Log("hero[hero.Length - 2] == 3");
  987.             if (hero[3] < hero[7])
  988.             {
  989.                 hp = hero[7] * hero[0];
  990.                 hero[hero.Length - 13] = hp;
  991.                 hero[hero.Length - 7] = hero[7];
  992.                 return hero;
  993.             }
  994.             hp = hero[3] * hero[0];
  995.             hero[hero.Length - 13] = hp;
  996.             hero[hero.Length - 7] = hero[3];
  997.             return hero;
  998.         }
  999.         if (hero[hero.Length - 2] == 2)
  1000.         {
  1001.             if (hero[3] < hero[7])
  1002.             {
  1003.                 hp = hero[7] * hero[0];
  1004.                
  1005.                 hero[hero.Length - 13] = hp;
  1006.                 hero[hero.Length - 7] = hero[7];
  1007.                 return hero;
  1008.             }
  1009.             hp = hero[3] * hero[0];
  1010.            
  1011.             hero[hero.Length - 13] = hp;
  1012.             hero[hero.Length - 7] = hero[3];
  1013.             return hero;
  1014.         }
  1015.         if (hero[hero.Length - 2] == 1)
  1016.         {
  1017.             hp = hero[3] * hero[0];
  1018.            
  1019.             hero[hero.Length - 13] = hp;
  1020.             hero[hero.Length - 7] = hero[3];
  1021.             return hero;
  1022.         }
  1023.  
  1024.        
  1025.         hp = hero[3] * hero[0];
  1026.         hero[hero.Length - 13] = hp;
  1027.         hero[hero.Length - 7] = hero[3];
  1028.         return hero;
  1029.     }
  1030.     public int[] Udar3Contra(int[] hero, int[] hero2, int i)
  1031.     {
  1032.         //    Debug.Log("Udar3");
  1033.         int hp = 0;
  1034.  
  1035.         if (hero[hero.Length - 3] == 3)
  1036.         {
  1037.             //       Debug.Log("hero[hero.Length - 3] == 3");
  1038.             if (hero[4] < hero[8])
  1039.             {
  1040.                 hp = hero[8] * hero[0];
  1041.                
  1042.                 hero[hero.Length - 13] = hp;
  1043.                 hero[hero.Length - 8] = hero[8];
  1044.                 return hero;
  1045.             }
  1046.             hp = hero[4] * hero[0];
  1047.             hero[hero.Length - 8] = hero[4];
  1048.             hero[hero.Length - 13] = hp;
  1049.             return hero;
  1050.         }
  1051.         if (hero[hero.Length - 3] == 2)
  1052.         {
  1053.             if (hero[4] < hero[8])
  1054.             {
  1055.                 hp = hero[8] * hero[0];
  1056.                
  1057.                
  1058.                 hero[hero.Length - 13] = hp;
  1059.                 hero[hero.Length - 8] = hero[8];
  1060.                 return hero;
  1061.             }
  1062.             hp = hero[4] * hero[0];
  1063.  
  1064.             hero[hero.Length - 8] = hero[4];
  1065.             hero[hero.Length - 13] = hp;
  1066.             return hero;
  1067.         }
  1068.         if (hero[hero.Length - 3] == 1)
  1069.         {
  1070.             hp = hero[4] * hero[0];
  1071.            
  1072.            
  1073.             hero[hero.Length - 13] = hp;
  1074.             hero[hero.Length - 8] = hero[4];
  1075.             return hero;
  1076.         }
  1077.  
  1078.        
  1079.         hp = hero[4] * hero[0];
  1080.         hero[hero.Length - 13] = hp;
  1081.         hero[hero.Length - 8] = hero[4];
  1082.         return hero;
  1083.     }
  1084.     public int[] Udar4Contra(int[] hero, int[] hero2, int i)
  1085.     {
  1086.         int hp = 0;
  1087.  
  1088.         if (hero[hero.Length - 4] == 3)
  1089.         {
  1090.             //       Debug.Log("hero[hero.Length - 3] == 3");
  1091.             if (hero[5] < hero[9])
  1092.             {
  1093.                 hp = hero[9] * hero[0];
  1094.  
  1095.                 hero[hero.Length - 13] = hp;
  1096.                 hero[hero.Length - 6] = hero[9];
  1097.                 return hero;
  1098.             }
  1099.             hp = hero[5] * hero[0];
  1100.            
  1101.             hero[hero.Length - 13] = hp;
  1102.             hero[hero.Length - 6] = hero[5];
  1103.             return hero;
  1104.         }
  1105.         if (hero[hero.Length - 3] == 2)
  1106.         {
  1107.             if (hero[4] < hero[8])
  1108.             {
  1109.                 hp = hero[9] * hero[0];
  1110.  
  1111.  
  1112.                 hero[hero.Length - 13] = hp;
  1113.                 hero[hero.Length - 6] = hero[9];
  1114.                 return hero;
  1115.             }
  1116.             hp = hero[5] * hero[0];
  1117.  
  1118.  
  1119.             hero[hero.Length - 13] = hp;
  1120.             hero[hero.Length - 6] = hero[5];
  1121.             return hero;
  1122.         }
  1123.         if (hero[hero.Length - 3] == 1)
  1124.         {
  1125.             hp = hero[5] * hero[0];
  1126.  
  1127.  
  1128.             hero[hero.Length - 13] = hp;
  1129.             hero[hero.Length - 6] = hero[5];
  1130.             return hero;
  1131.         }
  1132.  
  1133.  
  1134.         hp = hero[5] * hero[0];
  1135.         hero[hero.Length - 9] = hero[5];
  1136.         hero[hero.Length - 13] = hp;
  1137.         return hero;
  1138.     }
  1139.     public void CheackContra (int[] hero,int[] hero2, int i)
  1140.     {
  1141.         if (hero[hero.Length - 6] == 0)
  1142.             Udar1Contra(hero, hero2, i);
  1143.         if (hero[hero.Length - 7] == 0)
  1144.             Udar1Contra(hero, hero2, i);
  1145.         if (hero[hero.Length - 8] == 0)
  1146.             Udar1Contra(hero, hero2, i);
  1147.         if (hero[hero.Length - 9] == 0)
  1148.             Udar1Contra(hero, hero2, i);
  1149.     }
  1150.  
  1151.  
  1152. }
  1153.  

Share with your friends:

Распечатать