Незаконченный проект моей студенческой юности, в данном случае глупости.
Жалко просто закинуть результат недосыпаний и мучений, поэтому решил выложить на портале. Поделиться мыслями так сказать, показать что и такое в жизни бывает, и в надежде, что кто-нибудь заинтересуется и захочет продолжить... А может это просто вдохновит кого нибудь на новые подвиги в программировании... В любом случае, вот Вам одна история.
Когда то, давным давно, на первом курсе, когда я только познакомился с понятием "программирование", с минимальными знаниями на базе школьной программе об основах программирования, я загорелся идеей написать собственную игру... Тогда я еще не понимал что значит написать игру (да и вообще серьёзную программу), и совершенно не понимал какой это геморрой... Но тем не менее, не имея опыта, и привычки (на тот момент
) ковыряться в поиска ответов в интернете, я , вооружившись знаниями о кнопках F1 и Ctrl+F1, забурился в IDE-шке Turbo Pascal 7.0. Точнее будет сказать Borland Pascal 7.0 (с 7-й версии вместе с tp.exe поставлялся и bp.exe, об этом поговорим в другой раз), не в этом суть...
Вот такая коротенькая предистория как появилась за свет первая моя, недоведёная к сожалению до полнорабочего состояния, игрушка, которую я нарёк "The STUDENT"....
Игрушкой это по факту назвать толком нельзя! А вот примером рвения к поглощению знаний о программировании вполне можно...
Начну с показа...
Суть, точнее предполагаемая суть - это перемещение персонажем по виртуальному учебному учреждению, получение заданий, развлечения... Во всякому случае такова была идея, ну а на деле получилось это




Судить конечно Вам, но помоему для новичка, да на BP, да без знаний ООП, очень даже ничего так
Начну с конца. Почему так получилось, что я её не закончил - не могу никак вспомнить... Чисто предположение: это было на кануне каникул, а в сентябре я попросту забыл про неё... Но может и не поэтому... В общем не помню...
А вот зачем я это сделал (точнее начал, и не доделал) я помню хорошё... Началось всё с идеи, и с примеров на лабах с простенькими программулями типа подсчёта уравнений и т.п. всячина. Дома, сутками на пролёт я ковырял этот бедный компилятор в поисках чего нить интересного (так я нашёл мануал, ибо преподаватели почему то не соизволили расказать о его существовании), и наткнулся на библиотеку graph. Это была последняя капля, которая переполнила чашу, и меня понесло. Я эксперементировал со всеми функциями, которые только находил в мануале, подставлял все допустимые и недопустимые варианты, и так ломая себе мозг и компилятор находил прикольные и интересные решения задач, которых по факту даже не ставил перед собой.
Я, как и любой начинающий программист (наверно любой, в этом я пока не совсем уверен), хотел всё и сразу - знать все языки, штамповать проги налево и направо и получать кайф от шкрябанья кодов... Но я наткнулся на жестокую правду жизни - всё оказалось совсем даже не просто... Точно уже не помню сколько времени я потратил на создание этого кода. Но одно я помню точно, весь вторник какой то недели, в течении трёх пар я рисовал на листике в клетку персонажа и переносил его координаты в код (функция чувак, дальше в коде расскажу подробней), на что очень весело реагировали мои однокурсники.
Вот пожалуй и всё, что я смог вспомнить спустя столько лет...
Вот недавно наткнулся на старый архив с проектами, и там был архив "My_game_BP"... Захотелось продолжить, а оказалось что не всё так просто, сейчас у меня выработался стиль программирования и определённые привычки, и разобраться в этом старом коде оказалось не так просто, убил много времени и сделал вывод что проще начать заново!
Но может кому нибудь пригодиться или кто нибудь заинтересуется, и я передам эстафету...
Весь код кидать не буду - читать неудобно, буду покусочкам
Начнёмс с начала, там всё понятно, почти! От куда я брал названия переменных ума не приложу...
Program My;Uses crt,graph;
Var d,m,k,x,y,ycur,n,chuvak:integer;
q:char;
firstname,passvord:string;
А дальше тело главной функции программы... всё просто...
Begin
randomize;d:=9;m:=2;initgraph(d,m,'');
cleardevice;randomize;ycur:=40;firstname:='Player';
{zagruzka};menu;
repeat
Najatie;until m=123;if d=123 then EXIT;m:=0;d:=0;
repeat
knopki1;tehnar;
repeat
Najatie1;until m=123;if d=123 then exit;
until m=13;
exit;closegraph;End.
Пойдём по порядку...
Procedure Zagruzka;BEGIN
d:=0;m:=20;randomize;
repeat
d:=d+1;settextstyle(0,0,d);
k:=random(14)+1;setcolor(k);outtextxy(0,m,'Starting');delay(100);
k:=random(14)+1;setcolor(k);outtextxy(0,m,'Starting');delay(100);
k:=random(14)+1;setcolor(k);outtextxy(0,m,'Starting');
if d=10 then begin d:=0;m:=m+50;end;
until m>450;
cleardevice;settextstyle(0,0,2);setcolor(4);outtextxy(240,200,'loading...');setcolor(10);setfillstyle(1,10);
for k:=0 to 360 do begin pieslice(250,350,k,0,20);delay(1000);pieslice(320,350,k,0,20);delay(1000);
pieslice(390,350,k,0,20);delay(1000);end;setcolor(0);
for k:=0 to 40 do begin d:=330+k;line(230,d,410,d);delay(10000);end;setcolor(0);
for k:=0 to 160 do begin d:=240+k;line(d,170,d,220);delay(1000);end;cleardevice;setcolor(15);outtextxy(240,200,'W');
delay(10000);delay(10000);outtextxy(260,200,'e');delay(10000);delay(10000);outtextxy(280,200,'l');delay(10000);
delay(10000);outtextxy(300,200,'c');delay(10000);delay(10000);outtextxy(320,200,'o');delay(10000);delay(10000);
outtextxy(340,200,'m');delay(10000);delay(10000);outtextxy(360,200,'e');delay(10000);delay(10000);delay(10000);
delay(10000);delay(10000);delay(10000);
END;
Далее... Пока всё понятно. Надеюсь Вам тоже )))
Procedure Cursor;begin
setcolor(15);
line(35,40,35,60);line(35,40,115,40);
line(35,85,35,105);line(35,85,115,85);
line(35,130,35,150);line(35,130,115,130);
line(35,175,35,195);line(35,175,115,175);
line(35,220,35,240);line(35,220,115,220);
{----------------------------------------}
line(36,41,36,59);line(36,41,114,41);
line(36,86,36,104);line(36,86,114,86);
line(36,131,36,149);line(36,131,114,131);
line(36,176,36,194);line(36,176,114,176);
line(36,221,36,239);line(36,221,114,221);
setcolor(8);
line(115,40,115,60);line(35,60,115,60);
line(115,85,115,105);line(35,105,115,105);
line(115,130,115,150);line(35,150,115,150);
line(115,175,115,195);line(35,195,115,195);
line(115,220,115,240);line(35,240,115,240);
{----------------------------------------}
line(114,41,114,59);line(36,59,114,59);
line(114,86,114,104);line(36,104,114,104);
line(114,131,114,149);line(36,149,114,149);
line(114,176,114,194);line(36,194,114,194);
line(114,221,114,239);line(36,239,114,239);
setcolor(12);rectangle(35,ycur,115,ycur+20);
end;
А вот это уже интересно... Функция обработки нажатия клавиш... По сути прорисовка меню...
Procedure Najatie;begin
q:=readkey;
if ord(q)=50 then ycur:=ycur+45;
if ord(q)=56 then ycur:=ycur-45;
if ord(q)=13 then
begin
if ycur=40 then
begin {game}
setcolor(8);
line(35,40,35,60);line(35,40,115,40);line(36,41,36,59);line(36,41,114,41);
setcolor(15);
line(115,40,115,60);line(35,60,115,60);line(114,41,114,59);line(36,59,114,59);
delay(10000);delay(10000);
line(35,40,35,60);line(35,40,115,40);line(36,41,36,59);line(36,41,114,41);
setcolor(8);
line(115,40,115,60);line(35,60,115,60);line(114,41,114,59);line(36,59,114,59);
delay(10000);delay(10000);
setfillstyle(8,9);setcolor(14);settextstyle(0,0,2);
if firstname='Player' then begin;bar(140,30,610,450);outtextxy(250,240,'Enter the NAME !!!');q:=readkey;
end;bar(140,30,610,450);settextstyle(0,0,0);
setcolor(15);outtextxy(300,240,'Use 2,8 and ENTER');
if firstname<>'Player'then m:=123;
end;if ycur=85 then
begin {name}
setcolor(8);
line(35,85,35,105);line(35,85,115,85);line(36,86,36,104);line(36,86,114,86);
setcolor(15);
line(115,85,115,105);line(35,105,115,105);line(114,86,114,104);line(36,104,114,104);
delay(10000);delay(10000);
line(35,85,35,105);line(35,85,115,85);line(36,86,36,104);line(36,86,114,86);
setcolor(8);
line(115,85,115,105);line(35,105,115,105);line(114,86,114,104);line(36,104,114,104);
delay(10000);delay(10000);
closegraph;clrscr;textcolor(14);writeln;writeln;writeln;writeln;writeln;writeln;writeln;
writeln(' Enter your name :');
textcolor(10);write(' ');readln(firstname);
d:=9;m:=2;initgraph(d,m,'');
setfillstyle(8,3);bar(0,0,640,480);setcolor(10);rectangle(9,9,631,471);rectangle(10,10,630,470);
setfillstyle(8,3);bar(0,0,640,480);setcolor(10);rectangle(9,9,631,471);
rectangle(10,10,630,470);rectangle(15,15,625,465);rectangle(14,14,626,466);setfillstyle(8,1);
bar(30,30,120,450);setfillstyle(8,9);bar(140,30,610,450);setcolor(15);
outtextxy(300,240,'Use 2,8 and ENTER');
setfillstyle(9,1);
bar(35,40,115,60);setcolor(14);outtextxy(60,47,'GAME');
bar(35,85,115,105);setcolor(14);outtextxy(60,92,'Name');
bar(35,130,115,150);setcolor(14);outtextxy(45,137,'Password');
bar(35,175,115,195);setcolor(14);outtextxy(55,182,'Avtor');
bar(35,220,115,240);setcolor(12);outtextxy(60,227,'EXIT');
setcolor(15);
line(35,40,35,60);line(35,40,115,40);
line(35,85,35,105);line(35,85,115,85);
line(35,130,35,150);line(35,130,115,130);
line(35,175,35,195);line(35,175,115,175);
line(35,220,35,240);line(35,220,115,220);
{----------------------------------------}
line(36,41,36,59);line(36,41,114,41);
line(36,86,36,104);line(36,86,114,86);
line(36,131,36,149);line(36,131,114,131);
line(36,176,36,194);line(36,176,114,176);
line(36,221,36,239);line(36,221,114,221);
setcolor(8);
line(115,40,115,60);line(35,60,115,60);
line(115,85,115,105);line(35,105,115,105);
line(115,130,115,150);line(35,150,115,150);
line(115,175,115,195);line(35,195,115,195);
line(115,220,115,240);line(35,240,115,240);
{----------------------------------------}
line(114,41,114,59);line(36,59,114,59);
line(114,86,114,104);line(36,104,114,104);
line(114,131,114,149);line(36,149,114,149);
line(114,176,114,194);line(36,194,114,194);
line(114,221,114,239);line(36,239,114,239);
end;if ycur=130 then
begin {passvord}
setcolor(8);
line(35,130,35,150);line(35,130,115,130);line(36,131,36,149);line(36,131,114,131);
setcolor(15);
line(115,130,115,150);line(35,150,115,150);line(114,131,114,149);line(36,149,114,149);
delay(10000);delay(10000);
line(35,130,35,150);line(35,130,115,130);line(36,131,36,149);line(36,131,114,131);
setcolor(8);
line(115,130,115,150);line(35,150,115,150);line(114,131,114,149);line(36,149,114,149);
delay(10000);delay(10000);
closegraph;delay(10000);delay(10000);delay(10000);delay(10000);delay(10000);delay(10000);textcolor(10);
for k:=1 to 1000 do begin n:=(random(9));write(n,' ');delay(1000);end;delay(10000);delay(10000);
textcolor(14);clrscr;writeln;writeln;writeln;writeln;writeln;writeln;writeln;
writeln(' Enter the PASSVORD');
write(' ');textcolor(15);readln(passvord);
{proverka} if (passvord='') or (passvord='') or (passvord='') or (passvord='') then begin k:=10; end
else k:=4;textcolor(k);clrscr;
for k:=1 to 1000 do begin n:=(random(9));write(n,' ');delay(1000);end;
d:=9;m:=2;initgraph(d,m,'');
setfillstyle(8,3);bar(0,0,640,480);setcolor(10);rectangle(9,9,631,471);rectangle(10,10,630,470);
setfillstyle(8,3);bar(0,0,640,480);setcolor(10);rectangle(9,9,631,471);
rectangle(10,10,630,470);rectangle(15,15,625,465);rectangle(14,14,626,466);setfillstyle(8,1);
bar(30,30,120,450);setfillstyle(8,9);bar(140,30,610,450);setcolor(15);
outtextxy(300,240,'Use 2,8 and ENTER');
setfillstyle(9,1);
bar(35,40,115,60);setcolor(14);outtextxy(60,47,'GAME');
bar(35,85,115,105);setcolor(14);outtextxy(60,92,'Name');
bar(35,130,115,150);setcolor(14);outtextxy(45,137,'Password');
bar(35,175,115,195);setcolor(14);outtextxy(55,182,'Avtor');
bar(35,220,115,240);setcolor(12);outtextxy(60,227,'EXIT');
setcolor(15);
line(35,40,35,60);line(35,40,115,40);
line(35,85,35,105);line(35,85,115,85);
line(35,130,35,150);line(35,130,115,130);
line(35,175,35,195);line(35,175,115,175);
line(35,220,35,240);line(35,220,115,220);
{----------------------------------------}
line(36,41,36,59);line(36,41,114,41);
line(36,86,36,104);line(36,86,114,86);
line(36,131,36,149);line(36,131,114,131);
line(36,176,36,194);line(36,176,114,176);
line(36,221,36,239);line(36,221,114,221);
setcolor(8);
line(115,40,115,60);line(35,60,115,60);
line(115,85,115,105);line(35,105,115,105);
line(115,130,115,150);line(35,150,115,150);
line(115,175,115,195);line(35,195,115,195);
line(115,220,115,240);line(35,240,115,240);
{----------------------------------------}
line(114,41,114,59);line(36,59,114,59);
line(114,86,114,104);line(36,104,114,104);
line(114,131,114,149);line(36,149,114,149);
line(114,176,114,194);line(36,194,114,194);
line(114,221,114,239);line(36,239,114,239);
end;if ycur=175 then
begin {avtor}
setcolor(8);
line(35,175,35,195);line(35,175,115,175);line(36,176,36,194);line(36,176,114,176);
setcolor(15);
line(115,175,115,195);line(35,195,115,195);line(114,176,114,194);line(36,194,114,194);
delay(10000);delay(10000);
line(35,175,35,195);line(35,175,115,175);line(36,176,36,194);line(36,176,114,176);
setcolor(8);
line(115,175,115,195);line(35,195,115,195);line(114,176,114,194);line(36,194,114,194);
delay(10000);delay(10000);
end;if ycur=220 then
begin {exit}
setcolor(8);
line(35,220,35,240);line(35,220,115,220);line(36,221,36,239);line(36,221,114,221);
setcolor(15);
line(115,220,115,240);line(35,240,115,240);line(114,221,114,239);line(36,239,114,239);
delay(10000);delay(10000);
line(35,220,35,240);line(35,220,115,220);line(36,221,36,239);line(36,221,114,221);
setcolor(8);
line(115,220,115,240);line(35,240,115,240);line(114,221,114,239);line(36,239,114,239);
delay(10000);delay(10000);
m:=123;d:=123;setcolor(0);for k:=0 to 480 do begin line(0,k,640,k);delay(1000);end;
end; end;if ycur>221 then ycur:=40;
if ycur<39 then ycur:=220;
cursor; end;
Рисуем кнопки
Procedure Knopki;begin
setfillstyle(9,1);
bar(35,40,115,60);setcolor(14);outtextxy(60,47,'GAME');
bar(35,85,115,105);setcolor(14);outtextxy(60,92,'Name');
bar(35,130,115,150);setcolor(14);outtextxy(45,137,'Password');
bar(35,175,115,195);setcolor(14);outtextxy(55,182,'Avtor');
bar(35,220,115,240);setcolor(12);outtextxy(60,227,'EXIT');
setcolor(15);
line(35,40,35,60);line(35,40,115,40);
line(35,85,35,105);line(35,85,115,85);
line(35,130,35,150);line(35,130,115,130);
line(35,175,35,195);line(35,175,115,175);
line(35,220,35,240);line(35,220,115,220);
{----------------------------------------}
line(36,41,36,59);line(36,41,114,41);
line(36,86,36,104);line(36,86,114,86);
line(36,131,36,149);line(36,131,114,131);
line(36,176,36,194);line(36,176,114,176);
line(36,221,36,239);line(36,221,114,221);
setcolor(8);
line(115,40,115,60);line(35,60,115,60);
line(115,85,115,105);line(35,105,115,105);
line(115,130,115,150);line(35,150,115,150);
line(115,175,115,195);line(35,195,115,195);
line(115,220,115,240);line(35,240,115,240);
{----------------------------------------}
line(114,41,114,59);line(36,59,114,59);
line(114,86,114,104);line(36,104,114,104);
line(114,131,114,149);line(36,149,114,149);
line(114,176,114,194);line(36,194,114,194);
line(114,221,114,239);line(36,239,114,239);
cursor; end;
Построение меню
Procedure Menu;begin
clrscr;cleardevice;setfillstyle(8,3);bar(0,0,640,480);setcolor(10);rectangle(9,9,631,471);rectangle(10,10,630,470);
rectangle(15,15,625,465);rectangle(14,14,626,466);settextstyle(0,0,4);setcolor(14);outtextxy(160,200,'The STUDENT');
settextstyle(0,0,0);setcolor(15);outtextxy(269,400,'Press any key');q:=readkey;setfillstyle(8,3);bar(0,0,640,480);
setcolor(10);rectangle(9,9,631,471);rectangle(10,10,630,470);rectangle(15,15,625,465);rectangle(14,14,626,466);
setfillstyle(8,1);bar(30,30,120,450);{menu}
setfillstyle(8,9);bar(140,30,610,450);{rabochee pole}
setcolor(15);outtextxy(300,240,'Use 2,8 and ENTER');
knopki; end;
Переходим к интерфейсу игры...
Procedure Tehnar;begin
setfillstyle(0,0);
bar(140,30,610,450);
setcolor(14);rectangle(142,32,608,448);rectangle(140,30,610,450);setcolor(8);rectangle(144,34,606,436);{s 436 decor}
setfillstyle(1,7);bar(145,35,605,435);setfillstyle(1,15);
setcolor(8);
line(145,75,605,75);
line(145,135,605,135);
line(145,175,605,175);
line(145,235,605,235);
line(145,275,605,275);
line(145,335,605,335);
line(145,375,605,375);
floodfill(150,40,8);
floodfill(150,140,8);
floodfill(150,340,8);
floodfill(150,240,8);
line(145,55,605,55);
line(145,155,605,155);
line(145,255,605,255);
line(145,355,605,355);
setfillstyle(1,14);
floodfill(150,70,8);
floodfill(150,170,8);
floodfill(150,370,8);
floodfill(150,270,8);
{dveri}
{3 etaj} setfillstyle(1,6);setcolor(8);
bar(225,45,240,75);rectangle(225,45,240,75);
bar(265,45,280,75);rectangle(265,45,280,75);
bar(305,45,320,75);rectangle(305,45,320,75);
bar(345,45,360,75);rectangle(345,45,360,75);
bar(385,45,400,75);rectangle(385,45,400,75);
bar(425,45,440,75);rectangle(425,45,440,75);
bar(465,45,480,75);rectangle(465,45,480,75);
bar(505,45,520,75);rectangle(505,45,520,75);
bar(545,45,560,75);rectangle(545,45,560,75);
bar(585,45,600,75);rectangle(585,45,600,75);
setfillstyle(1,15);
bar(144,34,185,75);rectangle(144,34,185,75); line(145,55,165,75);line(165,35,185,55);
setfillstyle(1,14);floodfill(150,70,8);
{2 etaj} setfillstyle(1,6);setcolor(8);
bar(265,145,280,175);rectangle(265,145,280,175);
bar(305,145,320,175);rectangle(305,145,320,175);
bar(345,145,360,175);rectangle(345,145,360,175);
bar(385,145,400,175);rectangle(385,145,400,175);
bar(425,145,440,175);rectangle(425,145,440,175);
bar(465,145,480,175);rectangle(465,145,480,175);
bar(505,145,520,175);rectangle(505,145,520,175);
bar(545,145,560,175);rectangle(545,145,560,175);
bar(585,145,600,175);rectangle(585,145,600,175);
setfillstyle(1,15);
bar(144,135,185,175);rectangle(144,135,185,175); line(145,155,165,175);line(165,135,185,155);
setfillstyle(1,14);floodfill(150,170,8);
setfillstyle(1,15);
bar(205,135,245,175);rectangle(205,135,245,175); line(225,135,205,155);line(205,175,245,135);
setfillstyle(1,14);floodfill(210,155,8);
setfillstyle(1,7); floodfill(240,170,8);
line(210,170,245,170);line(215,165,245,165);line(220,160,245,160);line(225,155,245,155);line(230,150,245,150);
line(235,145,245,145);line(240,140,245,140);
{1 etaj} setfillstyle(1,6);setcolor(8);
bar(265,245,280,275);rectangle(265,245,280,275);
bar(305,245,320,275);rectangle(305,245,320,275);
bar(405,245,425,275);rectangle(405,245,425,275);bar(425,245,445,275);rectangle(425,245,445,275); {vuhod}
bar(465,245,480,275);rectangle(465,245,480,275);
bar(505,245,520,275);rectangle(505,245,520,275);
bar(545,245,560,275);rectangle(545,245,560,275);
bar(585,245,600,275);rectangle(585,245,600,275);
setfillstyle(1,15);
bar(144,235,185,275);rectangle(144,235,185,275); line(145,255,165,275);line(165,235,185,255);
setfillstyle(1,14);floodfill(150,270,8);
setfillstyle(1,15);
bar(205,235,245,275);rectangle(205,235,245,275); line(225,235,205,255);line(205,275,245,235);
setfillstyle(1,14);floodfill(210,255,8);
setfillstyle(1,7); floodfill(240,270,8);
line(210,270,245,270);line(215,265,245,265);line(220,260,245,260);line(225,255,245,255);line(230,250,245,250);
line(235,245,245,245);line(240,240,245,240);
{doska obyavleniy} setfillstyle(1,6);bar(345,240,385,265);setfillstyle(1,15);bar(350,250,380,260);
setcolor(12);line(355,245,375,245);
{0 etaj} setfillstyle(1,6);setcolor(8);
bar(265,345,280,375);rectangle(265,345,280,375);
bar(305,345,320,375);rectangle(305,345,320,375);
bar(405,345,420,375);rectangle(405,345,420,375);
bar(545,345,560,375);rectangle(545,345,560,375);
bar(585,345,600,375);rectangle(585,345,600,375);
setfillstyle(1,15);
bar(144,335,185,375);rectangle(144,335,185,375); line(145,355,165,375);line(165,335,185,355);
setfillstyle(1,14);floodfill(150,370,8);
setfillstyle(1,15);
bar(205,335,245,375);rectangle(205,335,245,375); line(225,335,205,355);line(205,375,245,335);
setfillstyle(1,14);floodfill(210,355,8);
setfillstyle(1,7); floodfill(240,370,8);
line(210,370,245,370);line(215,365,245,365);line(220,360,245,360);line(225,355,245,355);line(230,350,245,350);
line(235,345,245,345);line(240,340,245,340);
{bufet} setfillstyle(1,6);bar(345,345,385,375);rectangle(345,345,385,375);line(345,360,385,360);
line(365,345,365,360);setfillstyle(1,2);floodfill(350,370,8);
{razdevalka} setfillstyle(1,0);bar(445,345,525,360);rectangle(445,345,525,360);line(485,345,485,360);
end;
Какие то кнопки ))
Procedure Knopki1;begin
setfillstyle(9,1);
bar(35,40,115,60);setcolor(14);outtextxy(47,47,'New game');
bar(35,85,115,105);setcolor(14);outtextxy(70,92,'');
bar(35,130,115,150);setcolor(14);outtextxy(45,137,'Password');
bar(35,175,115,195);setcolor(14);outtextxy(60,182,'Help');
bar(35,220,115,240);setcolor(12);outtextxy(60,227,'EXIT');
setcolor(15);
line(35,40,35,60);line(35,40,115,40);
line(35,85,35,105);line(35,85,115,85);
line(35,130,35,150);line(35,130,115,130);
line(35,175,35,195);line(35,175,115,175);
line(35,220,35,240);line(35,220,115,220);
{----------------------------------------}
line(36,41,36,59);line(36,41,114,41);
line(36,86,36,104);line(36,86,114,86);
line(36,131,36,149);line(36,131,114,131);
line(36,176,36,194);line(36,176,114,176);
line(36,221,36,239);line(36,221,114,221);
setcolor(8);
line(115,40,115,60);line(35,60,115,60);
line(115,85,115,105);line(35,105,115,105);
line(115,130,115,150);line(35,150,115,150);
line(115,175,115,195);line(35,195,115,195);
line(115,220,115,240);line(35,240,115,240);
{----------------------------------------}
line(114,41,114,59);line(36,59,114,59);
line(114,86,114,104);line(36,104,114,104);
line(114,131,114,149);line(36,149,114,149);
line(114,176,114,194);line(36,194,114,194);
line(114,221,114,239);line(36,239,114,239);
cursor; end;
Нажатие чего то там...
Procedure Najatie1;begin
q:=readkey;
if ord(q)=50 then ycur:=ycur+45;
if ord(q)=56 then ycur:=ycur-45;
if ord(q)=54 then
begin
end;if ord(q)=52 then
begin
end;if ord(q)=53 then
begin
{proverka mesta}
end;if ord(q)=13 then
begin
if ycur=40 then
begin {new game}
setcolor(8);
line(35,40,35,60);line(35,40,115,40);line(36,41,36,59);line(36,41,114,41);
setcolor(15);
line(115,40,115,60);line(35,60,115,60);line(114,41,114,59);line(36,59,114,59);
delay(10000);delay(10000);
line(35,40,35,60);line(35,40,115,40);line(36,41,36,59);line(36,41,114,41);
setcolor(8);
line(115,40,115,60);line(35,60,115,60);line(114,41,114,59);line(36,59,114,59);
delay(10000);delay(10000);
setfillstyle(8,9);setcolor(14);settextstyle(0,0,2);
if firstname='Player' then begin;bar(140,30,610,450);outtextxy(250,240,'Enter the NAME !!!');q:=readkey;
end;bar(140,30,610,450);settextstyle(0,0,0);
setcolor(15);outtextxy(300,240,'Use 2,8 and ENTER');
if firstname<>'Player'then m:=123;
end;if ycur=85 then
begin {}
setcolor(8);
line(35,85,35,105);line(35,85,115,85);line(36,86,36,104);line(36,86,114,86);
setcolor(15);
line(115,85,115,105);line(35,105,115,105);line(114,86,114,104);line(36,104,114,104);
delay(10000);delay(10000);
line(35,85,35,105);line(35,85,115,85);line(36,86,36,104);line(36,86,114,86);
setcolor(8);
line(115,85,115,105);line(35,105,115,105);line(114,86,114,104);line(36,104,114,104);
delay(10000);delay(10000);
end;if ycur=130 then
begin {passvord}
setcolor(8);
line(35,130,35,150);line(35,130,115,130);line(36,131,36,149);line(36,131,114,131);
setcolor(15);
line(115,130,115,150);line(35,150,115,150);line(114,131,114,149);line(36,149,114,149);
delay(10000);delay(10000);
line(35,130,35,150);line(35,130,115,130);line(36,131,36,149);line(36,131,114,131);
setcolor(8);
line(115,130,115,150);line(35,150,115,150);line(114,131,114,149);line(36,149,114,149);
delay(10000);delay(10000);
closegraph;delay(10000);delay(10000);delay(10000);delay(10000);delay(10000);delay(10000);textcolor(10);
for k:=1 to 1000 do begin n:=(random(9));write(n,' ');delay(1000);end;delay(10000);delay(10000);
textcolor(14);clrscr;writeln;writeln;writeln;writeln;writeln;writeln;writeln;
writeln(' Enter the PASSVORD');
write(' ');textcolor(15);readln(passvord);
{proverka} if (passvord='') or (passvord='') or (passvord='') or (passvord='') then begin k:=10; end
else k:=4;textcolor(k);clrscr;
for k:=1 to 1000 do begin n:=(random(9));write(n,' ');delay(1000);end;
d:=9;m:=2;initgraph(d,m,'');
setfillstyle(8,3);bar(0,0,640,480);setcolor(10);rectangle(9,9,631,471);rectangle(10,10,630,470);
setfillstyle(8,3);bar(0,0,640,480);setcolor(10);rectangle(9,9,631,471);
rectangle(10,10,630,470);rectangle(15,15,625,465);rectangle(14,14,626,466);setfillstyle(8,1);
bar(30,30,120,450);setfillstyle(8,9);bar(140,30,610,450);setcolor(15);
tehnar;knopki1;
end;if ycur=175 then
begin {help}
setcolor(8);
line(35,175,35,195);line(35,175,115,175);line(36,176,36,194);line(36,176,114,176);
setcolor(15);
line(115,175,115,195);line(35,195,115,195);line(114,176,114,194);line(36,194,114,194);
delay(10000);delay(10000);
line(35,175,35,195);line(35,175,115,175);line(36,176,36,194);line(36,176,114,176);
setcolor(8);
line(115,175,115,195);line(35,195,115,195);line(114,176,114,194);line(36,194,114,194);
delay(10000);delay(10000);
end;if ycur=220 then
begin {exit}
setcolor(8);
line(35,220,35,240);line(35,220,115,220);line(36,221,36,239);line(36,221,114,221);
setcolor(15);
line(115,220,115,240);line(35,240,115,240);line(114,221,114,239);line(36,239,114,239);
delay(10000);delay(10000);
line(35,220,35,240);line(35,220,115,220);line(36,221,36,239);line(36,221,114,221);
setcolor(8);
line(115,220,115,240);line(35,240,115,240);line(114,221,114,239);line(36,239,114,239);
delay(10000);delay(10000);
m:=123;d:=123;setcolor(0);for k:=0 to 480 do begin line(0,k,640,k);delay(1000);end;
end; end;if ycur>221 then ycur:=40;
if ycur<39 then ycur:=220;
cursor; end;
А вот и персонаж о котором я говорил:
putpixel(x,y+6,0);putpixel(x,y+7,0);putpixel(x+1,y+6,0);putpixel(x+1,y+7,0);putpixel(x+1,y+8,0);putpixel(x+1,y+16,0);
putpixel(x+1,y+17,0);putpixel(x+1,y+18,0);putpixel(x+1,y+19,0);putpixel(x+1,y+20,0);putpixel(x+1,y+21,0);putpixel(x+1,y+22,0);
putpixel(x+2,y+1,0);putpixel(x+2,y+2,0);putpixel(x+2,y+3,0);putpixel(x+2,y+4,0);putpixel(x+2,y+6,0);putpixel(x+2,y+7,0);
putpixel(x+2,y+8,0);putpixel(x+2,y+9,0);putpixel(x+2,y+10,0);putpixel(x+2,y+11,0);putpixel(x+2,y+12,0);putpixel(x+2,y+13,0);
putpixel(x+2,y+14,0);putpixel(x+2,y+15,0);putpixel(x+2,y+16,0);putpixel(x+2,y+17,0);putpixel(x+2,y+18,0);putpixel(x+2,y+19,0);
putpixel(x+2,y+20,0);putpixel(x+2,y+21,0);putpixel(x+2,y+22,0);putpixel(x+3,y,0);putpixel(x+3,y+1,0);putpixel(x+3,y+2,0);
putpixel(x+3,y+3,0);putpixel(x+3,y+4,0);putpixel(x+3,y+22,0);putpixel(x+3,y+5,0);putpixel(x+3,y+6,0);putpixel(x+3,y+7,0);
putpixel(x+3,y+8,0);putpixel(x+3,y+9,0);putpixel(x+3,y+10,0);putpixel(x+3,y+11,0);putpixel(x+3,y+12,0);putpixel(x+3,y+13,0);
putpixel(x+3,y+14,0);putpixel(x+3,y+15,0);putpixel(x+3,y+16,0);putpixel(x+4,y,0);putpixel(x+4,y+1,0);putpixel(x+4,y+3,0);
putpixel(x+4,y+4,0);putpixel(x+4,y+5,0);putpixel(x+4,y+6,0);putpixel(x+4,y+7,0);putpixel(x+4,y+8,0);putpixel(x+4,y+9,0);
putpixel(x+4,y+10,0);putpixel(x+4,y+11,0);putpixel(x+4,y+12,0);putpixel(x+4,y+13,0);putpixel(x+4,y+14,0);putpixel(x+4,y+15,0);
putpixel(x+5,y+2,0);putpixel(x+5,y+3,0);putpixel(x+5,y+4,0);putpixel(x+5,y+7,0);putpixel(x+5,y+8,0);putpixel(x+5,y+9,0);
putpixel(x+5,y+10,0);putpixel(x+5,y+11,0);putpixel(x+5,y+12,0);putpixel(x+5,y+13,0);putpixel(x+5,y+14,0);putpixel(x+5,y+15,0);
putpixel(x+5,y+16,0);putpixel(x+5,y+17,0);putpixel(x+5,y+18,0);putpixel(x+6,y+3,0);putpixel(x+6,y+10,0);putpixel(x+6,y+11,0);
putpixel(x+6,y+15,0);putpixel(x+6,y+16,0);putpixel(x+6,y+17,0);putpixel(x+6,y+18,0);putpixel(x+6,y+19,0);putpixel(x+6,y+20,0);
putpixel(x+6,y+21,0);putpixel(x+6,y+22,0);putpixel(x+7,y+11,0);putpixel(x+7,y+12,0);putpixel(x+7,y+18,0);putpixel(x+7,y+19,0);
putpixel(x+7,y+20,0);putpixel(x+7,y+21,0);putpixel(x+7,y+22,0);putpixel(x+8,y+11,0);putpixel(x+8,y+12,0);putpixel(x+8,y+22,0);
А остальное я вроде описал коротко в комментах...
Для компиляции не забываем о файликах EGAVGA.BGI и GRAPH.TPU, без них в графике никак
В приложенных архивах .exe запуск игры, можете посмотреть и полная версия кода. Не забываем проверять на вирусы!!!