Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/16: Рейтинг темы: голосов - 16, средняя оценка - 4.56
5 / 5 / 0
Регистрация: 18.11.2010
Сообщений: 34

Крестики Нолики

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

Студворк — интернет-сервис помощи студентам
учу си месяц дали задачу... хелп ми плиз!
Игра крестики нолики.
Игра в крестики нолики вдется на квадратном поле 3*3. Играют двое. Начинают крестики. каждый из игроков, поочередно, ставит свой значок, крестик или нолик, на свободную клетку. Выигрывает тот кто первый поставит три своих значка вряд по вертикали, горизонтали или диагонали.
Последовательность ходов задается 9-значным числом. Цифра обозначает номер клетки хода, а порядковый номер цифры-номер хода.
Клетки пронумерованны, как на рисунке:
789
456
123
Опредилить,кто выиграл, крестики или нолики?
Записать фаил в output.txt победителя
2
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.11.2010, 14:21
Ответы с готовыми решениями:

Формальная постановка для игры крестики и нолики
Доброго времени суток. Написал игру крестики и нолики размерностью 4х4. Нужно написать к этой игре формалку, а я понятия даже не имею о том...

Крестики Нолики
Здравствуйте есть одна проблема нашел на этом форуме исходники к игре крестики нолики однако не получается адекватно настроить начисление...

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

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

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

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

Добавлено через 26 секунд
и плюс ко всему там нет никаких 0 абсолютно!(((
Да все понятно умничка ты! все правильно!
0
Эксперт С++
 Аватар для valeriikozlov
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
18.11.2010, 17:55
Цитата Сообщение от 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.
0
14 / 14 / 1
Регистрация: 15.10.2010
Сообщений: 49
18.11.2010, 19:32
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;
}
0
5 / 5 / 0
Регистрация: 18.11.2010
Сообщений: 34
19.11.2010, 08:07  [ТС]
quazee, огромное тебе спасибо) разобрался во всем)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.11.2010, 08:07
Помогаю со студенческими работами здесь

Игра Крестики-нолики
Всем привет. Сделал игру Крестики-нолики на консоли, хотел бы узнать можно ее как-нибудь улучшить, упростить код(если возможно). Сама...

Крестики-нолики-ошибки
Добрый день. Я вот хотел посмотреть работу игры крестики-нолики (судя по всему, речь идет о этой теме...

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

гомоку / крестики-нолики 5 в ряд
не могу написать ИИ. очень нужен исходник, адекватных примеров на с++ не нашел

Создание игры крестики-нолики
разаботка игры крестики нолики в с++


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это дополнительная запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru