Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.02.2011, 12:52   #1
KostyaS
Пользователь
 
Регистрация: 16.11.2010
Сообщений: 24
Вопрос Крестики нолики

Всем привет народ помогите плиз ,написал игру (Крестики нолик )она работает "криво" в фунции на проверку поля(INT WIN) проверяет "криво" помогите найти ошибку,если можно переписать с помощью fora вот сам код
Код:
#include<Windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <iostream>
using namespace std;
int POLE[3][3] = {{0,0,0},
                  {0,0,0},
                  {0,0,0}};
int win()
{
    if(POLE[0][0]==POLE[0][1] && POLE[0][1]==POLE[0][2])
        return POLE[0][0];
    if(POLE[1][0]==POLE[1][1] && POLE[1][1]==POLE[1][2])
        return POLE[1][0];       
    if(POLE[2][0]==POLE[2][1] && POLE[2][1]==POLE[2][2])
        return POLE[2][0];
    if(POLE[0][0]==POLE[1][0] && POLE[1][0]==POLE[2][0])
        return POLE[0][0];
    if(POLE[0][1]==POLE[1][1] && POLE[1][1]==POLE[2][1])
        return POLE[0][1];
    if(POLE[0][2]==POLE[1][2] && POLE[1][2]==POLE[2][2])
        return POLE[0][2];
    if(POLE[0][0]==POLE[1][1] && POLE[1][1]==POLE[2][2])
        return POLE[0][0];
    if(POLE[0][2]==POLE[1][1] && POLE[1][1]==POLE[2][0])
        return POLE[0][2];
}
                   
void print()
{
    int i, j;
    for(i=0; i<3; i++)
    {
        for(j=0; j<3; j++)
        {
            switch (POLE[i][j])
            {
                case -1:
                    cout<<("%c ", 'x')<<"\t";
                    break;
                case 1:
                    cout<<("%c ", '0')<<"\t";
                    break;
                case 0:
                    cout<<("%c ", '*')<<"\t";
                    break;
                default:
                    cout<<("Ошибка: В массиве находиться нераспознанный символ\n")<<endl;
                    break;
            }
        }
        cout<<endl;
    }
}
int main()
{   SetConsoleOutputCP(1251);
    int x, y, w;
    // Компьютер крестиками, игрок ноликами;
    int  comp = -1, player = 1;
        srand(time(0));
        cout<<"ДОБРО ПОЖАЛОВАТЬ\n\n"<<endl;
    do
    {
        cout<<"Ваш ход (x, y):\n\n"<<endl; 
        scanf("%d %d", &x, &y);
        if(x>3 || y>3 || x<1 || y < 1)
        {
            cout<<"Ошибка вы ввели недопустимые координаты\n"<<endl;
            continue;
        }
        
        if(POLE[y-1][x-1]!=player&&POLE[y-1][x-1]!=comp)
        {
            POLE[y-1][x-1]=player;
            print();
        }
        else
        {
            cout<<"Сюда ходить уже нельзя\n"<<endl;
            continue;
        }
        
        w = win();
        if(w==-1)
        {
            cout<<"ПОБЕДИЛ КОПЬЮТЕР!\n"<<endl;
            return 0;
        }
        
        if(w==1)
        {
            cout<<"ВЫ ПОБДИЛИ\n"<<endl;
            return 0;
        }
        
        // теперь ход компьютера;
        cout<<"Ход компьютера...\n"<<endl;
        do
        {
            do
            {
                y = rand() % 10;
            }while(y<1 || y > 3);
            do
            {
                x = rand() % 10;
            }while(x<1 || x > 3);
            
            
        }while(POLE[y-1][x-1] == player || POLE[y-1][x-1] == comp);
        
        POLE[y-1][x-1] = comp;
        
        print();
        
        w = win();
        if(w==-1)
        {
            cout<<"ПОБЕДИЛ КОПЬЮТЕР!\n"<<endl;
            return 0;
        }
        
        if(w==1)
        {
            cout<<"ВЫ ПОБEДИЛИ\n"<<endl;
            return 0;
        }           
    }while(1);
    return 0;
}

Последний раз редактировалось KostyaS; 04.02.2011 в 13:07.
KostyaS вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Крестики нолики Anonim69 JavaScript, Ajax 8 08.12.2010 06:00
крестики-нолики {PatRioT} Паскаль, Turbo Pascal, PascalABC.NET 4 14.05.2009 13:24
КРЕСТИКИ-НОЛИКИ((( magadan Паскаль, Turbo Pascal, PascalABC.NET 8 02.05.2009 22:16
Крестики-Нолики. oblachko Помощь студентам 5 23.01.2009 19:32
Крестики нолики Gorbunov Общие вопросы C/C++ 5 22.01.2009 16:04