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

крестик-нолик-условие ничьи - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Есть вопрос по WinApi http://www.cyberforum.ru/cpp-beginners/thread198287.html
Напишу сюда, так как в этом топике много людей, может кто знает WinApi и распаковщик сообщений, может кто подскажет по этой теме http://www.cyberforum.ru/win-api/thread198215.html
C++ создать массив который состоит из милион элементов Можно ли в С++ создать массив который состоит из милион элементов. И если можно то как. http://www.cyberforum.ru/cpp-beginners/thread198272.html
C++ Сортировка методом Шелла
Сначала сравниваются и сортируются между собой ключи которые стоят на расстоянии d друг от друга,после этого процедура повторяется для некоторых меньших значений d, а заканчивается сортировка Шелла упорядочиванием элементов при d=1. Ребят, помогите разобраться. я в этом дуб дерево хвойное, а на завтра мне надо сдать КР.. Зарание спасибо Я выдрал код из википедии но при запуске вылетает...
одномерные массивы (. Отсортировать массив из N символов в невозрастающем порядке с помошью сортировки прямым обменом.) C++
. Отсортировать массив из N символов в невозрастающем порядке с помощью сортировки прямым обменом. (заранее спасибо)
C++ Оллимпиадное задание http://www.cyberforum.ru/cpp-beginners/thread198255.html
Задание. Тестирование студентов по некоторой дисциплине. Программа предлагает пользователю ответить на определенное количество вопросов (не менее 10). Каждый вопрос включает несколько вариантов ответа (не менее 4-х). Программа последовательно предъявляет пользователю вопросы и варианты ответов и ожидает ввода от пользователя выбранного варианта. В конце программа отображает процент правильных...
C++ Вычислить произведение элементов массива, принадлежащих заданному отрезку В одномерном массиве, состоящем из N целых чисел, вычислить: 1. индекс минимального элемента; 2. произведение элементов массива, принадлежащих заданному отрезку . написал прогу для первого условия, не проходит тест. кто может подсобите, код ниже // laba 6 zad 1.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" #include <iostream> подробнее

Показать сообщение отдельно
^Tecktonik_KiLLeR
 Аватар для ^Tecktonik_KiLLeR
1144 / 426 / 19
Регистрация: 23.06.2009
Сообщений: 6,141
Завершенные тесты: 1
27.11.2010, 12:12  [ТС]     крестик-нолик-условие ничьи
Crudelis, эмм...а где именно
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
#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()
{
    int x[n][n]={0};    //инициализованная матрица
    while(true) //бесконечный цикл
{
    out(x); //вывод матрицы
    inp(x); //ввод крестика в матрицу
    if(win(x)==1)//если конец игры
    {
        out(x);         //вывод
        win(x);         //выводит либо победителя либо ничья
        break;          //остановка цикла-игры
    }
        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
    {
        cout<<"WRONG,TRY AGAIN"<<endl; //или же повторить ход сначала
        goto loop;
    }
}
 
void out(int x[][n]) //функция вывода матрицы
{
        system("cls");//заранее экран очищяется
    cout<<endl;
for(int i=0;i<n;i++)
{
    for(int j=0;j<n;j++)
        cout<<x[i][j]<<" ";
    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[i][2]  && x[0][i]!=0)//Проверка столбца
     {
        if(x[i][0]==1)cout<<"YOU WON!!!!!!"<<endl;
        else if(x[i][0]==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;
        }
         
     if(x[0][0] == x[1][0] && x[0][0] == x[2][0]  && x[0][2]!=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][1] == x[1][1] && x[0][1] == x[2][1]  && x[2][1]!=0)//Проверка второго столбца
        {
        if(x[0][1]==1)cout<<"YOU WON!!!!!!"<<endl;
        else if(x[0][1]==2)cout<<"YOU LOSE!!!!!!"<<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()%2;
            b=rand()%2;
            if(x[a][b]==0)x[a][b]=2;
            else goto rrand;
            i=n;
                j=n;
        }
}
 
Текущее время: 02:04. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru