Бесконечный цикл с выходом при условии ,не выходит даже после return - C#
Формулировка задачи:
Листинг программы
- private void start()
- {
- testboi();
- }
- private void testboi()
- {
- provesti_1_boi();
- MessageBox.Show("Вышли из цикла боя.");
- }
- #region Функция проведения 1 боя
- private void provesti_1_boi()
- {
- zapusk_poiska_hp();
- AutoItX3 au3 = new AutoItX3();
- ImageSearch img = new ImageSearch();
- int pitgigda = 1;
- while (true)
- {
- int y = au3.WinGetPosY("Raga Dwar Bot C#");
- int x = au3.WinGetPosX("Raga Dwar Bot C#");
- this.toolStripStatusLabel2.Text = ("Ищу");
- string col_udarov_read = au3.IniRead("settings.ini", "SU", "udarov", "");
- int mochnaudar = Convert.ToInt32(au3.IniRead("settings.ini", "boevaya_sistema", "nas3data", ""));
- int krovnaudar = Convert.ToInt32(au3.IniRead("settings.ini", "boevaya_sistema", "nas4data", ""));
- int vampnaudar = Convert.ToInt32(au3.IniRead("settings.ini", "boevaya_sistema", "nas5data", ""));
- int col_udarov = Convert.ToUInt16(col_udarov_read);
- var end_battle1 = img.CapSearchBmp(435, 249, 509, 282, "img/main/end_battle.bmp", "temp.bmp", 0, "Raga Dwar Bot C#");
- if (end_battle1.Location.X > 1)
- {
- au3.MouseClick("LEFT", x + 479, y + 371, 1, 0); // выход из боя
- Thread.Sleep(2000);
- foreach (Thread potokhp in threads) potokhp.Abort();
- this.toolStripStatusLabel2.Text = ("Вышел из цикла");
- // Если бой закончен выходим из provesti_1_boi() и возвращаемся в testboi()
- return;
- }
- for (int i = 0; i < col_udarov; )
- {
- var need_udar = img.CapSearchBmp(414, 410, 452, 443, "img/main/need_udar.bmp", "temp.bmp", 0, "Raga Dwar Bot C#");
- var end_battle = img.CapSearchBmp(435, 249, 509, 282, "img/main/end_battle.bmp", "temp.bmp", 0, "Raga Dwar Bot C#");
- if (end_battle.Location.X > 1)
- {
- break;
- // Если бой закончен выходим из цикла For
- }
- if (need_udar.Location.X > 1)
- {
- if (au3.IniRead("settings.ini", "boevaya_sistema", "nas6", "") == "da" && i == 0)
- {
- au3.MouseClick("LEFT", 363 + x, 374 + y, 1, 0);
- Thread.Sleep(200);
- }
- if (au3.IniRead("settings.ini", "boevaya_sistema", "nas6", "") == "da" && i == col_udarov - 1)
- {
- au3.MouseClick("LEFT", 363 + x, 374 + y, 1, 0);
- Thread.Sleep(200);
- }
- if (pitgigda == 1)
- {
- pitgig();
- pitgigda = 0;
- }
- if (i == mochnaudar - 1)
- {
- mosh();
- }
- if (i == krovnaudar - 1)
- {
- krov();
- }
- if (i == vampnaudar - 1)
- {
- vamp();
- }
- string udarit = au3.IniRead("settings.ini", "SU", "udar" + i, "");
- if (udarit == "1")
- {
- pitjizniqq();
- toolStripStatusLabel2.Text = "Удар в голову";
- au3.MouseClick("LEFT", x + 447, y + 317, 1, 0); // удар по голове
- Thread.Sleep(2500);
- i++;
- }
- if (udarit == "2")
- {
- pitjizniqq();
- toolStripStatusLabel2.Text = "Удар в корпус";
- au3.MouseClick("LEFT", x + 475, y + 369, 1, 0); // удар по телу
- Thread.Sleep(2500);
- i++;
- }
- if (udarit == "3")
- {
- pitjizniqq();
- toolStripStatusLabel2.Text = "Удар в ноги";
- au3.MouseClick("LEFT", x + 449, y + 419, 1, 0); // удар по ногам
- Thread.Sleep(2500);
- i++;
- }
- }
- else if (need_udar.Location.X < 1)
- {
- this.toolStripStatusLabel2.Text = ("Не нашел... ищу");
- Thread.Sleep(150);
- }
- }
- }
- }
- #endregion
Решение задачи: «Бесконечный цикл с выходом при условии ,не выходит даже после return»
textual
Листинг программы
- #region Функция проведения 1 боя
- private void provesti_1_boi()
- {
- zapusk_poiska_hp();
- AutoItX3 au3 = new AutoItX3();
- ImageSearch img = new ImageSearch();
- int pitgigda = 1;
- while (true)
- {
- int y = au3.WinGetPosY("Raga Dwar Bot C#");
- int x = au3.WinGetPosX("Raga Dwar Bot C#");
- this.toolStripStatusLabel2.Text = ("Ищу");
- string col_udarov_read = au3.IniRead("settings.ini", "SU", "udarov", "");
- int mochnaudar = Convert.ToInt32(au3.IniRead("settings.ini", "boevaya_sistema", "nas3data", ""));
- int krovnaudar = Convert.ToInt32(au3.IniRead("settings.ini", "boevaya_sistema", "nas4data", ""));
- int vampnaudar = Convert.ToInt32(au3.IniRead("settings.ini", "boevaya_sistema", "nas5data", ""));
- int col_udarov = Convert.ToUInt16(col_udarov_read);
- var end_battle1 = img.CapSearchBmp(435, 249, 509, 282, "img/main/end_battle.bmp", "temp.bmp", 0, "Raga Dwar Bot C#");
- if (end_battle1.Location.X > 1)
- {
- au3.MouseClick("LEFT", x + 479, y + 371, 1, 0); // выход из боя
- Thread.Sleep(2000);
- foreach (Thread potokhp in threads) potokhp.Abort();
- this.toolStripStatusLabel2.Text = ("Вышел из цикла");
- goto test;
- }
- for (int i = 0; i < col_udarov; )
- {
- var need_udar = img.CapSearchBmp(414, 410, 452, 443, "img/main/need_udar.bmp", "temp.bmp", 0, "Raga Dwar Bot C#");
- var end_battle = img.CapSearchBmp(435, 249, 509, 282, "img/main/end_battle.bmp", "temp.bmp", 0, "Raga Dwar Bot C#");
- if (end_battle.Location.X > 1)
- {
- break;
- }
- if (need_udar.Location.X > 1)
- {
- if (au3.IniRead("settings.ini", "boevaya_sistema", "nas6", "") == "da" && i == 0)
- {
- au3.MouseClick("LEFT", 363 + x, 374 + y, 1, 0);
- Thread.Sleep(200);
- }
- if (au3.IniRead("settings.ini", "boevaya_sistema", "nas6", "") == "da" && i == col_udarov - 1)
- {
- au3.MouseClick("LEFT", 363 + x, 374 + y, 1, 0);
- Thread.Sleep(200);
- }
- if (pitgigda == 1)
- {
- pitgig();
- pitgigda = 0;
- }
- if (i == mochnaudar - 1)
- {
- mosh();
- }
- if (i == krovnaudar - 1)
- {
- krov();
- }
- if (i == vampnaudar - 1)
- {
- vamp();
- }
- string udarit = au3.IniRead("settings.ini", "SU", "udar" + i, "");
- if (udarit == "1")
- {
- pitjizniqq();
- toolStripStatusLabel2.Text = "Удар в голову";
- au3.MouseClick("LEFT", x + 447, y + 317, 1, 0); // удар по голове
- Thread.Sleep(2500);
- i++;
- }
- if (udarit == "2")
- {
- pitjizniqq();
- toolStripStatusLabel2.Text = "Удар в корпус";
- au3.MouseClick("LEFT", x + 475, y + 369, 1, 0); // удар по телу
- Thread.Sleep(2500);
- i++;
- }
- if (udarit == "3")
- {
- pitjizniqq();
- toolStripStatusLabel2.Text = "Удар в ноги";
- au3.MouseClick("LEFT", x + 449, y + 419, 1, 0); // удар по ногам
- Thread.Sleep(2500);
- i++;
- }
- }
- else if (need_udar.Location.X < 1)
- {
- this.toolStripStatusLabel2.Text = ("Не нашел... ищу");
- Thread.Sleep(150);
- }
- }
- test:
- {
- return;
- }
- }
- }
- #endregion
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д