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

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

Войти
Регистрация
Восстановить пароль
 
valovic
0 / 0 / 0
Регистрация: 16.08.2012
Сообщений: 6
#1

Крестики нолики - C++

08.04.2013, 07:24. Просмотров 862. Ответов 1
Метки нет (Все метки)

Всем доброе утро) Написал программу, только не могу найти там ошибку в проверке. Когда надо проверить кто выйграл, по диагоналям строкам столбцам..
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
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include "math.h"
 
 
 
using namespace std;
 
int main()
{
    int q,k,i,j,n,n1,e;
    int a[3][3];
    k=-1;
    q=1;
    e=1;
    for (i=2;i>=0;i--)//двумерный массив из элементов num pad
        for (j=0;j<3;j++)
        {   a[i][j]=q;
            q=q+1;
        }
 
        for (i=0;i<3;i++)//вывод массива
    {
        for (j=0;j<3;j++)
            cout<<a[i][j];
        cout<<'\n';
    }
 
    while (e=1)//пока есть ходы
    {   
        
 
        cout<<"vvedite adress hoda";
        cin>>n;
        for (i=0;i<3;i++)//заполнение массива Х и О Х=-1 О=0
            for (j=0;j<3;j++)
                if (n==a[i][j])
                {   if (k==-1)
                    {   a[i][j]=-1;
                        k=0;
                    }
                    else
                    {   a[i][j]=0;
                        k=-1;
                    }
                }   
 
        for (i=0;i<3;i++)//проверка по строкам
        {   j=1;
            if (a[i][j]==a[i][j+1]==a[i][j-1])
            {   e=0;
                cout<<"igra okonchena"<<'\n';
            }
        }
        for (j=0;j<3;j++)//проверка по столбцам
        {   i=1;
            if (a[i-1][j]==a[i][j]==a[i+1][j])
            {   e=0;
                cout<<"igra okonchena"<<'\n';
            }
        }
        i=1;
        j=1;//проверка по диагоналям
        if (a[i][j]==a[i+1][j+1]==a[i-1][j-1])
        {   e=0;
            cout<<"igra okonchena"<<'\n';
        }
        if (a[i-1][j+1]==a[i][j]==a[i+1][j-1])
        {   e=0;
            cout<<"igra okonchena"<<'\n';
        }
 
        }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.04.2013, 07:24     Крестики нолики
Посмотрите здесь:

крестики-нолики - C++
Здравствуйте! у кого есть примеры программ крестики-нолики? если не затруднит поделитесь пожалуйста..

Крестики-нолики 10 на 10 - C++
Нужно написать игру крестики-нолики. Застрял на алгоритме проверки победителя, точнее я написал, она работает, но алгоритм проверки в плане...

Крестики нолики - C++
Здравствуйте. Никак не получается определить, кто победил, всегда выводит ничью. Почему? #include &lt;iostream&gt; #include &lt;conio.h&gt; ...

Крестики Нолики - C++
Прошу помочь, я написал игру крестики нолики, но при вводе. Выводится только крестик. ПОмогите. Не знаю в чем ошибка. #include &lt;iostream&gt;...

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

Крестики нолики 10 на 10 - C++
Нашел код крестики нолики 4 на 4 но не компилируется, там ошибки почему то в &lt;&lt; хочу сделать из него 10 на 10 Может кто нибудь...

Крестики нолики - C++
Уж слишком запутался даже в такой простом коде: #include &lt;iostream&gt; #include &lt;cstring&gt; #include &lt;string&gt; #include &lt;iomanip&gt; ...

Крестики нолики - C++
Привет всем! Пишу крестики нолики в консоли и проблема вот в чем: нарисовал само поле, и нужно при вводе координат определенного участка...

Крестики-нолики - C++
При запуске выдаёт ошибку error LNK2001: неразрешенный внешний символ &quot;&quot;char __cdecl check(void)&quot; (?check@@YADXZ)&quot; Судя по всему,...

Крестики-нолики - C++
Пишу крестики нолики, получается смесь ООП и говнокода:senor: Вот собственно код: #include &quot;Pole.h&quot; void CChunk::setState(e_state...

Крестики-нолики - C++
Добрый вечер. Хочу попробовать написать свои крестики-нолики. Игру еще не дописал, но уже появилась следующая проблема. По идее, если я...

Крестики нолики - C++
Доброго времени суток, недавно, я решил написать программу Крестики нолики, опираясь на свои знания в С++, но при компиляции кода...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
VEINHORN
543 / 92 / 22
Регистрация: 16.12.2011
Сообщений: 317
09.04.2013, 17:46     Крестики нолики #2
Может вам поможет.
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
#include <stdio.h>
#include <stdlib.h>
#include<clocale>
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)
{
  setlocale(LC_CTYPE,"Russian");  
  char done;
  printf("Это игра в крестики-нолики.\n");
  printf("Вы будете играть против компьютера.\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("Вы победили!\n");
  else printf("Победил компьютер!!!!\n");
  disp_matrix(); /* показ финальной позиции */
  system("pause");
  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("Введите координаты X,Y Вашего хода: ");
  scanf("%d%*c%d", &x, &y);
  x--; y--;
 
  if(matrix[x][y]!= ' '){
    printf("Неверный ход, попытайтесь еще.\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;
  /* Второй break нужен для выхода из цикла по i */
  }
 
  if(i*j==9)  {
    printf("Конец игры\n");
    exit(0);
  }
  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[1][i] &&
       matrix[0][i]==matrix[2][i]) 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 ' ';
}
Yandex
Объявления
09.04.2013, 17:46     Крестики нолики
Ответ Создать тему
Опции темы

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