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

Шахматы(компьютер-компьютер) - 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. Определить, принадлежит ли точка с координатами x, y заштрихованной части плоскости. Результат вывести в виде текстового сообщения. Представить варианты программы с использованием условного оператора... http://www.cyberforum.ru/cpp-beginners/thread356147.html
C++ Задача про шахматы
Все доброго времени. Помогите пожалуйста с заданием. Нужно с помощью двумерного массива вывести на экран шахматную доску с расставленными на начальных местах фигурами. Выглядеть результат, как я поняла должен как-то так : |1|1|1|1|1|1|1|1| |1|1|1|1|1|1|1|1| |o|o|o|o|o|o|o|o| |o|o|o|o|o|o|o|o|
C++ Проверка вводимых символов
Привет форум! Уже пытался кое-что найти в книжках по С++ по поводу сабжа, но многое мне не ясно, ибо я очень очень чайник. Вот что мне нужно: Пользователь должен ввести вещественное число с клавиатуры, но при этом он может допустить ошибку, т.е. ввести не только цифры, но и любые другие символы. Программа в случае неправильного ввода числа должна сообщить об этом, если же число введено верно,...
C++ Массивы: определить количество дней с осадками больше среднего http://www.cyberforum.ru/cpp-beginners/thread356131.html
Во всех приведенных ниже вариантах использовать меню для организации работы программы, исходные данные предварительно записать в текстовый файл. Разработать схему алгоритма и программу, используя функции с параметрами для ввода массива и его обработки. В массиве хранятся данные об осадках за месяц. Найти • Количество дней с осадками больше среднего • Самую «мокрую» декаду (декада – 10дней)...
C++ Написать функцию которая проверяет если число(простые числа) не делится на N и меньше N... Написать функцию которая проверяет если число(простые числа) не делится на N и меньше N... подробнее

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

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

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

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

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

Почему без фигур? Я не знаю, просто ради интереса . В принципе, логика шахмат от этого легче не станет.
 
Текущее время: 09:53. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru