Помогите дописать на С++ игру "шашки"

rafic

Местный житель
Регистрация
14 Май 2008
Сообщения
477
Реакции
24
Код:
// шашки.cpp: определяет точку входа для консольного приложения.
//

#include "stdafx.h"
#include <iostream>
#include <windows.h>
using namespace std;

void SetColor(int text, int background)
{
   HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
   SetConsoleTextAttribute(hStdOut, (WORD)((background << 4) | text));
}

int main()
{
	const int polex = 8;
	const int poley = 8;
	int pole[poley][polex] = {0},
		figura1 = 1,
		figura2 = 2,
		newx = -1,
		newy = -1,
		oldx= -1,
		oldy = -1,
		figure_player,
		current_value,
		plauer=0;

	bool step=true,
		 value_exists,
		 go=true,
		 plauer1,
		 plauer2,
		 error=true;

	const int kolfig = 4;

	for(int y=0; y<poley; y++){
		for(int x=0; x<polex; x++){
			if(y >= 5){
				if(y%2 != 0){
					if(x%2 != 0) pole[x][y] = figura1;
				} else {
					if(x%2 == 0) pole[x][y] = figura1;
				}
			}
			if(y <= 2){
				if(y%2 != 0){
					if(x%2 != 0) pole[x][y] = figura2;
				} else {
					if(x%2 == 0) pole[x][y] = figura2;
				}
			}
		}
	}

do{ 
		system("cls");

        // Вывод верхней нумерации по X
        for(int y=0; y<2; y++){
                cout << "    ";
                for(int x=0; x<polex; x++)
                        y==0 ? cout << x << "  " : cout << "---";
                cout << endl;
        } 
        // Вывод верхней нумерации по X (END)
 
        for(int y=0; y<poley; y++){
                // Вывод боковой нумерации по Y
                SetColor( 11, 0);
                cout << y << "| ";
                // Вывод боковой нумерации по Y (END)
                for(int x=0; x<polex; x++){
                        pole[x][y] == 0 ? SetColor( 0, 11) : pole[x][y] == 2 ? SetColor( 0, 8) : SetColor( 11, 4);
                        cout << " " << pole[x][y] << " ";
                }       
                cout << endl;
        }
        cout << endl;
 
        // Переключение игрока
        plauer1 = plauer%2 == 0 ? true : false; 
        plauer2 = plauer%2 == 1 ? true : false;
 
        SetColor(11, 0);
        plauer2 ? cout << "Plauer 2" << endl << endl : cout << "Plauer 1" << endl;
		!error ? cout<< "Hoda net!" << endl : cout << endl;

        cout<< "OldX: ";
        cin >> oldx;
        cout<< "OldY: ";
        cin >> oldy;
        cout<< "NewX: ";
        cin >> newx;
        cout<< "NewY: ";
        cin >> newy;
 
        // Выводим значение в массива по координате следующего хода
        current_value = pole[newx][newy];

        // Выбор фигуры пользователя
        figure_player = plauer1 ? figura1 : figura2;
 
        // Проверка возможности хода
		plauer1 ?
			step = (newx==oldx-1 && newy == oldy-1) || (newx==oldx+1 && newy == oldy-1) 
			:
			step = (newx==oldx-1 && newy == oldy+1) || (newx==oldx+1 && newy == oldy+1);

        // Проверка ошибки
		error = step && current_value != figure_player;

        // Запись ходов в поле
        if(error){
                pole[newx][newy] = figure_player;
                pole[oldx][oldy] = 0;
				plauer++;
        }
	}while(0<1);

	system("pause");
	return 0;
}

Собственно не хватает правильного алгоритма проверки хода шашек в зависимости от игрока. У меня сейчас модульная неделя, времени свободного понты, а сдать это нужно 02.06.2011
 
Собственно не хватает правильного алгоритма проверки хода шашек в зависимости от игрока. У меня сейчас модульная неделя, времени свободного понты, а сдать это нужно 02.06.2011
Млин если так быстро надо то не изобретай велосипед
 
Не, мы и половины из того что там есть не учили... и в том разобраться нужно еще, а у меня просто один алгоритм написать и все...
 
Назад
Сверху