Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.12.2011, 16:39   #1
kofeinshik
 
Регистрация: 23.12.2011
Сообщений: 5
Вопрос Крестики-нолики.Посмотрите код.Ошибку не найду.

Крестики - нолики. Поле 3х3. Играют два игрока. Первый крестиками,второй ноликами.Ходы задаются цифрами так как показано ниже:
7 8 9
4 5 6
1 2 3
Проблема:при запуске проги выводится "игрок номер 1 сделайте ход.."
ввожу цифру,ход делается..крестик выводится. далее ентер...но ничего.и пока я не введу ещё одну цифру программа не продолжает действия далее "игрок номер два сделайте ход" сделав ход за второго игрока выводится не только 0 который я ввожу но и крестик который я ввел перед этим(когда я вводил цифру потому что программа не продолжалась).
Вот как то так. Пересмотрел несколько раз. но ошибку так и не нашёл.
Помогите пожалуйста =) Осталось устранить только этот недочет и курсовик будет готов.
kofeinshik вне форума Ответить с цитированием
Старый 25.12.2011, 16:40   #2
kofeinshik
 
Регистрация: 23.12.2011
Сообщений: 5
По умолчанию

Вот тело программы:

#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
void main(void) {
char st[9];
int c,b,a,i,j,k;
clrscr();
for(i=1;i<10;i++) {
st[i]='- ';
printf("%c",st[i]);
if(i%3==0) printf("\n"); }
for(i=1;i<10;i++) {
if ((st[1]=='X')&&(st[2]=='X')&&(st[3]=='X')) {printf("IIobeda 1-ogo ugroka\n");goto a;}
if ((st[4]=='X')&&(st[5]=='X')&&(st[6]=='X')) {printf("IIobeda 1-ogo ugroka\n");goto a;}
if ((st[7]=='X')&&(st[8]=='X')&&(st[9]=='X')) {printf("IIobeda 1-ogo ugroka\n");goto a;}
if ((st[1]=='X')&&(st[4]=='X')&&(st[7]=='X')) {printf("IIobeda 1-ogo ugroka\n");goto a;}
if ((st[2]=='X')&&(st[5]=='X')&&(st[8]=='X')) {printf("IIobeda 1-ogo ugroka\n");goto a;}
if ((st[3]=='X')&&(st[6]=='X')&&(st[9]=='X')) {printf("IIobeda 1-ogo ugroka\n");goto a;}
if ((st[1]=='X')&&(st[5]=='X')&&(st[9]=='X')) {printf("IIobeda 1-ogo ugroka\n");goto a;}
if ((st[3]=='X')&&(st[5]=='X')&&(st[7]=='X')) {printf("IIobeda 1-ogo ugroka\n");goto a;}

if ((st[1]=='0')&&(st[2]=='0')&&(st[3]=='0')) {printf("IIobeda 2-ogo ugroka\n");goto a;}
if ((st[4]=='0')&&(st[5]=='0')&&(st[6]=='0')) {printf("IIobeda 2-ogo ugroka\n");goto a;}
if ((st[7]=='0')&&(st[8]=='0')&&(st[9]=='0')) {printf("IIobeda 2-ogo ugroka\n");goto a;}
if ((st[1]=='0')&&(st[4]=='0')&&(st[7]=='0')) {printf("IIobeda 2-ogo ugroka\n");goto a;}
if ((st[2]=='0')&&(st[5]=='0')&&(st[8]=='0')) {printf("IIobeda 2-ogo ugroka\n");goto a;}
if ((st[3]=='0')&&(st[6]=='0')&&(st[9]=='0')) {printf("IIobeda 2-ogo ugroka\n");goto a;}
if ((st[1]=='0')&&(st[5]=='0')&&(st[9]=='0')) {printf("IIobeda 2-ogo ugroka\n");goto a;}
if ((st[3]=='0')&&(st[5]=='0')&&(st[7]=='0')) {printf("IIobeda 2-ogo ugroka\n");goto a;}
if(i%2==1) //proveriaem 4et,ne4et; ne4et - X,4et - 0//
printf("ugrok No1 sdelaite xod\n"); {
b:scanf("%d",&k);
switch(k) {
case 1:{
if (st[7]=='X') {printf("Nevern xod,sdelaite xod zanovo\n");goto b;}
if (st[7]=='0') {printf("Nevern xod,sdelaite xod zanovo\n");goto b;}
st[7]='X';break;}
case 2:{
if (st[8]=='X') {printf("Nevern xod,sdelaite xod zanovo\n");goto b;}
if (st[8]=='0') {printf("Nevern xod,sdelaite xod zanovo\n");goto b;}
st[8]='X';break;}
case 3:{
if (st[9]=='X') {printf("Nevern xod,sdelaite xod zanovo\n");goto b;}
if (st[9]=='0') {printf("Nevern xod,sdelaite xod zanovo\n");goto b;}
st[9]='X';break;}
case 4:{
if (st[4]=='X') {printf("Nevern xod,sdelaite xod zanovo\n");goto b;}
if (st[4]=='0') {printf("Nevern xod,sdelaite xod zanovo\n");goto b;}
st[4]='X';break;}
case 5: {
if (st[5]=='X') {printf("Nevern xod,sdelaite xod zanovo\n");goto b;}
if (st[5]=='0') {printf("Nevern xod,sdelaite xod zanovo\n");goto b;}
st[5]='X';break;}
case 6:{
if (st[6]=='X') {printf("Nevern xod,sdelaite xod zanovo\n");goto b;}
if (st[6]=='0') {printf("Nevern xod,sdelaite xod zanovo\n");goto b;}
st[6]='X';break;}
case 7:{
if (st[1]=='X') {printf("Nevern xod,sdelaite xod zanovo\n");goto b;}
if (st[1]=='0') {printf("Nevern xod,sdelaite xod zanovo\n");goto b;}
st[1]='X';break;}
case 8:{
if (st[2]=='X') {printf("Nevern xod,sdelaite xod zanovo\n");goto b;}
if (st[2]=='0') {printf("Nevern xod,sdelaite xod zanovo\n");goto b;}
st[2]='X';break;}
case 9:{
if (st[3]=='X') {printf("Nevern xod,sdelaite xod zanovo\n");goto b;}
if (st[3]=='0') {printf("Nevern xod,sdelaite xod zanovo\n");goto b;}
st[3]='X';break;} }; }

Последний раз редактировалось kofeinshik; 25.12.2011 в 16:44.
kofeinshik вне форума Ответить с цитированием
Старый 25.12.2011, 16:40   #3
kofeinshik
 
Регистрация: 23.12.2011
Сообщений: 5
По умолчанию

if(i%2==0) { //uslovie 4et//
printf("ugrok No2 sdelaite xod\n");
с:scanf("%d",&k);
switch(k) {
case 1:{
if (st[7]=='X') {printf("Nevern xod,sdelaite xod zanovo\n");goto с;}
if (st[7]=='0') {printf("Nevern xod,sdelaite xod zanovo\n");goto с;}
st[7]='0';break;}
case 2:{
if (st[8]=='X') {printf("Nevern xod,sdelaite xod zanovo\n");goto с;}
if (st[8]=='0') {printf("Nevern xod,sdelaite xod zanovo\n");goto с;}
st[8]='0';break;}
case 3:{
if (st[9]=='X') {printf("Nevern xod,sdelaite xod zanovo\n");goto с;}
if (st[9]=='0') {printf("Nevern xod,sdelaite xod zanovo\n");goto с;}
st[9]='0';break;}
case 4:{
if (st[4]=='X') {printf("Nevern xod,sdelaite xod zanovo\n");goto с;}
if (st[4]=='0') {printf("Nevern xod,sdelaite xod zanovo\n");goto с;}
st[4]='0';break;}
case 5:{
if (st[5]=='X') {printf("Nevern xod,sdelaite xod zanovo\n");goto с;}
if (st[5]=='0') {printf("Nevern xod,sdelaite xod zanovo\n");goto с;}
st[5]='0';break;}
case 6:{
if (st[6]=='X') {printf("Nevern xod,sdelaite xod zanovo\n");goto с;}
if (st[6]=='0') {printf("Nevern xod,sdelaite xod zanovo\n");goto с;}
st[6]='0';break;}
case 7:{
if (st[1]=='X') {printf("Nevern xod,sdelaite xod zanovo\n");goto с;}
if (st[1]=='0') {printf("Nevern xod,sdelaite xod zanovo\n");goto с;}
st[1]='0';break;}
case 8:{
if (st[2]=='X') {printf("Nevern xod,sdelaite xod zanovo\n");goto с;}
if (st[2]=='0') {printf("Nevern xod,sdelaite xod zanovo\n");goto с;}
st[2]='0';break;}
case 9:{
if (st[3]=='X') {printf("Nevern xod,sdelaite xod zanovo\n");goto с;}
if (st[3]=='0') {printf("Nevern xod,sdelaite xod zanovo\n");goto с;}
st[3]='0';break;}
clrscr();
for(j=1;j<10;j++) {
printf("%c",st[j]);
if(j%3==0) printf("\n"); }
getch();
}
a : printf("ugra okon4ena!");
getch();
}

Последний раз редактировалось kofeinshik; 25.12.2011 в 16:47.
kofeinshik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
крестики-нолики.код [javascript] Александра89 JavaScript, Ajax 0 09.12.2011 01:48
Крестики нолики revaldo666 Общие вопросы C/C++ 8 20.01.2011 17:02
Крестики нолики aud Паскаль, Turbo Pascal, PascalABC.NET 2 15.06.2009 22:32
Курсовая работа на тему крестики-нолики. Помогите разобраться и найти ошибку. vanzer Паскаль, Turbo Pascal, PascalABC.NET 0 02.05.2009 21:16
Посмотрите на мой АЖАКС не найду ошибки mogul82 JavaScript, Ajax 3 31.10.2008 22:13