![]() |
![]() |
Костян |
![]() ![]()
Сообщение
#1
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 68 Пол: Мужской Репутация: ![]() ![]() ![]() |
Обращаюсь ко всем с просьбой-проверьте игруху(она не пашет). Смысл в том, что по экрану передвигается "ЧЕЛ", расположены 3 мины если чел на них наступает-он труп(закончить игру пока можно только так- вариат выиграша- если чел наступает на нечто вроде выхода пока не сделал). Вот код игры:
Код program igra; uses crt; const left=#75; right=#77; up=#72; down=#80; var x, y,x2, y2, x3, y3, x4, y4, b: integer; c: char; b1, b2, b3, b4, b5, b6, b7, b8, b9: integer; procedure boom; begin gotoxy(20,20); textcolor(red); writeln('*'); gotoxy(40,40); textcolor(red); writeln('*'); gotoxy(15,10); textcolor(red); writeln('*'); end; procedure min; begin if x4=20 then b1:=1; if y4=20 then b2:=1; if x4=40 then b4:=2; if y4=40 then b5:=2; if x4=15 then b7:=3; if y4=10 then b8:=3; b3:=b1+b2; b6:=b4+b5; b9:=b7+b8; if b3=2 then begin clrscr; gotoxy(35,3); writeln('You is DEAD!!!'); readkey; halt; end; if b6=4 then begin clrscr; gotoxy(35,3); writeln('You is DEAD!!!'); readkey; halt; end; if b7=6 then begin clrscr; gotoxy(35,3); writeln('You is DEAD!!!'); readkey; halt; end; begin begin clrscr; x:=5; y:=1; x2:=4; y2:=2; x3:=5; y3:=3; x4:=4; y4:=4; TEXTCOLOR(BLUE); gotoxy(x,y); write('O'); gotoxy(x2,y2); write('XXX'); gotoxy(x3,y3); write('X'); gotoxy(x4,y4); write('X X'); boom; min; repeat c:=readkey; case c of #0: case readkey of left: begin clrscr; x:=x-1; x2:=x2-1; x3:=x3-1; x4:=x4-1; gotoxy(x,y); write('O'); gotoxy(x2,y2); write('XXX'); gotoxy(x3,y3); write('X'); gotoxy(x4,y4); write('X X'); boom; min; b:=b+1; end; right: begin clrscr; x:=x+1; x2:=x2+1; x3:=x3+1; x4:=x4+1; gotoxy(x,y); write('O'); gotoxy(x2,y2); write('XXX'); gotoxy(x3,y3); write('X'); gotoxy(x4,y4); write('X X'); boom; min; b:=b+1; end; up: begin clrscr; y:=y-1; y2:=y2-1; y3:=y3-1; y4:=y4-1; gotoxy(x,y); write('O'); gotoxy(x2,y2); write('XXX'); gotoxy(x3,y3); write('X'); gotoxy(x4,y4); write('X X'); boom; min; b:=b+1; end; down: begin clrscr; y:=y+1; y2:=y2+1; y3:=y3+1; y4:=y4+1; gotoxy(x,y); write('O'); gotoxy(x2,y2); write('XXX'); gotoxy(x3,y3); write('X'); gotoxy(x4,y4); write('X X'); boom; min; b:=b+1; end; end; end; until b=100; readkey; end. Также есть несколько вопросов: 1. Можно ли упростить данный вариант кода, если ДА - то как? 2. Я задаю цвет "ЧЕЛА" синий, а мин красный- в начале все идет как надо, но затем все становится красным-почему и как это исправить? Умоляю если кто нибудь знает ответ хоть на один из этих вопросов умоляю не держите в себе ![]() ![]() -------------------- ...И заключили ТЕМНЫЕ И СВЕТЛЫЕ програмисты договор... ...и было в том договоре сказано.... ...что будет создан ночной дозор для контроля темных программистов... ...и будет создан дневной дозор для надзора за светлыми программистами... ..................ТАК НАЧИНАЛАСЬ ЖИЗНЬ ТУРБО ПАСКАЛЯ............. |
![]() ![]() |
Костян |
![]() ![]()
Сообщение
#2
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 68 Пол: Мужской Репутация: ![]() ![]() ![]() |
K Y S K A вот этот кусок кода. Добавил выход подсчет очков. Правда появилась проблема добавил бонусы при касании которых добавляются очки,но не знаю, как сделать чтобы бонус после использования исчезал. Подскажи если знаешь как!!!
Код program igra; uses crt; const left = #75; right = #77; up = #72; down = #80; var x, y, b, score: integer; c: char; procedure sscore; begin if ((x = 80) and (y+3 = 13)) or ((x = 32) and (y+3 = 15)) or ((x = 12) and (y+3 = 19)) or ((x = 30) and (y+3 = 4)) or ((x =10) and (y+3 = 2)) then score:=score+1; gotoxy(72,1); textcolor(lightgreen); writeln('score=',score); gotoxy(80,13); writeln('*'); gotoxy(32,15); writeln('*'); gotoxy(12,19); writeln('*'); gotoxy(30,4); writeln('*'); gotoxy(10,2); writeln('*'); end; procedure show_man; begin textcolor(lightblue); gotoxy(x, y+0); write(' O'); gotoxy(x, y+1); write('XXX'); gotoxy(x, y+2); write(' X'); gotoxy(x, y+3); write('X X'); end; procedure boom; begin gotoxy(20, 20); textcolor(red); writeln('*'); gotoxy(50, 10); textcolor(red); writeln('*'); gotoxy( 5, 12); textcolor(red); writeln('*'); gotoxy(5, 5); textcolor(red); writeln('*'); gotoxy(35, 5); textcolor(red); writeln('*'); gotoxy(47,20); textcolor(red); writeln('*'); end; procedure indikator; begin gotoxy(40,7);textcolor(yellow); writeln('|_|'); end; procedure indi; begin if ((x = 40) and (y+3 = 7)) then begin clrscr; gotoxy(35,3); writeln('You WIN!!!'); gotoxy(33,10); writeln('YOU SCORE:',score); readkey; halt; end; end; procedure min; begin if ((x = 20) and (y+3 = 20)) or ((x = 50) and (y+3 = 10)) or ((x = 5) and (y+3 = 12)) or ((x = 5) and (y+3 = 5)) or ((x =35) and (y+3 = 5)) or ((x =47) and (y+3 = 20)) then begin clrscr; gotoxy(x-1,y+1); write('o'); delay(15000); delay(15000); gotoxy(x-1,y+1); write('ooo'); delay(15000); delay(15000); gotoxy(x-2,y+2); write('o o o'); delay(15000); delay(15000); gotoxy(x-3,y+3); write('o o o'); delay(15000); delay(15000); clrscr; textcolor(lightred); gotoxy(35,3); writeln('You are DEAD!!!'); gotoxy(37,10); writeln('YOU SCORE:',score); textcolor(lightgray); readkey; halt; end; end; begin clrscr; b := 0; x :=5; y :=20; show_man; boom; min; indikator; indi; sscore; repeat c:=readkey; case c of #0: case readkey of left : dec(x); right: inc(x); up : dec(y); down : inc(y); end; end; clrscr; show_man; boom; min; indikator; indi; sscore; b:=b+1; until b=100; readkey; end. ![]() -------------------- ...И заключили ТЕМНЫЕ И СВЕТЛЫЕ програмисты договор... ...и было в том договоре сказано.... ...что будет создан ночной дозор для контроля темных программистов... ...и будет создан дневной дозор для надзора за светлыми программистами... ..................ТАК НАЧИНАЛАСЬ ЖИЗНЬ ТУРБО ПАСКАЛЯ............. |
![]() ![]() |
![]() |
Текстовая версия | 15.07.2025 10:24 |