Как реализовать ход шашки - 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[] { 'в–‘', 'в

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.8 из 5
Похожие ответы