Шахматная доска - C#
Формулировка задачи:
Добрый день!
Задача:
Дана шахматная доска размером nn клеток. Верхняя левая клетка доски черная и имеет номер (1, 1).
1.для заданного значения n определить количество черных ячеек шахматной доски;
2.по номеру ячейки (k, m) определить ее цвет;
3.определить, являются ли ячейки с номерами (k1, m1) и (k2, m2) одного цвета;
4.определить, находится ли фигура, стоящая в ячейке с номером (k1, m1), под ударом второй фигуры, стоящей в ячейке с номером (k2, m2), при условии, что ход второй фигуры и ей является: a) пешка; b) слон; c) ладья; d) ферзь; e) конь.
Выводятся такие ошибки:
Ошибка 1 Синтаксическая ошибка, требуется "(" Строка-30 Столбец-16
Ошибка 2 Требуется ")" Строка-30 Столбец-37
Console.Write("Размерность доски: "); int n = int.Parse(Console.ReadLine()); if (n % 2 == 0) Console.WriteLine("Черных: {0}", n / 2 * n); else Console.WriteLine("Черных: {0}", (n - 1) / 2 * (n-1) + n); yach: Console.Write("k = "); int k = int.Parse(Console.ReadLine()); Console.Write("m = "); int m = int.Parse(Console.ReadLine()); switch(colour(k,m,n)){ case 0: Console.WriteLine("Ячейка {0}x{1} - черная", k, m); break; case 1: Console.WriteLine("Ячейка {0}x{1} - белая", k, m); break; case 2: Console.WriteLine("Такой ячейки нет, попробуйте ввести другую"); goto yach; } Console.WriteLine("k1 = "); int k1 = int.Parse(Console.ReadLine()); Console.WriteLine("m1 = "); int m1 = int.Parse(Console.ReadLine()); yach2: if !(k1 <= n && m1 <= n) { Console.WriteLine("Такой ячейки нет, попробуйте ввести другую"); goto yach2; } if (colour(k, m, n) == colour(k1, m1, n)) Console.WriteLine("Ячейки {0}x{1} и {2}x{3} одинаковые"); else Console.WriteLine("Ячейки {0}x{1} и {2}x{3} разные"); } static int colour(int k, int m, int n) { if (k <= n && m <= n) { if ((k + m) % 2 == 0) return 0; else return 1; } else return 2; } } }
Решение задачи: «Шахматная доска»
textual
Листинг программы
if (!(k1 <= n && m1 <= n))