Java

Помогите please решить задачу Java: Дано координату шахматного коня например е2.Требуется вывести все варианты хода коня

№INPUT.TXTOUTPUT.TXT
1e2 c1
c3
d4
f4
g1
g3

2a1 b3
c2
Держите решение на C, в Java перепишите сами:

$ cat horse.c
#include <stdio.h>
int main() {
char col, row;
scanf("%c", &col);
scanf("%c", &row);
for (int x = -2; x <= 2; x++)
for (int y = -2; y <= 2; y++)
if (x != y && x != -y && x && y &&
    col + x >= 'a' && col + x <= 'h' &&
    row + y >= '1' && row + y <= '8')
  printf("%c%c ", col + x, row + y);
puts("");
return 0;
}

Сборка:

$ clang horse.c -o horse

Проверка:

$ echo e2 | ./horse
c1 c3 d4 f4 g1 g3
$ echo a1 | ./horse
b3 c2
$ echo a8 | ./horse
b6 c7
$ echo h1 | ./horse
f2 g3
$ echo h8 | ./horse
f7 g6
Кудайберген Тюлемисов
Кудайберген Тюлемисов
55 496
Лучший ответ
Евгений Ххх Спасибо большое!!! :)
Евгений Ххх а как переписать kX + x >= 'a' && kX + x <= 'h' && kY + y >= '1' && kY + y <= '8'
и printf("%c%c ", col + x, row + y); на Java
Евгений Ххх Спасибо, уже не надо разобрался :)
Основной цикл:

for (int x=-2; x<=2; x++)
for (int y=-2; y<=2; y++)
if (!(x==y || x*y==0)) MakeMove(x0, y0, x, y);

Метод MakeMove напиши уж сам - он грустный и неинтересный.
Решение "как бы сам":

Переберите все 64 клетки доски.
Пусть (xk, yk) - координаты коня, (x, y) - координаты клетки.
dx = Math.abs(x-xk)
dy = Math.abs(y-yk)
Нужное условие dx*dy==2 && dx+dy == 3
Дмитрий -=Czar=
Дмитрий -=Czar=
11 112