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

Программа крестики и нолики - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Как открыть второй файл тем же потоком? http://www.cyberforum.ru/cpp-beginners/thread221097.html
Создаю поток ifstream ifs и открываю файл A.txt, закрываю поток ifs.close(). Попытка открыть второй файл ifs.open("B.txt") заканчивается неудачей. Помогите плиз. Вот код #include<fstream> #include <conio.h> #include<iostream> #include <stdio.h> #include<iomanip> using namespace std;
C++ Сортировка массива в порядке убывания #include<stdio.h> #include<math.h> #include<conio.h> #include<time.h> int numb; int i,a,n; void main() { clrscr(); for(i=0;i<=10;i++) { number=i; http://www.cyberforum.ru/cpp-beginners/thread221089.html
Определить класс, описывающий равнобочную трапецию C++
Определить класс, описывающий равнобочную трапецию. Написать программу, в которой используются методы определенного класса
Компиляция сурс кода Risen3D C++
Помогите пожалуйсто скомпилировать данный соурс код: http://abbs.jbserver.com/downloads/source/r3d_v220-9_source.zip Описание к нему на английском: Risen3D has been written to compile with MSVC 6.0++ SP3 and is Windows specific. In MSVC the analyser c files are in the source\r3d_analyse, the slopes and 3D line main c files are in the source\r3d_extensions, and the new scripting stuff...
C++ Кролики и гуси (применение циклов) http://www.cyberforum.ru/cpp-beginners/thread221066.html
У гусей и кроликов вместе 64 лапы. Сколько может быть кроликов и гусей (указать все сочетания)? Пробовал решить через вложений for но мало чего получилось...любой помощи буду рад...понимаю что задача смешная...но программировать только начал((
C++ STL vector превратить в stack Всем привет! немогли бы вы помочь с таким заданием по STL :) Построить вектор "колода карт". превратить вектор в стэк, прежде "перетасовав" его.. У меня пока только есть первое предложение:( не могу понять, каким образом можно превратить и перетасовать... struct Card { Card(string m, int r); подробнее

Показать сообщение отдельно
^Tecktonik_KiLLeR
 Аватар для ^Tecktonik_KiLLeR
1144 / 426 / 19
Регистрация: 23.06.2009
Сообщений: 6,141
Завершенные тесты: 1
28.12.2010, 23:26     Программа крестики и нолики
Лови,моя игра,все есть,только не умеет думать,рандом ставит нолики
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
#include <iostream>
#include <time.h>
#include <windows.h>
#include <math.h>
#include <D:\\alex\\head-files\\mathem.h>
#include <D:\\alex\\head-files\\kurs.h>
#include <D:\\alex\\head-files\\factorial.h>
using namespace std;
const int n=3;  //матрица
//объявление функций
void inp(int x[][n]);//функция ввода
void out(int x[][n]);//функиця вывода матрицы
bool win(int x[][n]);//проверка на победу/проигрыш/ничью
void comp(int x[][n]);//функция интелекта компьютера
 
void main()
{
    srand(time(0));
    int x[n][n]={0};    //инициализованная матрица
    while(true) //бесконечный цикл
{
    out(x); //вывод матрицы
    inp(x); //ввод крестика в матрицу
    if(win(x)==1)//если конец игры
    {
        out(x);         //вывод
        win(x);         //выводит либо победителя 
        break;          //остановка цикла-игры
    }
        else comp(x);   //если не конец игры,то ход компьютера
    }
}
 
void inp(int x[][n])
{
    int i=0,j=0;
loop: //цикл
    //вводим координаты-где будет Х
    cout<<"i=";
    cin>>i;
    cout<<"j=";
    cin>>j;
    if(x[i][j]==0)//если не занято то присвоить Х
    x[i][j]=1;
    else if(i>2 || j>2 || i<0 || j<0 || x[i][j]!=0)
    {
        cout<<"WRONG,TRY AGAIN"<<endl; //или же повторить ход сначала
 
        goto loop;
    }
}
void out(int x[][n]) //функция вывода матрицы
{
        system("cls");//заранее экран очищяется
    cout<<endl;
for(int i=0;i<1;i++)
{
        for(int m=0;m<n;m++)
            cout<<"_____"; //Вывод верхней полосы
    cout<<endl;
}
for(int i=0;i<n;i++)
{
    for(int j=0;j<n;j++){
        
            if(x[i][j]==1) // если в ячейке 1,то написать Х
        cout<<"I"<<" X "<<"I"; 
            else if(x[i][j]==2)//если 2 то 0
                cout<<"I"<<" 0 "<<"I";
            else if(x[i][j]==0) //если там 0 то оставить пустым
                cout<<"I"<<"   "<<"I";      
        }
    cout<<endl;
    for(int m=0;m<n;m++)
            cout<<"_____";//Вывод верхней полосы
    cout<<endl;
}
cout<<endl; 
}
 
bool win(int x[][n])//функция проверки игры
{
        for(int i = 0; i < n; i++)
        if(x[i][0] == x[i][1] && x[i][0] == x[i][2] && x[i][0]!=0)//Проверка i-ой линии
        {
        if(x[i][0]==1)cout<<"YOU WON!!!!!!"<<endl;
        else if(x[i][0]==2)cout<<"YOU LOSE!!!!!!"<<endl;
        return 1;
        }
     for(int i = 0; i < n; i++)
        if(x[0][i] == x[1][i] && x[0][i] == x[2][i] && x[0][i]!=0)//Проверка столбца
     {
        if(x[0][i]==1)cout<<"YOU WON!!!!!!"<<endl;
        else if(x[0][i]==2)cout<<"YOU LOSE!!!!!!"<<endl;
        return 1;
        }
     if(x[0][0] == x[1][1] && x[1][1] == x[2][2]  && x[0][0]!=0)//Проверка главной диагонали
         {
        if(x[0][0]==1)cout<<"YOU WON!!!!!!"<<endl;
        else if(x[0][0]==2)cout<<"YOU LOSE!!!!!!"<<endl;
        return 1;
        }
     if(x[0][2] == x[1][1] && x[1][1] == x[2][0]  && x[0][2]!=0)//Проверка побочной диагонали
        {
        if(x[1][1]==1)cout<<"YOU WON!!!!!!"<<endl;
        else if(x[1][1]==2)cout<<"YOU LOSE!!!!!!"<<endl;
        return 1;
        }   
     //НИЧЬЯ
     int d=0;
     for(int i=0;i<n;i++)
         for(int j=0;j<n;j++)
        if(x[i][j]!=0)d++;//если данная ячейка не свободна то d++
     if(d==9)//если d==9(то есть если нигде не пусто), то ничья
     {
     cout<<"DRAW!!!!!!"<<endl;
     return 1;
     }
    
     
     return 0;
}
 
 
 
void comp(int x[][n])//Ход компьютера. Если рядом с крестиком есть крестик,то рядом с другим крестиком написать 0
{
    int a=0,b=0;
        
                
                 for(int i=0;i<n;i++)
         for(int j=0;j<n;j++)
    
         {
 
rrand:      a=rand()%3;
            b=rand()%3;
            if(x[a][b]==0)x[a][b]=2;
            else goto rrand;
            i=n;
            j=n;}
        }
 
Текущее время: 15:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru