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

Share with your friends:

Распечатать