![]() |
Модераторы: Poseidon |
![]() ![]() ![]() |
|
CppDevelopeR |
|
|||
![]() Experienced Expert ![]() ![]() Профиль Группа: Участник Сообщений: 390 Регистрация: 7.1.2008 Где: Moscow-City Репутация: -1 Всего: 9 |
Проблема в следующем: Не работает проверка на недопустимость хода и не получается сделать чтобы фигура при ходе била другую. Прошу помочь сегодня!!! Игра шашки! Вот код:
#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; 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( 7, 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( 12, 0); plauer2 ? cout << "Player 2" << endl << endl : cout << endl << endl; SetColor( 12, 0); plauer1 ? cout << "Player 1" << endl : cout << endl << endl; cout<< "OldX: "; cin >> oldx; cout<< "OldY: "; cin >> oldy; cout<< "NewX: "; cin >> newx; cout<< "NewY: "; cin >> newy; // Выводим значение в массива по координате следующего хода current_value = pole[newx][newy]; // Проверка наличия вводимых данных value_exists = oldx != -1 && oldy != -1 && newx != -1 && newy != -1; // Выбор фигуры пользователя 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); // Вывод ошибки value_exists && !step || current_value == figure_player ? cout<< "Hoda net!" << endl : cout << endl << endl; // Запись ходов в поле if(step && current_value != figure_player){ plauer++; pole[newx][newy] = figure_player; pole[oldx][oldy] = 0; } }while(1); system("pause"); return 0; } |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Центр помощи" | |
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Центр помощи | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |