![]() |
yılan oyunu
program snake29;
uses crt; const left=#75; right=#77; up=#72; down=#80; Esc=#27; var Ch : Array [1..20,1..40] of char; Name : Array [1..6] of String; HiScore : Array [1..6] of integer; AHead,BHead : Array [1..15000] of integer; a,b,aFood,bFood,i,k,j,iTail,iCounter,iCrash,iGaine d,xGamble,yGamble, iLastScore,iList,iLive,iLifeScore,iMove,iScore,iTe mp,Color,iLevel,iFactor,iChance : integer; StTemp,User : String[10]; ChLevel,Decision,key,KeyControl : Char; Lock,Pause,SoundLock : Boolean; Procedure CreateFrame; begin gotoxy(19,9); write('ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ SNAKE ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»'); for i:=10 to 16 do begin gotoxy(19,i); write('º º'); end; gotoxy(19,17); write('º ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» º'); gotoxy(19,18); write('º º º º'); gotoxy(19,19); write('ÈÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍͼ' ); end; begin randomize; clrscr; textcolor(11); gotoxy(25,13); write('*** LUCKY SNAKE ***'); gotoxy(24,15); textcolor(9); write('a Mr.Stork Production...'); textcolor(15); readkey; textcolor(15); iCounter:=1; clrscr; writeln('Please write your name!'); readln(User); iList:=6; {It is 6,because we have 5 people in hi-score list.} Name[iList]:=User; clrscr; iLevel:=3; iFactor:=3; iLifeScore:=1500; SoundLock:=True; repeat clrscr; iLive:=2; CreateFrame; gotoxy(21,10); writeln('What would you like to do ',User,'?'); gotoxy(21,11); writeln('1. Let us roll!'); gotoxy(21,12); writeln('2. I will decide how fast I am !'); gotoxy(21,13); writeln('3. I wonder who is the best?'); gotoxy(21,14); writeln('4. New player'); gotoxy(21,15); writeln('5. Sound Option'); gotoxy(21,16); writeln('6. Quit'); repeat for k:=1 to 500 do begin gotoxy(31,18); Write(' º'); delay(20000); gotoxy(31,18); write('*** GOOD LUCK *** º'); if KeyPressed then Break; delay(60000); end; Decision:=Readkey; if Decision='1' then begin if SoundLock=True then begin for i:=1 to 3 do begin if KeyPressed then Break; delay(30000); {Start Music} sound(100); delay(30000); sound(150); delay(30000); sound(200); delay(30000); sound(75); delay(30000); sound(175); delay(30000); NoSound; end; end; end; until(Decision in ['1','2','3','4','5','6'] ); case Decision of '1' : begin repeat {That is for lives} clrscr; gotoxy(21,12); writeln('PRESS ENTER WHEN YOU ARE READY! ',User); readln; if (i>j) then begin for a:=1 to 1500 do begin AHead[a]:=0; BHead[a]:=0; end end else for a:=1 to 1500 do begin AHead[a]:=0; BHead[a]:=0; end; clrscr; writeln('ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ » ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»'); for i:=1 to 20 do begin writeln('º º º º '); end; writeln('ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ ¼ ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ'); gotoxy(45,4); write('Score: '); gotoxy(45,4); write('Score: ',iScore); gotoxy(45,6); write('Lives: ',iLive); gotoxy(45,8); iList:=1; write('Leader: ',Name[iList]); gotoxy(45,10); if (HiScore[iList]=0) then begin write('Hi-Score: ',iScore); gotoxy(45,8); write('Leader: ',User); end else begin write('Hi-Score: ',HiScore[iList]); gotoxy(45,8); write('Leader: ',Name[iList]); end; a:=1; b:=1; i:=10; aFood:=10; bFood:=16; gotoxy(bFood,aFood); textcolor(13); write('~'); for j:=2 to 4 do begin AHead[a]:=i; BHead[b]:=j; Ch[i,j]:=''; gotoxy(j,i); write(Ch[i,j]); a:=a+1; b:=b+1; end; key:=Right; iTail:=1; repeat iList:=6; Name[iList]:=User; repeat {If it is alive,go on} delay(60000 div iLevel); gotoxy(45,2); write(User); Lock:=True; KeyControl:=Key; if KeyPressed then begin key:=Readkey; end; if (key=#0) then begin key:=Readkey; end; if ((key<>Up) or (key<>Down) or (key<>Right) or (key<>Left) or (key<>Esc)) {This control is for monkey touching} and ((key<>Up) and (key<>Down) and (key<>Right) and (key<>Left) and (key<>Esc)) then Key:=KeyControl; case key of Right: j:=j+1; {Right} Left : j:=j-1; {Left} Up : i:=i-1; {Up} Down : i:=i+1; {Down} Esc : begin gotoxy(50,18); write('PAUSED'); gotoxy(46,20); write(' 1. QUIT '); gotoxy(46,21); write(' 2. Continue '); repeat Decision:=Readkey; until (Decision in ['1','2']); case Decision of '1' : EXIT; '2' : Pause:=True; end; if (Pause=True) then begin key:=KeyControl; gotoxy(50,18); write(' '); gotoxy(45,20); write(' '); gotoxy(45,21); write(' '); Continue; end; end; end; if (i>21) or (i<2) or (j>41) or (j<2) then Continue; {If it runs into the wall,stop!} for iCrash:=a downto iTail do begin if (AHead[iCrash]=i) and (BHead[iCrash]=j) then {We'll use this statement again!Don't forget!} begin Lock:=False; break; {Gives up the loop if the snake bites itself} end; end; if Lock=True then {If it eats itself,we cannot open this} begin gotoxy(j,i); Ch[i,j]:=''; write(Ch[i,j]); AHead[a]:=i; BHead[b]:=j; a:=a+1; b:=b+1; iMove:=iMove + 1; if (iMove=65) then begin Ch[xGamble,yGamble]:=' '; gotoxy(46,12); write(' '); gotoxy(yGamble,xGamble); write(Ch[xGamble,yGamble]); xGamble:=50; yGamble:=50; gotoxy(45,14); write(' '); end; if (iCounter mod 6=0) then begin repeat xGamble:=Random(20); yGamble:=Random(40); iChance:=Random(2); for iCrash:=a downto iTail do if (AHead[iCrash]=xGamble) and (BHead[iCrash]=yGamble) then Break; until (xGamble > 1) and (yGamble > 1) and (AHead[iCrash]<>xGamble) and (BHead[iCrash]<>yGamble); Ch[xGamble,yGamble]:='?'; gotoxy(yGamble,xGamble); write(Ch[xGamble,yGamble]); gotoxy(46,12); write('ARE YOU BRAVE ENOUGH?'); iGained:=Random(250); iCounter:=iCounter + 1; iMove:=0; end; if (xGamble=i) and (yGamble=j) then begin gotoxy(45,4); write('Score: '); gotoxy(45,4); write('Score: ',iScore); Ch[xGamble,yGamble]:=''; gotoxy(46,12); write(' '); if (iChance=1) then begin iScore:=iScore + iGained; gotoxy(46,12); write('YOU HAVE BONUS!'); end; if (iChance=0) then begin iScore:=iScore - iGained; gotoxy(46,12); write('HA-HAH! YOU LOSE :-D'); end; gotoxy(yGamble,xGamble); write(Ch[xGamble,yGamble]); xGamble:=50; yGamble:=50; end; if (aFood=i) and (bFood=j) then begin iCounter:=iCounter + 1; gotoxy(bFood,aFood); write(''); iScore:=iScore + (10 * iFactor); if (iScore > iLifeScore) then begin iLive:=iLive + 1; {HEEY!We have one more life!} gotoxy(45,14); write('WELL DONE! EXTRA LIFE!'); iLifeScore:=iLifeScore + 1500; gotoxy(45,6); write('Lives: ',iLive); end; gotoxy(45,4); if SoundLock=True then begin delay(30000); {Music part when the snake feeds} sound(200); delay(10000); sound(150); delay(10000); sound(150); delay(30000); sound(300); delay(30000); NoSound; end; write('Score: '); textcolor(15); gotoxy(45,4); write('Score: ',iScore); iList:=1; if (iScore > HiScore[iList]) then begin gotoxy(45,10); write('Hi-Score: '); gotoxy(45,10); write('Hi-Score: ',iScore); gotoxy(45,8); write('Leader: ',User); end else begin gotoxy(45,10); write('Hi-Score: '); gotoxy(45,10); write('Hi-Score: ',HiScore[iList]); gotoxy(45,8); write('Leader: ',Name[iList]); end; repeat aFood:=random(19); bFood:=random(39); for iCrash:=a downto iTail do if (AHead[iCrash]=aFood) and (BHead[iCrash]=bFood) then break; until ( (aFood>1) and (bFood>1) ) and ( (AHead[iCrash]<>aFood) and (BHead[iCrash]<>bFood) ); gotoxy(bFood,aFood); Ch[aFood,bFood]:='~'; repeat Color:=random(15); until (Color > 8); textcolor(Color); write(Ch[aFood,bFood]); Continue; end; gotoxy(BHead[iTail],AHead[iTail]); Ch[AHead[iTail],BHead[iTail]]:=' '; write(Ch[AHead[iTail],BHead[iTail]]); iTail:=iTail + 1; end; {End of Boolean} until ( (i>21) or (i<2) or (j>41) or (j<2) ) or ( (AHead[iCrash]=i) and (BHead[iCrash]=j) ); if (i>21) or (i<2) or (j>41) or (j<2) then begin if SoundLock=True then begin for i:=1 to 3 do begin delay(30000); sound(100); delay(30000); sound(125); delay(30000); sound(75); delay(60000); NoSound; end; end; Break; end; if (AHead[iCrash]=i) and (BHead[iCrash]=j) then begin if SoundLock=True then begin for i:=1 to 3 do begin sound(350); delay(60000); sound(150); delay(60000); sound(70); delay(60000); NoSound; end; end; Break; end; until KeyPressed; iLive:=iLive - 1; until (iLive=0); gotoxy(20,8); textcolor(28); write('GAME OVER'); gotoxy(8,13); write('Press any key to return menu..!'); Readkey; textcolor(15); iList:=6; HiScore[iList]:=iScore; iScore:=0; for iList:=1 to 6 do for k:=iList + 1 to 6 do begin if (HiScore[k] > HiScore[iList]) then begin iTemp:=HiScore[iList]; HiScore[iList]:=HiScore[k]; HiScore[k]:=iTemp; {Score is ordered,let's order the name!} StTemp:=Name[iList]; Name[iList]:= Name[k]; Name[k]:=StTemp; end; end; end; {End of game part} '2' : begin clrscr; CreateFrame; gotoxy(20,11); writeln('1. Probably I can beat a turtle!'); gotoxy(20,12); writeln('2. Let us run a little faster!'); gotoxy(20,13); writeln('3. I feel as if I was a cheetah'); gotoxy(20,14); writeln('4. Wind is my nickname!'); gotoxy(20,15); writeln('5. My only opponent is Turkish Airlines!'); repeat for k:=1 to 500 do begin gotoxy(31,18); Write(' º'); delay(20000); gotoxy(31,18); write('** CHOOSE LEVEL **º'); if KeyPressed then Break; delay(60000); end; ChLevel:=Readkey; until(ChLevel in ['1','2','3','4','5'] ); case ChLevel of '1': begin iLevel:=1; iFactor:=1; end; '2': begin iLevel:=2; iFactor:=2; end; '3': begin iLevel:=3; iFactor:=3; end; '4': begin iLevel:=4; iFactor:=4; end; '5': begin iLevel:=5; iFactor:=5; end; end; end; '3' : begin {Outputs hi-score list} clrscr; for iList:=1 to 5 do begin writeln(iList,'. ',Name[iList],' ',HiScore[iList]); end; readkey; end; '4' : begin clrscr; writeln('Welcome!..Please write your name'); readln(User); iList:=6; name[iList]:=User; end; '5' : begin clrscr; writeln('1. Sound on'); writeln('2. Sound off'); repeat Decision:=Readkey; until (Decision in ['1','2']); case Decision of '1' : SoundLock:=True; '2' : SoundLock:=False; end; end; '6' : begin clrscr; gotoxy(25,13); textcolor(red); for i:=1 to 2 do begin clrscr; {I just wanted it's to seem a little more} gotoxy(25,13); write('TO BE CONTINUED...'); Delay(65000); end; end; end; until (Decision='6'); end. {written by mr.stork} {mr.stork@mynet.com} |
Paylaşım için tşkler…
|
teŞekkÜrler PaylaŞim İİÇİn
|
paylaşım için tşkrlr
|
Bütün Zaman Ayarları WEZ +3 olarak düzenlenmiştir. Şu Anki Saat: 17:26 . |
Powered by vBulletin® Version 3.7.0
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.