23 Фев 2006 Чт 22:37 Срочно! Как написать игру в С++?
Помогите пожалуйста написать игру в С++. Заранее благодарю!
Ортокон:
Игра расчитана на 2 пользователей.
Ортокон играется на 4х4 доске и каждый игрок имеет 4 камня. Изначально камни находятся на противоположных сторонач доски:
__A__B_C_D_
_+--+--+--+--+
4 | X | X | X | X | 4
_ +--+--+--+--+
3 |__|__|__|__| 3
_ +--+--+--+--+
2 |__|__|__|__| 2
_ +--+--+--+--+
1 | O | O | O | O | 1
_ +--+--+--+--+
__A__B_C_D_
Игроки: Белый и Черный.
Белый имеет 4 камня (О). Черный имеет 4 камня (Х).
Каждый игрок ходит одним камнем за раз. Камнем можно ходить как королевой в шахматах ( влево, вправо, вверх , вниз, и по диагоналям), за исключением того, что камнем нужно ходить так далеко как можно. Например, В1 может пойти сейчас на А2, В3 и Д3. Нельзя ходить на В2 и С2, потому как можно ходить дальше чем на В2 и С2. Когда камень становиться на клетку, он меняет все камни которые перпендикулярны этому камню на свой цвет. Например, если сейчас камень на В1 идет на В3, то черный камень (Х) на В4 станет белым (О), но камни на А4 и С4 останутся черными.
Цель игры - оставить противника без возможных ходов или оставить его без фигур, т.е. все фигуры станут твоего цвета. Прогграмма так же должно определить когда игра закончена и объявить победителя.
Можно использовать ASCII graphics и картинку вверху как основную модель.
Класс приблизительно должен выглядеть так:
class OrthokonBoard {
public:
// Конструктор строит доску и кладет камни в изначальную позицию.
OrthokonBoard();
~OrthokonBoard();
// Печатает позицию игры в настоящее время на стандартных выходных данных
void PrintBoard();
// Делает ход , возвращает false в случае нелегального хода.
bool GetStone( string squareFrom, string squareTo );
//Возвращает string содержащую все легальные ходы определенной клетки (square).
//Например, из начальной позиции ( "B1" ), PlayGame возвратит string "A2B3D3".
//Если нет камня на клетке (square) или если камень заблокирован со всех сторон, то return value будет пустой string
string PlayGame( string square );
// Возвращает true если клетка содержит белый камень (О).
bool HasWhiteStone( string square );
// Возвращает true если клетка содержит черный камень (Х).
bool HasBlackStone( string square );