Форум программистов, компьютерный форум CyberForum.ru

Шахматы - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.76
Shevva
 Аватар для Shevva
17 / 17 / 0
Регистрация: 13.09.2009
Сообщений: 140
30.12.2009, 20:10     Шахматы #1
Помогите пожалуйста решить прогу, так как я абсолютно не шарю, что здесь делать. Вот в чём она заключается: На шахматной доске стоит белый король, а у чёрных, белый король и слон, охарактеризовать положение чёрных: мат, шах, пат.

Добавлено через 1 час 33 минуты
Отзовитесь кто-то!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.12.2009, 20:10     Шахматы
Посмотрите здесь:

C++ Шахматы
шахматы C++
Шахматы C++
игра шахматы C++
C++ Шахматы, конь
Шахматы в консоли C++
Шахматы в с++ C++
Шахматы в С++ C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
rdksoft
 Аватар для rdksoft
22 / 22 / 2
Регистрация: 24.12.2008
Сообщений: 81
30.12.2009, 20:22     Шахматы #2
наверное решение в лоб но больше ничего в голову не лезет)
вот суть:
имеется 4 матрицы размерности 8х8;
в 1 матрице все нулевые элементы ,значение 2 положение белого короля ,а значение 1 его возможные ходы в клетки
во 2 и других матрицах таким же способом заданные данные для других фигур
а потом просто сравниваем 1 матрицу с другими на совпадение данных .
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
31.12.2009, 01:11     Шахматы #3
В общих чертах решение такое:
создаем один массив a[3][2].Пользователь задает координаты для всех трех фигур. Например король у белых a[0][0]=0, a[0][1]=0 (для a8) и т.п. Одна переменная типа bool (для проверки клеток вокруг белого короля - все они под боем черных или нет). Делаем эту проверку.
Далее делаем проверку самой клетки на которой стоит король белых. И выводим на основании этого результат: если клетка короля под боем и все вокруг клетки тоже то мат и т.п.
Сама проверка клеток, так (на примере клетки верхней левой у белого короля):
(пусть в a[0][]- белый король, a[1][]- черный король, a[2][] - черный слон)
C++
1
2
3
bool fl= true;
if(a[0][0]>0 && a[0][1]>0 && (a[0][0]-a[1][0]>2 || a[0][1]-a[1][1]>2) && a[0][0]!=a[2][0] && a[0][1]!= a[2][1]) 
fl=false; // значит верхняя левая клетка у белого короля не под боем
Yandex
Объявления
31.12.2009, 01:11     Шахматы
Ответ Создать тему
Опции темы

Текущее время: 12:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru