|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
23.01.2009, 19:47 | #1 |
Регистрация: 23.01.2009
Сообщений: 5
|
КРЕСТИКИ-НОЛИКИ(((
У меня одна проблема!! ((В общем я написал саму игру но у меня тут одно задание!!!Мне нужно чтоб выигрышная строка(а вернее элементы выигрышной строки(крестики или нолики))съезжали вниз!Знаю что можно сделать это через процедуру DELAY()!!Но куда вбивать её ............... ))))Я новичок в программировании, поэтому очень надеюсь на вашу помощь!!!
Если не трудно, вбейте пожалуйста нужную процедуру в мою программу!!! Я буду очень признателен!! Вот сам код игры: Код:
Последний раз редактировалось magadan; 23.01.2009 в 19:58. |
23.01.2009, 19:59 | #2 |
Регистрация: 23.01.2009
Сообщений: 5
|
В общем должна получится анимация, при которой съезжают элементы выигр. строки.
Help Help Help |
23.01.2009, 21:24 | #3 |
Регистрация: 23.01.2009
Сообщений: 5
|
неужели никто не знает!!ХЭХ!! Просто не верится=(
|
24.01.2009, 01:26 | #4 |
Пользователь
Регистрация: 25.12.2008
Сообщений: 39
|
начало
Вот код:
program X_and_O; uses crt; var f : array[0..2,0..2] of integer; game,pcalc,ccalc : word; wv : integer; p1,c1,xcur,ycur,sv,sv2,sv3,int,m,sn d : byte; com,p2,c2 : char; move : boolean; label start,plr_play,com_play,cp2,newgame ,ng2,win,endgame; begin int:=1; snd:=1; p1:=10; p2:='X'; c1:=14; c2:='O'; randomize; textbackground(2); goto newgame; {Начало игры} start: clrscr; 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; textbackground(2); clrscr; textcolor(1); gotoxy(3,4); write('Игрок: 0 Компьютер('); case int of 0 : write('проф'); 1 : write('норма'); 2 : write('кретин'); end; write('): 0'); gotoxy(3,5); write('Игра: 1'); textbackground(7); textcolor(8); gotoxy(1,1); clreol; write(#24#25#26#27,' >> движение курсора пробел >> ход 1 >> новая игра 2 >> выход '); textbackground(2); if move then goto plr_play else goto com_play; {Ход игрока} 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('проф'); 1 : write('норма'); 2 : write('кретин'); 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,'(до конца турнира осталось ',wv,' игр)'); gotoxy(35,10); write('----T---T---¬'); gotoxy(35,11); write('¦ ¦ ¦ ¦'); gotoxy(35,12); write('+---+---+---+'); gotoxy(35,13); write('¦ ¦ ¦ ¦'); gotoxy(35,14); write('+---+---+---+'); gotoxy(35,15); write('¦ ¦ ¦ ¦'); gotoxy(35,16); write('L---+---+----'); 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; {Ход компютера} 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; |
24.01.2009, 01:27 | #5 |
Пользователь
Регистрация: 25.12.2008
Сообщений: 39
|
продолжение кода
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; {Настройки игры} newgame: clrscr; textcolor(1); write(' Настройки новой игры'); gotoxy(4,7); write('1 >> Интеллект компьютера: '); gotoxy(4,8); write('2 >> Вы будете играть '); gotoxy(4,11); write('5 >> Первый ход'); gotoxy(4,12); write('6 >> Звук'); gotoxy(4,16); textcolor(1); write('Пробел >> начать игру esc >> выход'); ng2: textcolor(14); gotoxy(31,7); case int of 0 : write('профессионал'); 1 : write('нормальный '); 2 : write('кретин '); end; gotoxy(26,8); if p2='X' then write('крестиком') else write('ноликом '); gotoxy(20,11); case m of 0 : write('случайно '); 1 : write('ваш '); 2 : write('компьютера'); end; gotoxy(14,12); if snd=1 then write('включен ') else write('выключен'); gotoxy(4,9); textcolor(p1); write('3 >> Цвет вашей фишки'); gotoxy(4,10); textcolor(c1); write('4 >> Цвет фишки компьютера'); com:=readkey; case com of '1' : if int>0 then dec(int) else int:=2; '2' : if p2='X' then begin p2:='O'; c2:='X'; end else begin p2:='X'; c2:='O'; end; '3' : begin if p1<15 then p1:=p1+1 else p1:=0; if p1=2 then p1:=3; end; '4' : begin if c1<15 then c1:=c1+1 else c1:=0; if c1=2 then c1:=3; end; '5' : if m<2 then m:=m+1 else m:=0; '6' : if snd=1 then snd:=0 else snd:=1; #27 : exit; ' ' : begin sv:=random(2); case m of 0 : if sv<1 then move:=true else move:=false; 1 : move:=true; 2 : move:=false; end; game:=1; pcalc:=0; ccalc:=0; goto start; end; end; goto ng2; {Победа} win: gotoxy(8,8); clreol; if wv=3 then begin pcalc:=pcalc+1; textcolor(4); write('Вы выиграли!'); end else begin textcolor(8); write('Вы проиграли.'); ccalc:=ccalc+1; end; game:=game+1; 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; sound(snd*500); delay(snd*2000); nosound; delay(snd*1000); sound(snd*500); delay(snd*2000); nosound; readkey; gotoxy(1,8); clreol; if move then move:=false else move:=true; if move then goto plr_play else goto com_play; {Окончание турнира} endgame: delay(6400); while keypressed do readkey; clrscr; textcolor(7); gotoxy(35,3); if game<300 then write('Турнир окончен.') else write('Игра окончена.'); textcolor(5); |
24.01.2009, 01:27 | #6 |
Пользователь
Регистрация: 25.12.2008
Сообщений: 39
|
конец
if pcalc>ccalc then begin gotoxy(15,6); write('Вы выиграли у компьютера со счётом ',pcalc,':',ccalc,' Поздравляю!'); end;
if pcalc=ccalc then begin gotoxy(36,6); write('Ничья. ',pcalc,':',ccalc); end; if pcalc<ccalc then begin gotoxy(15,6); write('Сожалею, вы проиграли компьютеру со счётом ',pcalc,':',ccalc); end; window(5,10,80,25); textcolor(14); write('Уровень интеллекта компьютера: '); case int of 0 : writeln('профессионал.'); 1 : writeln('нормальный игрок.'); 2 : writeln('кретин.'); end; writeln; writeln(' Оценка ваших способностей:'); writeln('выигрышей: ',round(pcalc/game*100),'%'); writeln('проигрышей: ',round(ccalc/game*100),'%'); writeln('игр на ничью: ',100-round(pcalc/game*100)-round(ccalc/game*100),'%'); writeln; writeln('Впечатления компьютера о вас и об игре с вами:'); textcolor(4); wv:=round(pcalc/game*100); case int of 1 : dec(wv,-5); 2 : dec(wv,-10); end; case wv of -10..-6 : write('"Ну и тормоз!"'); -5..0 : write('"Вообще не умеет играть."'); 1..10 : write('"Неужели кто-то играет ещё хуже?"'); 11..20 : write('"Тебе нужно хорошенько потренироваться!"'); 21..30 : write('"Фигово играешь."'); 31..40 : write('"Мягко говоря, не очень."'); 41..50 : write('"Неплохо, неплохо, но можно намного лучше."'); 51..60 : write('"Неплохой результат. Хотя, конечно, можно и получше...'); 61..70 : write('"Хорошо играешь!"'); 71..80 : write('"Клёво играешь! У тебя сколько мегабайтов памяти?"'); 81..90 : write('"Хороший результат! Эх, мне бы так..."'); 91..97 : write('"Отличная игра!!!"'); 98..100 : begin textcolor(6); write('"Ты что, суперкомпьютер?!"'); end; end; writeln; writeln; writeln; textcolor(1); if game<300 then write('Пробел >> продолжить игру esc >> выход') else write('Нажмите любую клавишу для выхода.'); window(1,1,80,25); if game<300 then repeat com:=readkey; case com of ' ' : begin inc(game); if move then move:=false else move:=true; goto start; end; #27 : exit; end; until com=#27 else begin readkey; exit; end; window(1,1,80,25); goto start; end. Не знаю поможет нет. |
24.01.2009, 09:23 | #7 |
Регистрация: 23.01.2009
Сообщений: 5
|
Иван 883!!!Большое тебе спасибо что попытался мне помочь, действительно очень рад что хоть кто-то откликнулся, но мне надо всё на основе моей программы!!!Что-то нужно переделывать в моей проге.................знать бы что(((
|
26.01.2009, 19:20 | #8 |
Регистрация: 23.01.2009
Сообщений: 5
|
ЛЮЮЮЮЮЮЮДИИИИИИИИ!!!!ПОМОГИТЕ ПОЖАЛУЙСТА!!!!ПЛИЗЗЗЗЗЗЗЗЗЗЗ=((((ОЧ ЕНЬ СРОЧНО НАДО!!!ЗАВТРА СДАВАТЬ!!!
|
02.05.2009, 22:16 | #9 |
Новичок
Джуниор
Регистрация: 20.04.2009
Сообщений: 2
|
Иван иван.... этот код можно найти на 2 странице в гугле. Зачем выкладывать чужую работу , да ещё и не по теме которую просят??
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Крестики-нолики | ROD | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 21 | 12.02.2011 00:15 |
Крестики нолики на 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 |