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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.06.2009, 16:29   #1
aud
Новичок
Джуниор
 
Регистрация: 15.06.2009
Сообщений: 3
Лампочка Крестики нолики

Добрый день, нужна помощь с исходником(скачаным) крестиков ноликов

Код:
Код:
program X_and_O;

                      
                        {Hod igroka}

plr_play:
 if (game=100) or (game=200) or (game=300) then goto endgame;
 textcolor(1);
 gotoxy(10,4);
 write(pcalc);
 gotoxy(24,4);
 case int of
  0 : write('prof');
  1 : write('norma');
  2 : write('kretin');
 end;
 write('): ');
 write(ccalc);
 gotoxy(9,5);
 case game of
  0..100 : wv:=100-game;
  101..200 : wv:=200-game;
  else wv:=300-game;
 end;
 write(game,'(do konca turinra ostalosj ',wv,' igr)');
 gotoxy(35,10);
 write('ЪДДДВДДДВДДДї');
 gotoxy(35,11);
 write('і   і   і   і');
 gotoxy(35,12);
 write('ГДДДЕДДДЕДДДґ');
 gotoxy(35,13);
 write('і   і   і   і');
 gotoxy(35,14);
 write('ГДДДЕДДДЕДДДґ');
 gotoxy(35,15);
 write('і   і   і   і');
 gotoxy(35,16);
 write('АДДДБДДДБДДДЩ');

 sv:=0;
 repeat
  sv2:=f[trunc(sv/3),sv mod 3];
  if sv2<>0 then
  begin
   gotoxy(trunc(sv/3)*4+37,(sv mod 3)*2+11);
   if sv2=1 then begin textcolor(p1); write(p2); end else begin textcolor(c1); write(c2); end;
  end;
  sv:=sv+1;
 until sv=9;
 textcolor(5);
 gotoxy(xcur*4+38,ycur*2+11);
 write('');
 sv:=0;
 repeat
  wv:=f[sv,0]+f[sv,1]+f[sv,2];
  if (wv=3) or (wv=-3) then goto win;
  wv:=f[0,sv]+f[1,sv]+f[2,sv];
  if (wv=3) or (wv=-3) then goto win;
  sv:=sv+1;
 until sv=3;
 wv:=f[0,0]+f[1,1]+f[2,2];
 if (wv=3) or (wv=-3) then goto win;
 wv:=f[2,0]+f[1,1]+f[0,2];
 if (wv=3) or (wv=-3) then goto win;
 if (f[0,0]<>0) and (f[0,1]<>0) and (f[0,2]<>0) and (f[1,0]<>0) and (f[1,1]<>0) and (f[1,2]<>0) and (f[2,0]<>0) and (f[2,1]<>0)
 and (f[2,2]<>0) then
 begin
  sound(snd*1000);
  f[0,0]:=0;
  f[0,1]:=0;
  f[0,2]:=0;
  f[1,0]:=0;
  f[1,1]:=0;
  f[1,2]:=0;
  f[2,0]:=0;
  f[2,1]:=0;
  f[2,2]:=0;
  delay(snd*2000);
  nosound;
  gotoxy(8,8);
  textcolor(14);
  write('ЌЁзмп.       ');
  game:=game+1;
  if move then move:=false else move:=true;
  readkey;
  gotoxy(8,8);
  write('             ');
  if move then goto plr_play else goto com_play;
 end;
 com:=readkey;
 case com of
  '1' : goto newgame;
  '2' : exit;
  ' ' : if f[xcur,ycur]=0 then begin f[xcur,ycur]:=1; goto com_play; end
  	else begin sound(snd*100); delay(snd*300); nosound; end;
  #27 : exit;
  #0 :
  begin
   com:=readkey;
   case com of
    #72 : if ycur>0 then ycur:=ycur-1;
    #75 : if xcur>0 then xcur:=xcur-1;
    #77 : if xcur<2 then xcur:=xcur+1;
    #80 : if ycur<2 then ycur:=ycur+1;
   end;
  end;
 end;
 goto plr_play;
                        {Hod kompjutera}

com_play:
 if (game=100) or (game=200) or (game=300) then goto endgame;
 sv:=0;
 repeat
  sv2:=f[trunc(sv/3),sv mod 3];
  if sv2<>0 then
  begin
   gotoxy(trunc(sv/3)*4+37,(sv mod 3)*2+11);
   if sv2=1 then begin textcolor(p1); write(p2); end else begin textcolor(c1); write(c2); end;
  end;
  sv:=sv+1;
 until sv=9;
 sv:=0;
 repeat
  wv:=f[sv,0]+f[sv,1]+f[sv,2];
  if (wv=3) or (wv=-3) then goto win;
  wv:=f[0,sv]+f[1,sv]+f[2,sv];
  if (wv=3) or (wv=-3) then goto win;
  sv:=sv+1;
 until sv=3;
 wv:=f[0,0]+f[1,1]+f[2,2];
 if (wv=3) or (wv=-3) then goto win;
 wv:=f[2,0]+f[1,1]+f[0,2];
 if (wv=3) or (wv=-3) then goto win;
 if (f[0,0]<>0) and (f[0,1]<>0) and (f[0,2]<>0) and (f[1,0]<>0) and (f[1,1]<>0) and (f[1,2]<>0) and (f[2,0]<>0) and (f[2,1]<>0)
 and (f[2,2]<>0) then goto plr_play;
 if int=2 then goto cp2;
 sv:=random(int+2);
 if (sv=2) and (int<>0) then goto cp2;
 if (f[1,1]=0) and (random(3)<>2) then begin f[1,1]:=-1; goto plr_play; end;
 sv:=0;
 repeat
  if (f[sv,0]+f[sv,1]+f[sv,2]=2) or (f[sv,0]+f[sv,1]+f[sv,2]=-2) then
  begin
   sv2:=0;
   repeat
    if f[sv,sv2]=0 then f[sv,sv2]:=-1;
    sv2:=sv2+1;
   until sv2=3;
   goto plr_play;
  end;
  if (f[0,sv]+f[1,sv]+f[2,sv]=2) or (f[0,sv]+f[1,sv]+f[2,sv]=-2) then
  begin
   sv2:=0;
   repeat
    if f[sv2,sv]=0 then f[sv2,sv]:=-1;
    sv2:=sv2+1;
   until sv2=3;
   goto plr_play;
  end;
  sv:=sv+1;
 until sv=3;
 if (f[0,0]+f[1,1]+f[2,2]=2) or (f[0,0]+f[1,1]+f[2,2]=-2) then
 begin
  if f[0,0]=0 then f[0,0]:=-1;
  if f[1,1]=0 then f[1,1]:=-1;
  if f[2,2]=0 then f[2,2]:=-1;
  goto plr_play;
 end;
 if (f[2,0]+f[1,1]+f[0,2]=2) or (f[2,0]+f[1,1]+f[0,2]=-2) then
 begin
  if f[2,0]=0 then f[2,0]:=-1;
  if f[1,1]=0 then f[1,1]:=-1;
  if f[0,2]=0 then f[0,2]:=-1;
  goto plr_play;
 end;
cp2:
 repeat
  sv:=random(10);
  if f[trunc(sv/3),sv mod 3]=0 then begin f[trunc(sv/3),sv mod 3]:=-1; goto plr_play; end;
 until sv=11;
 goto plr_play;
(целый код тут)

Проблема: когда ходит комп. или человек то сразуже вылетает эррор:

или
aud вне форума Ответить с цитированием
Старый 15.06.2009, 20:52   #2
OCTAGRAM
Oldschool geek
Форумчанин
 
Аватар для OCTAGRAM
 
Регистрация: 09.03.2009
Сообщений: 611
По умолчанию

Замените byte на integer в блоке var

P. S. И не надо выкладывать файлы на рапиду. С рапиды иногда очень тяжело скачать. Лучше выкладывать на sources.codenet.ru
If you want to get to the top, you have to start at the bottom

http://pascal.net.ru/
OCTAGRAM вне форума Ответить с цитированием
Старый 15.06.2009, 22:32   #3
aud
Новичок
Джуниор
 
Регистрация: 15.06.2009
Сообщений: 3
По умолчанию

Цитата:
Сообщение от OCTAGRAM Посмотреть сообщение
Замените byte на integer в блоке var

P. S. И не надо выкладывать файлы на рапиду. С рапиды иногда очень тяжело скачать. Лучше выкладывать на sources.codenet.ru
ОГРОМНОЕ спасибо, одно время хотел сменить, но вылетело из головы
aud вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
крестики нолики aesoem Общие вопросы Delphi 11 12.06.2011 11:32
Крестики нолики на C++ Alar Gamedev - cоздание игр: Unity, OpenGL, DirectX 11 15.03.2010 16:09
Крестики-Нолики. oblachko Помощь студентам 5 23.01.2009 19:32
КРЕСТИКИ-НОЛИКИ oblachko Паскаль, Turbo Pascal, PascalABC.NET 1 17.01.2009 22:21
Крестики-нолики С++ ROD Помощь студентам 7 21.12.2008 20:07