Другие языки программирования и технологии
Дана шахматная доска размером 8 х 8. Определить цвет клетки с заданными координатами.
Дана шахматная доска размером 8 х 8. Определить цвет клетки с заданными координатами.ПОМОГИТЕ НАПИСАТЬ ПРОГРАММУ !!!язык программирования - любой пример - пишешь d4 и программа выдает цвет клетки
на любом языке программирования при клетка (1,1) суть левый нижний угол;
cvet = 1+(-1)^(x+y)
словами: один+(-1)в степени (x+y)
если cvet = 2 то черный
если cvet = 0 то белый
ну для наглядности в excel

cvet = 1+(-1)^(x+y)
словами: один+(-1)в степени (x+y)
если cvet = 2 то черный
если cvet = 0 то белый
ну для наглядности в excel

Если сумма координат четная, то белый, нечетная - черный. Или наоборот, зависит от цвета клетки (1,1).
const CCol:array[boolean] of string=('Black', 'White');
var x,y:[1..8];
begin
readln(x,y);
writeln(CCol[odd(x+y)]);
end.
const CCol:array[boolean] of string=('Black', 'White');
var x,y:[1..8];
begin
readln(x,y);
writeln(CCol[odd(x+y)]);
end.
(define (chess-color pt)
(let ((hor "abcdefgh")
(ver "12345678"))
(let ((x (modulo (string-index hor (string-ref pt 0)) 2))
(y (modulo (string-index ver (string-ref pt 1)) 2)))
(if (= (modulo (+ x y) 2) 0) "black" "white"))))
(display (chess-color "b1"))(newline)
(let ((hor "abcdefgh")
(ver "12345678"))
(let ((x (modulo (string-index hor (string-ref pt 0)) 2))
(y (modulo (string-index ver (string-ref pt 1)) 2)))
(if (= (modulo (+ x y) 2) 0) "black" "white"))))
(display (chess-color "b1"))(newline)
Примерно так
#include<iostream>
using namespace std;
void main()
{
char b[3];
cout << " координаты клетки: "; cin >> b;
if((b[0]+b[1]) | 1) cout << "Белая"; else cout << "Чёрная";
}
#include<iostream>
using namespace std;
void main()
{
char b[3];
cout << " координаты клетки: "; cin >> b;
if((b[0]+b[1]) | 1) cout << "Белая"; else cout << "Чёрная";
}
ну если стандартная доска (черный-белый) то там они будут через одну, остается пройтись по ней циклом и найти клетку и ее цвет к примеру A1 будет 1:1 В3 =2:3....
блин... ну можно даже не парится над алгоритмом... вариант для "скромных" : пишешь матрицу, в которой все клеточки по цветам расписываешь... и потом ищешь..
на Delphi:
function IsWhite(S: string): Boolean;
begin
Result:= ((Ord(UpCase(S[1])) mod 2 = 1) xor (StrToInt(S[2]) mod 2 = 0));
end;
function IsWhite(S: string): Boolean;
begin
Result:= ((Ord(UpCase(S[1])) mod 2 = 1) xor (StrToInt(S[2]) mod 2 = 0));
end;
Похожие вопросы
- turbo pascal 7.0 Определить принадлежность к области точек с заданными координатами!!!
- Есть шахматная доска, на ней расположен кароль и три ладьи,
- Треугольник задан координатами своих вершин. вычислить его площадь. На языке СИ!
- дана целочисленная матрица размера mxm. определить числа b1,b2,...bm,каждое из которых равно количеству четных элементов
- Сколькими способами можно расставить N ферзей на шахматной доске NxN так, чтобы они не угрожали друг-другу? комбинаторно
- Вывести на печать длину наибольшей медианы треугольника, заданного координатами вершин.
- Кто может кратко написать как перевести из 2-х счисления в 8-х, 16-х, 10-х. А также наоборот из 10-х,16-х,8-х в 2-х
- в матрице Х (8,5) найти среднее арифметическое значение максимальных элементов в каждой строке
- Дана действительная матрица размера 6x9. Найти среднее арифметическое наибольшего и наименьшего значений ее элементов.
- Дана действительная матрица размера n * m организовать однонаправленный список матрицы. Паскаль