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

C++

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.87
noH4uk
5 / 5 / 0
Регистрация: 18.11.2010
Сообщений: 34
#1

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

18.11.2010, 14:21. Просмотров 1925. Ответов 10
Метки нет (Все метки)

учу си месяц дали задачу... хелп ми плиз!
Игра крестики нолики.
Игра в крестики нолики вдется на квадратном поле 3*3. Играют двое. Начинают крестики. каждый из игроков, поочередно, ставит свой значок, крестик или нолик, на свободную клетку. Выигрывает тот кто первый поставит три своих значка вряд по вертикали, горизонтали или диагонали.
Последовательность ходов задается 9-значным числом. Цифра обозначает номер клетки хода, а порядковый номер цифры-номер хода.
Клетки пронумерованны, как на рисунке:
789
456
123
Опредилить,кто выиграл, крестики или нолики?
Записать фаил в output.txt победителя
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.11.2010, 14:21     Крестики Нолики
Посмотрите здесь:

Крестики-Нолики - C++ WinAPI
Суть проста,обычная игра Крестики - Нолики. При компиляций возникает ошибка Ошибка 1 error C2440: =: невозможно преобразовать...

крестики нолики - Visual C++
разбираю игру крестики нолики) хотелось бы сделать, чтобы можно было пользователю выбирать цвет карандаша, допустим из 3х цветов, синий,...

Крестики нолики - C++ Builder
Я вот написал алгоритм для крестиков ноликов, а он чегото не работает( посмотрите пожалуйста. ...

Крестики-нолики - Visual C++
у кого-то есть программа "Крестики-нолики", написана в среде программирования в Visual C++

Крестики-нолики - C++
Помогите пожалуйста создать игру крестики-нолики на 2 игроков, поле игры - массив 3х3. Нашла несколько вариантов кода, но как-то все...

Крестики-нолики - C++
Здраствуйте,помогите пожалуйсто с програмкои крестики нолики проблема не могу в вести символы. Вот собственно сам код рамки . ...

Игра крестики-нолики - C++ Builder
как сделать так чтобы после окнчания игры в отдельном окне выводилось сообщение кто победил или ничья..

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
RU4NIK
Заблокирован
18.11.2010, 14:38     Крестики Нолики #2
Цитата Сообщение от ПОНЧИК Посмотреть сообщение
учу си месяц дали задачу... хелп ми плиз!
Игра крестики нолики.
Игра в крестики нолики вдется на квадратном поле 3*3. Играют двое. Начинают крестики. каждый из игроков, поочередно, ставит свой значок, крестик или нолик, на свободную клетку. Выигрывает тот кто первый поставит три своих значка вряд по вертикали, горизонтали или диагонали.
Последовательность ходов задается 9-значным числом. Цифра обозначает номер клетки хода, а порядковый номер цифры-номер хода.
Клетки пронумерованны, как на рисунке:
789
456
123
Опредилить,кто выиграл, крестики или нолики?
Записать фаил в output.txt победителя
нету не 0 не +?!
noH4uk
5 / 5 / 0
Регистрация: 18.11.2010
Сообщений: 34
18.11.2010, 14:39  [ТС]     Крестики Нолики #3
нет нету
RU4NIK
Заблокирован
18.11.2010, 14:41     Крестики Нолики #4
Цитата Сообщение от noH4uk Посмотреть сообщение
нет нету
почему? если крестики нолики то должны быть!
noH4uk
5 / 5 / 0
Регистрация: 18.11.2010
Сообщений: 34
18.11.2010, 15:20  [ТС]     Крестики Нолики #5
хз, такое задание...(((((((

Добавлено через 20 минут
ну помогитееееее
valeriikozlov
Эксперт C++
4669 / 2495 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
18.11.2010, 15:30     Крестики Нолики #6
В общих чертах можно сделать так:
1. Создаем массив 3*3. Заполняем его значениями -1.
2. Начинаем его заполнять из значений 9-ти значного числа. Лучше написать отдельную функцию. Если ход первого игрока, то ставим в соотвествующую ячейку массива 1, если ход второго игрока, то ставим в соответствующую ячейку 0.
3. После пятого хода начинаем проверяить массив на то что в какой-нибудь строке, столбце или диагонали не находятся все 1 или 0.
noH4uk
5 / 5 / 0
Регистрация: 18.11.2010
Сообщений: 34
18.11.2010, 15:44  [ТС]     Крестики Нолики #7
а точнее??? как это в языке си записать???

Добавлено через 26 секунд
и плюс ко всему там нет никаких 0 абсолютно!(((
RU4NIK
Заблокирован
18.11.2010, 17:45     Крестики Нолики #8
Цитата Сообщение от ПОНЧИК Посмотреть сообщение
а точнее??? как это в языке си записать???

Добавлено через 26 секунд
и плюс ко всему там нет никаких 0 абсолютно!(((
Да все понятно умничка ты! все правильно!
valeriikozlov
Эксперт C++
4669 / 2495 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
18.11.2010, 17:55     Крестики Нолики #9
Цитата Сообщение от noH4uk Посмотреть сообщение
и плюс ко всему там нет никаких 0 абсолютно!(((
Конечно нет 0. Смотрите:
Есть на входе девятизначное число, например: 789456123
Теперь
Цитата Сообщение от valeriikozlov Посмотреть сообщение
Создаем массив 3*3. Заполняем его значениями -1.
Вот такой массив создаем:
-1 -1 -1
-1 -1 -1
-1 -1 -1

Цитата Сообщение от valeriikozlov Посмотреть сообщение
2. Начинаем его заполнять из значений 9-ти значного числа. Лучше написать отдельную функцию. Если ход первого игрока, то ставим в соотвествующую ячейку массива 1, если ход второго игрока, то ставим в соответствующую ячейку 0.
Первая цифра 7 - ход первого игрока, значит наш массив теперь будет выглядеть так:
1 -1 -1
-1 -1 -1
-1 -1 -1
Следующая цифра 8, ходит второй игрок, значит теперь наш массив будет таким:
1 0 -1
-1 -1 -1
-1 -1 -1
Далее цифра 9, ходит первый игрок:
1 0 1
-1 -1 -1
-1 -1 -1
и т.д. и не забудьте:
Цитата Сообщение от valeriikozlov Посмотреть сообщение
3. После пятого хода начинаем проверяить массив на то что в какой-нибудь строке, столбце или диагонали не находятся все 1 или 0.
quazee
14 / 14 / 0
Регистрация: 15.10.2010
Сообщений: 49
18.11.2010, 19:32     Крестики Нолики #10
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
#include <conio.h>
#include <stdio.h>
#include<iostream>
int main()
{
int l,i,j,k=0,S=1,A[3][3],x,y,n,p;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
A[i][j]=0;
printf("\n      j1  j2  j3\n");
printf("    \332\304\304\304\302\304\304\304\302\304\304\304\277\n");
printf(" i1 \263   \263   \263   \263\n");
printf("    \303\304\304\304\305\304\304\304\305\304\304\304\264\n");
printf(" i2 \263   \263   \263   \263\n");
printf("    \303\304\304\304\305\304\304\304\305\304\304\304\264\n");
printf(" i3 \263   \263   \263   \263\n");
printf("    \300\304\304\304\301\304\304\304\301\304\304\304\331\n");
for (l=0;l<9;l++)
{
 printf(" HOD %d\n",S); 
if (S%2==1) {n=1; p=1;;}
if (S%2==0) {n=2; p=-1;;}
S++;
printf("igrok %d:\n",n);
while(x<0 || x>3 || y<0 || y>3 || A[x-1][y-1]==1 || A[x-1][y-1]==-1) 
{
printf("i = "); scanf("%d",&x);
printf("j = "); scanf("%d",&y);
i=x-1; 
j=y-1;
if(x<0 || x>3 || y<0 || y>3 || A[x-1][y-1]==1 || A[x-1][y-1]==-1)
printf("nevernie koordinati! vvedite esh'e raz!\n");
}
A[i][j]=p;
printf("      j1  j2  j3\n");
printf("    \332\304\304\304\302\304\304\304\302\304\304\304\277\n");
printf(" i1 \263");if(A[0][0]==1)printf(" X ");if(A[0][0]==-1)printf(" O ");
if(A[0][0]!=1 && A[0][0]!=-1)printf("   ");
printf("\263"); if(A[0][1]==1) printf(" X "); if(A[0][1]==-1) printf(" O ");
if(A[0][1]!=1 && A[0][1]!=-1)printf("   ");
printf("\263"); if(A[0][2]==1) printf(" X "); if(A[0][2]==-1) printf(" O ");
if(A[0][2]!=1 && A[0][2]!=-1)printf("   ");
printf("\263\n");
printf("    \303\304\304\304\305\304\304\304\305\304\304\304\264\n");
printf(" i2 \263");if(A[1][0]==1)printf(" X ");if(A[1][0]==-1)printf(" O ");
if(A[1][0]!=1 && A[1][0]!=-1)printf("   ");
printf("\263"); if(A[1][1]==1) printf(" X "); if(A[1][1]==-1) printf(" O ");
if(A[1][1]!=1 && A[1][1]!=-1)printf("   ");
printf("\263"); if(A[1][2]==1) printf(" X "); if(A[1][2]==-1) printf(" O ");
if(A[1][2]!=1 && A[1][2]!=-1)printf("   ");
printf("\263\n");
printf("    \303\304\304\304\305\304\304\304\305\304\304\304\264\n");
printf(" i3 \263");if(A[2][0]==1)printf(" X ");if(A[2][0]==-1)printf(" O ");
if(A[2][0]!=1 && A[2][0]!=-1)printf("   ");
printf("\263"); if(A[2][1]==1) printf(" X "); if(A[2][1]==-1) printf(" O ");
if(A[2][1]!=1 && A[2][1]!=-1)printf("   ");
printf("\263"); if(A[2][2]==1) printf(" X "); if(A[2][2]==-1) printf(" O ");
if(A[2][2]!=1 && A[2][2]!=-1)printf("   ");
printf("\263\n");
printf("    \300\304\304\304\301\304\304\304\301\304\304\304\331\n");
for(i=0;i<3;i++)
{
k=0;
for(j=0;j<3;j++)
{
k+=A[i][j];
}
if(k==3 || k==-3) break;
}
if(k==3 || k==-3) break;
k=0;
for(j=0;j<3;j++)
{
k=0;
for(i=0;i<3;i++)
{
k+=A[i][j]; 
}
if(k==3 || k==-3) break;
}
if(k==3 || k==-3) break;
k=A[0][0]+A[1][1]+A[2][2]; if(k==3 || k==-3) break;
k=A[0][2]+A[1][1]+A[2][0]; if(k==3 || k==-3) break;
}
if(k==3) printf("\n POBEDIL 1 igrok!!!");
if(k==-3) printf("\n POBEDIL 2 igrok!!!");
system("pause");
return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.11.2010, 08:07     Крестики Нолики
Еще ссылки по теме:

Битовые крестики-нолики - C++
Нужно написать битовую игру в крестики нолики. Поле это int 32-бита, 4х4. Х = 10, О = 11, пустая клетка =00.

Программа крестики и нолики - C++
#include&lt;conio.h&gt; #include&lt;stdio.h&gt; #include&lt;time.h&gt; #include&lt;stdlib.h&gt; #include&lt;dos.h&gt; #include&lt;math.h&gt; int main(void) { ...

Крестики-нолики ревью - C++
Здравствуйте! Учусь программировать сам по книжке и гуглу, а хочется поучиться у живых людей. Вот моя первая самостоятельная программка -...

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

Крестики-нолики, проверка - C++
Подскажите пожалуйста как тут реализовать проверку по прямой и по диагонали? #include &lt;iostream&gt; #include &lt;cmath&gt; using...


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

Или воспользуйтесь поиском по форуму:
noH4uk
5 / 5 / 0
Регистрация: 18.11.2010
Сообщений: 34
19.11.2010, 08:07  [ТС]     Крестики Нолики #11
quazee, огромное тебе спасибо) разобрался во всем)
Yandex
Объявления
19.11.2010, 08:07     Крестики Нолики
Ответ Создать тему
Опции темы

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