Определить, сколько клеток находится под боем шахматного коня - C#

Узнай цену своей работы

Формулировка задачи:

Не по теме:

Прошу прощения за тему, теперь не могу исправить.

http://acm.timus.ru/problem.aspx?space=1&num=1197 Задание на тимусе.
Условие этой задачи очень простое: вам всего лишь надо определить, сколько клеток находится под боем шахматного коня, одиноко стоящего на шахматной доске. На всякий случай напомним, что конь ходит буквой «Г» — на две клетки по горизонтали или вертикали в любом направлении, и потом на одну клетку в направлении, перпендикулярном первоначальному.

Исходные данные

В первой строке находится единственное число N, 1 ≤ N ≤ 100 — количество тестов. В каждой из последующих N строк содержится очередной тест: два символа (маленькая латинская буква от 'a' до 'h' и цифра от 1 до 8) — стандартное шахматное обозначение клетки, на которой стоит конь. При этом буква обозначает вертикаль, а цифра — горизонталь.

Результат

Выведите N строк: в каждой из них должно находиться единственное число — количество клеток шахматной доски, находящихся под боем коня.
Вот как получилось у меня:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace HomeWork_2._1
{
    class Program
    {
        static void Main(string[] args)
        {
            int[,] A = {{ 2, 3, 4, 4, 4, 4, 3, 2 }, { 3, 4, 6, 6, 6, 6, 4, 3 }, { 4, 6, 8, 8, 8, 8, 5, 4 }, { 4, 6, 8, 8, 8, 8, 5, 4 }, { 4, 6, 8, 8, 8, 8, 5, 4 }, { 4, 6, 8, 8, 8, 8, 5, 4 }, { 3, 4, 6, 6, 6, 6, 4, 3 }, { 2, 3, 4, 4, 4, 4, 3, 2 }};
            int N = int.Parse(Console.ReadLine());
            string[] PUT = new string[N];
            //a:
            for (int i = 0; i < N; i++)
            {
                PUT[i] = Console.ReadLine();
            }
            for (int i = 0; i < N; i++)
            {
                string word = PUT[i];
                int second = Convert.ToInt32(Convert.ToString(word[1]))-1;
                string first = Convert.ToString(word[0]);
                if (first.Equals("a"))
                {
                    Console.WriteLine(A[0, second]);
                    //goto a;
                }
                if (first.Equals("b"))
                {
                    Console.WriteLine(A[1, second]);
                }
                if (first.Equals("c"))
                {
                    Console.WriteLine(A[2, second]);
                }
                if (first.Equals("d"))
                {
                    Console.WriteLine(A[3, second]);
                }
                if (first.Equals("e"))
                {
                    Console.WriteLine(A[4, second]);
                }
                if (first.Equals("f"))
                {
                    Console.WriteLine(A[5, second]);
                }
                if (first.Equals("g"))
                {
                    Console.WriteLine(A[6, second]);
                }
                if (first.Equals("h"))
                {
                    Console.WriteLine(A[7, second]);
                }
            }
            Console.ReadLine();
        }
    }
}
Заполнил массив А количеством возможных перемещений для каждой клетки примерно вот так: Вроде все работает, но программа валится на втором тесте. Есть идеи?

Решение задачи: «Определить, сколько клеток находится под боем шахматного коня»

textual
Листинг программы
char first = word[0];

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


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

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

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