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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.64
^Tecktonik_KiLLeR
1159 / 441 / 22
Регистрация: 23.06.2009
Сообщений: 6,242
Завершенные тесты: 1
#1

крестик-нолик - функция победы - C++

26.11.2010, 17:00. Просмотров 2123. Ответов 4
Метки нет (Все метки)

пишу игру крестики нолики.
функция bool win(int x[][n]; порверят на каждом шагу наличие на победу.
Как мне писать грамотно условие проверки?я написал но грр..
C++
1
2
if(x[0][1]==x[0][0] && x[0][1]==x[0][2] || x[0][1]==x[1][2] && x[0][1]==x[2][1])
        return 1;
я помню учитель через фор сделал...я еще код скинул оттуда на флешку но не смог читать дома файл т.к. был заражен файл...вот и сам с самого начала пишу...а там хоть препод помогал..

Добавлено через 3 минуты
хотя можно тип функции объявить как void чтобы проверить если я победил то выводить YOU WON или же YOU LOSE....
зы
пустые клетки это 0,крести это 1 а нолик это 2)))
то есть что то типо такого

1 0 0
2 1 2
0 0 1

YOU WON
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.11.2010, 17:00
Здравствуйте! Я подобрал для вас темы с ответами на вопрос крестик-нолик - функция победы (C++):

крестик-нолик - функция пoбеды - C++
Ну кто же!!! Помогите,функция проверки на победу не работает нормально! Даже коменты написал что бы не запутаться...помогите. вот...

крестик-нолик-условие ничьи - C++
как написать условие ничьи для игры крестики нолики? Если рассмотреть доску как матрицу,то я смог написать условие только для самого...

Интеллект компьютера в игре Крестик-Нолик - C++
вот написал себе игру крестик нолик. Все нормально получилось. Просто вот не могу объяснить компьютеру как правильно думать. У меня есть...

Игра крестики-нолик - C++
Пишу игру крестики-нолики с хоть каким-то ИИ. Есть функция bot_attack и функция bot_def bool Game::bot_attack() { ...

Список, выводит лишний нолик - C++
Задание таково: Внести значения, выбрать количество элементов которые должны вывестись на экран с конца списка. Я почти решил но есть...

Условие победы! - C++
Никак не могу понять как сделать условие победы для игры крестики нолики на большом поле. Там где для победы надо выстроить 5 в ряд(по...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
asics
Freelance
Эксперт С++
2847 / 1784 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
26.11.2010, 17:01 #2
^Tecktonik_KiLLeR, Если что,вот легинкий пример игры
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
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
 
char matrix [3][3]; //Игральная доска
 
char check(void);
void init_matrix(void);
void get_player_move(void);
void get_computer_move(void);
void disp_matrix(void);
 
int main(void)
{
    char done;
    printf("Eto igta xpectuku-noluku\n");
    printf("Bu bydete igrat c komputerom\n");
    done = ' ';
    init_matrix();
    do
    {
                  disp_matrix();
                  get_player_move();
                  done = check(); //есть ли победитель ?
                  if(done != ' ')
                     break;//победитель определен
                  get_computer_move();
                  done = check();
                     
    }while(done == ' ');
    if(done == 'X')
      printf("You WIN!\n");
    else 
      printf("PC WIN!\n"); 
    disp_matrix();   
    getch();
    return 0;
}
 
//Инициализация матрици
void init_matrix(void)
{
     int i, j;
     for(i = 0; i < 3; i++)
        for(j = 0; j < 3; j++)
           matrix[i][j] = ' ';
}
 
//Ход грока
void get_player_move(void)
{
     int x, y;
     printf("Bedute koopdunatu X,Y: ");
     scanf("%d%*c%d", &x, &y);
     x--;
     y--;
     if(matrix[x][y] != ' ')
     {
                     printf("Hevepnuu kod.Poputautec ewe.\n");
                     get_player_move();
     }
     else
                     matrix[x][y] = 'X';
}
 
//Ход компа
void get_computer_move(void)
{
     int i, j;
     for(i = 0; i < 3; i++)
     {
        for(j = 0; j < 3; j++)
           if(matrix[i][j] == ' ')
              break;
        if(matrix[i][j] == ' ')
              break;      
     }
     if(i*j == 9)
        printf("Hichya");
     else 
        matrix[i][j] = 'O';   
}
 
//Вивести матрицу на екран
void disp_matrix(void)
{
     int t;
     for(t = 0; t < 3; t++)
     {
           printf(" %c | %c | %c ", matrix[t][0], matrix[t][1], matrix[t][2]);
           if(t != 2)
             printf("\n---|---|---\n");
     }
     printf("\n");
}
 
//Проверить ести ли победитель
char check(void)
{
     int i;
     for(i = 0; i < 3; i++)
        if(matrix[i][0] == matrix[i][1] && matrix[i][0] == matrix[i][2])
          return matrix[i][0];
     for(i = 0; i < 3; i++)
        if(matrix[0][i] == matrix[i][1] && matrix[0][i] == matrix[i][2])
          return matrix[0][i];
     if(matrix[0][0] == matrix[1][1] && matrix[1][1] == matrix[2][2])
          return matrix[0][0];
     if(matrix[0][2] == matrix[1][1] && matrix[1][1] == matrix[2][0])
          return matrix[0][2]; 
     return ' ';                 
}
Думаю перевести на С++ не составит труда.
0
^Tecktonik_KiLLeR
1159 / 441 / 22
Регистрация: 23.06.2009
Сообщений: 6,242
Завершенные тесты: 1
26.11.2010, 17:11  [ТС] #3
не понятный код
0
asics
Freelance
Эксперт С++
2847 / 1784 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
26.11.2010, 17:14 #4
^Tecktonik_KiLLeR, Хм,вроде простенкий,к слову, это пример из книги, уже точно не помню какой.
0
^Tecktonik_KiLLeR
1159 / 441 / 22
Регистрация: 23.06.2009
Сообщений: 6,242
Завершенные тесты: 1
26.11.2010, 22:21  [ТС] #5
C++
1
  if(x[0][i] == x[i][1] && x[0][i] == x[i][2])
тут что то не верно...если подставлять вместо i 2-то будет неверно и вылетит ВЫ ПОБЕДИЛИ..

Добавлено через 4 часа 54 минуты
ну блин кто нибудь напишите же это условие
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.11.2010, 22:21
Привет! Вот еще темы с ответами:

Как записать статистику игры (победы компьютера, игрока и ничью) в txt-файл? - C++
#include &lt;iostream&gt; #include &lt;clocale&gt; #include &lt;windows.h&gt; #include &lt;time.h&gt; using namespace std; char field = {'-', '-',...

Как сделать, так, чтобы ряд действий в программе выполнялся до тех пор, пока пользователь не нажмёт на крестик - C++
Как сделать, так, чтобы ряд действий в программе выполнялся до тех пор, пока пользователь не нажмёт на крестик? Я работаю в программе...

Крестики нолики Qt функция победы - C++ Qt
Всем доброго времени суток. На курсовой по ооп задали крестики нолики. Столкнулся с проблемой создания функции победы. Также нужно добавить...

Как из еденички сделать нолик - C (СИ)
здравствуйте. мне надо при происхождении события менять некоторое число. типа есть число х=0, происходит событие и х=1, опять происходит...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
26.11.2010, 22:21
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru