Как реализовать ход шашки - C#
Формулировка задачи:
Помогите с кодом, есть такая задача:
Есть массив 8х8, вот такой:
02020202
20202020
02020202
00000000
00000000
10101010
01010101
10101010
Обозначающий расположение шашек на поле. Не как не могу придумать как реализовать ход(т.е. к примеру, единица двигается на один элемент по диагонали, там где 0 записывается 1, а на прежнее место 1-цы ставится 0). Помогите пожалуется господа программеры.
Заранее благодарен.
Решение задачи: «Как реализовать ход шашки»
textual
Листинг программы
using System; using System.Text.RegularExpressions; namespace ConsoleApplication158 { class Program { static void Main(string[] args) { //массив с полем int[,] desk = { {1,0,1,0,1,0,1,0}, {0,1,0,1,0,1,0,1}, {1,0,1,0,1,0,1,0}, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, {0,2,0,2,0,2,0,2}, {2,0,2,0,2,0,2,0}, {0,2,0,2,0,2,0,2} }; while (true) { Console.Clear(); ShowDesk(desk); Console.Write("\nEnter your move: "); var s = Console.ReadLine(); //ввод строки хода в формате wd2-e3 w-white //parse move var m = Regex.Match(s, "([wd])([abcdefgh])([12345678])-([abcdefgh])([12345678])"); if (!m.Success) continue; var fromX = m.Groups[2].Value[0] - 'a'; var fromY = m.Groups[3].Value[0] - '1'; var toX = m.Groups[4].Value[0] - 'a'; var toY = m.Groups[5].Value[0] - '1'; var color = m.Groups[1].Value[0] == 'w' ? 1 : 2; //check move if(desk[fromY, fromX] != color) { Console.WriteLine("There is not your draught!"); Console.ReadKey(); continue; } if (desk[toY, toX] != 0) { Console.WriteLine("Target field is not empty!"); Console.ReadKey(); continue; } //make move desk[fromY, fromX] = 0; desk[toY, toX] = color; } } //метод отображения доски private static void ShowDesk(int[,] desk) { char[] chars = new[] { 'в–‘', 'в
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д