Форум программистов, компьютерный форум, киберфорум
Наши страницы

Шахматы(компьютер-компьютер) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ проблема с проверкой вводимых данных http://www.cyberforum.ru/cpp-beginners/thread356175.html
#include <iostream> #include <conio.h> using namespace std; double c,f; int main() { setlocale(LC_ALL, "Russian"); setlocale(LC_ALL, "rus");
C++ Определить, принадлежит ли точка с координатами x, y заштрихованной части плоскости Здравствуйте! Помогите пожалуйста полному чайнику решить две задачки. 1) Даны действительные числа x1, y1, x2, y2. Вычислить min(x1, y1, x2, y2)+min(x1,x2,y1). 2) Даны вещественные числа x, y.... http://www.cyberforum.ru/cpp-beginners/thread356147.html
C++ Задача про шахматы
Все доброго времени. Помогите пожалуйста с заданием. Нужно с помощью двумерного массива вывести на экран шахматную доску с расставленными на начальных местах фигурами. Выглядеть результат, как...
C++ Проверка вводимых символов
Привет форум! Уже пытался кое-что найти в книжках по С++ по поводу сабжа, но многое мне не ясно, ибо я очень очень чайник. Вот что мне нужно: Пользователь должен ввести вещественное число с...
C++ Массивы: определить количество дней с осадками больше среднего http://www.cyberforum.ru/cpp-beginners/thread356131.html
Во всех приведенных ниже вариантах использовать меню для организации работы программы, исходные данные предварительно записать в текстовый файл. Разработать схему алгоритма и программу, используя...
C++ Написать функцию которая проверяет если число(простые числа) не делится на N и меньше N... Написать функцию которая проверяет если число(простые числа) не делится на N и меньше N... подробнее

Показать сообщение отдельно
#pragma
Временно недоступен
954 / 225 / 6
Регистрация: 12.04.2009
Сообщений: 921
25.09.2011, 23:41
Предлагаю такую идею:
Писать на C++, и обойтись без фигур вообще, то есть из сущностей будут только объекты класса "Клетка на доске".
У клетки будут аттрибуты, типа:

1) Сторона противника (как чёрная или белая фигура).

2) Закон передачи аттрибутов другой клетке (например, клетка, которая "Ферзь", может передавать свои аттрибуты движения по диагонали и по горизонталям-вертикалям). Для этого проверяем все клетки, которым может передать свой аттрибут клетка-ферзь,и вычитаем занятые клетки(то есть те, у которых есть аттрибуты движения). + можно брать в рассчёт клетки "под ударом".

Из этих свойств движения можно вычленить основные - движение по диагонали,движение по вертикали (горизонтали).
Ещё могут накладываться ограничения длины траектории (король и пешка). Единственная особая клетка - это та, на которой "стоит конь". Но это тоже можно сделать.
Когда фигура рубит другую, то в реализации клетка передаёт свои аттрибуты пострадавшей.

Добавлено через 16 минут
**Вот тут в принципе, возможно, целесообразно сделать нечто в виде битовых карт для каждой позиции на доске. Например, для фигуры,которая ходит по диагонали, в любой точке доски будет своя битовая карта клеток,которым можно передать аттрибуты (то есть на которые могла бы переместиться фигура). Складывая маски в более сложных случаях, можно сразу получить искомые клетки. Я не знаю, насколько валидна эта идея, но по идее должно сократить поиски и прочее.

Почему без фигур? Я не знаю, просто ради интереса . В принципе, логика шахмат от этого легче не станет.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.