Hi, I have a game which some people tell me is good, but I think needs more ideas. Please list some good ideas so that the game can become better. I don't need simplification.
Here is the game:
program weee (input,output,save);
uses crt;
type a31415=array [1..10,1..10] of integer;
var save: text; a,b,d,e,str,hp,acr,def,str2,hp2,acr2,def2,qpoints,mlvl,nmonk,brnqd,frzns,frzqd,dhqd,rplqd,place,lvl,el,edl,c,z,emoney,hpl,acrl,strl,across,down,defl,aaa,bbb,ccc,ddd,stash,bombs,healpo: integer; ep,exp,test,neededexp: real; w,x,y,mon,anok,bnok,rpl,dh,boss: boolean; aaaaa,aaaab,aaaac,aaaad,aaaae,aaaaf,frzq,brnq,dhq,rplq,brnl,rpll: integer; a1,a2,a3,junk: char; land: a31415;
label 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,95,96,97,98,99,100,995,996,997,998,999,9999;
BEGIN
assign(save,'C:/x.txt');
lvl:=3;
neededexp:=1.3;
textbackground(green);
textcolor(white);
clrscr;
for a:=1 to 10 do {Copyright 2006, Edward Swernofsky}
begin
for b:=1 to 10 do
begin
c:=0;
repeat
inc(c);
until c=5000000;
randomize;
land[a,b]:=(random(2)+1)-1;
end;
end;
for a:=1 to 3 do
begin
for b:=1 to 3 do
begin
land[a,b]:=1;
end;
end;
land[1,10]:=2;
land[10,1]:=2;
land[10,10]:=2;
across:=1;
down:=1;
brnl:=1;
rpll:=1;
writeln('your magic progresses as you gain levels');
4:
if y then goto 100;
hp:=100+10*lvl+10*hpl;
hp2:=100+10*el;
if bnok then
begin
bnok:=false;
goto 995;
end;
if mon then
begin
mon:=false;
goto 1;
end;
999:
place:=land[across,down];
writeln('-----------------------------------------');
writeln('| | | | | | | | | | |');
writeln('| ',land[1,1],' | ',land[2,1],' | ',land[3,1],' | ',land[4,1],' | ',land[5,1],' | ',land[6,1],' | ',land[7,1],' | ',land[8,1],' | ',land[9,1],' | ',land[10,1],' |');
writeln('| | | | | | | | | | |');
writeln('-----------------------------------------');
writeln('| | | | | | | | | | |');
writeln('| ',land[1,2],' | ',land[2,2],' | ',land[3,2],' | ',land[4,2],' | ',land[5,2],' | ',land[6,2],' | ',land[7,2],' | ',land[8,2],' | ',land[9,2],' | ',land[10,2],' |');
writeln('| | | | | | | | | | |');
writeln('-----------------------------------------');
writeln('| | | | | | | | | | |');
writeln('| ',land[1,3],' | ',land[2,3],' | ',land[3,3],' | ',land[4,3],' | ',land[5,3],' | ',land[6,3],' | ',land[7,3],' | ',land[8,3],' | ',land[9,3],' | ',land[10,3],' |');
writeln('| | | | | | | | | | |');
writeln('-----------------------------------------');
writeln('| | | | | | | | | | |');
writeln('| ',land[1,4],' | ',land[2,4],' | ',land[3,4],' | ',land[4,4],' | ',land[5,4],' | ',land[6,4],' | ',land[7,4],' | ',land[8,4],' | ',land[9,4],' | ',land[10,4],' |');
writeln('| | | | | | | | | | |');
writeln('-----------------------------------------');
writeln('| | | | | | | | | | |');
writeln('| ',land[1,5],' | ',land[2,5],' | ',land[3,5],' | ',land[4,5],' | ',land[5,5],' | ',land[6,5],' | ',land[7,5],' | ',land[8,5],' | ',land[9,5],' | ',land[10,5],' |');
writeln('| | | | | | | | | | |');
writeln('-----------------------------------------');
writeln('| | | | | | | | | | |');
writeln('| ',land[1,6],' | ',land[2,6],' | ',land[3,6],' | ',land[4,6],' | ',land[5,6],' | ',land[6,6],' | ',land[7,6],' | ',land[8,6],' | ',land[9,6],' | ',land[10,6],' |');
writeln('| | | | | | | | | | |');
writeln('-----------------------------------------');
writeln('| | | | | | | | | | |');
writeln('| ',land[1,7],' | ',land[2,7],' | ',land[3,7],' | ',land[4,7],' | ',land[5,7],' | ',land[6,7],' | ',land[7,7],' | ',land[8,7],' | ',land[9,7],' | ',land[10,7],' |');
writeln('| | | | | | | | | | |');
writeln('-----------------------------------------');
writeln('| | | | | | | | | | |');
writeln('| ',land[1,8],' | ',land[2,8],' | ',land[3,8],' | ',land[4,8],' | ',land[5,8],' | ',land[6,8],' | ',land[7,8],' | ',land[8,8],' | ',land[9,8],' | ',land[10,8],' |');
writeln('| | | | | | | | | | |');
writeln('-----------------------------------------');
writeln('| | | | | | | | | | |');
writeln('| ',land[1,9],' | ',land[2,9],' | ',land[3,9],' | ',land[4,9],' | ',land[5,9],' | ',land[6,9],' | ',land[7,9],' | ',land[8,9],' | ',land[9,9],' | ',land[10,9],' |');
writeln('| | | | | | | | | | |');
writeln('-----------------------------------------');
writeln('| | | | | | | | | | |');
writeln('| ',land[1,10],' | ',land[2,10],' | ',land[3,10],' | ',land[4,10],' | ',land[5,10],' | ',land[6,10],' | ',land[7,10],' | ',land[8,10],' | ',land[9,10],' | ',land[10,10],' |');
writeln('| | | | | | | | | | |');
writeln('-----------------------------------------');
writeln('1 is a city, 2 is a boss, and 0 is a hunting place');
writeln('you are at ',across,',',down);
if place=0 then
begin
writeln('type 1 to go hunting, and 2 to save or recover');
readln(a);
clrscr;
if a=1 then goto 997;
if a=2 then goto 996;
goto 999;
end;
if place=1 then
begin
writeln('type 1 to go shopping, 2 to move, 3 to save or recover, and 4 to see your stats');
readln(a);
clrscr;
if a=1 then goto 998;
if a=2 then goto 995;
if a=3 then goto 996;
if a=4 then goto 95;
goto 999;
end;
if place=2 then
begin
textcolor(yellow);
writeln('BBB OOO SSS SSS!');
writeln('BBB OOO SSS SSS!');
writeln('BBB OOO SSS SSS!');
textcolor(white);
el:=lvl*3;
boss:=true;
mon:=true;
goto 4;
end;
if place=3 then
begin
textcolor(red);
writeln('MMM EEE GGG AAA BBB OOO SSS SSS!');
writeln('MMM EEE GGG AAA BBB OOO SSS SSS!');
writeln('MMM EEE GGG AAA BBB OOO SSS SSS!');
textcolor(white);
el:=lvl*10;
boss:=true;
mon:=true;
goto 4;
end;
998:
begin
writeln('you have ',stash,' gp,');
writeln;
writeln('type 1 to buy a sword upgrade for 10000 gp,');
writeln;
writeln('type 2 to buy a shield upgrade for 10000 gp,');
writeln;
writeln('type 3 to buy an eye glass upgrade for 10000 gp,');
writeln;
writeln('type 4 to buy a health potion for 5000 gp,');
readln(a);
clrscr;
if a=1 then
begin
if stash>10000 then
begin
writeln('purchased!');
inc(aaaaa);
stash:=stash-10000;
goto 998;
end;
end;
if a=2 then
begin
if stash>10000 then
begin
writeln('purchased!');
inc(aaaab);
stash:=stash-10000;
goto 998;
end;
end;
if a=3 then
begin
if stash>10000 then
begin
writeln('purchased!');
inc(aaaac);
stash:=stash-10000;
goto 998;
end;
end;
if a=4 then
begin
if stash>5000 then
begin
writeln('purchased!');
inc(healpo);
stash:=stash-5000;
goto 998;
end;
end;
goto 999;
end;
997:
begin
randomize;
e:=random(100)+1;
if e>20 then
begin
if e>40 then
begin
if e>60 then
begin
if e>70 then
begin
if e>90 then
begin
if e>99 then
begin
textcolor(blue);
writeln('YOU LEVELED UP!!!!!!!!!');
textcolor(white);
writeln;
goto 96;
end;
textcolor(blue);
writeln('YOU FOUND A TREASURE CHEST!!!!');
textcolor(white);
writeln;
stash:=stash+1000;
goto 999;
end;
textcolor(blue);
writeln('YOU FOUND A POTION!!!!');
textcolor(white);
writeln;
healpo:=healpo+1;
goto 999;
end;
textcolor(yellow);
writeln('YOU DID NOT FIND ANYTHING!!!!!!!!');
textcolor(white);
writeln;
goto 999;
end;
writeln('YOU WERE ATTACKED!!!!!!!!!!!! -1 !!!!!!!!!');
writeln;
el:=lvl-1;
mon:=true;
goto 4;
end;
writeln('YOU WERE ATTACKED!!!!!!!!!!!! +1 !!!!!!!!!');
writeln;
el:=lvl+1;
mon:=true;
goto 4;
end;
writeln('YOU WERE ATTACKED!!!!!!!!!!!! Same lvl !!!!!!!!!');
writeln;
el:=lvl;
mon:=true;
goto 4;
end;
996:
begin
writeln('type 1 to save, 2 to recover and 3 to quit');
readln(a);
clrscr;
if a=1 then
begin
rewrite(save);
writeln(save,lvl,' ',stash,' ',exp,' ',neededexp,' ',acrl,' ',strl,' ',defl,' ',bombs,' ',healpo,' ',hpl,' ',aaaaa,' ',aaaab,' ',aaaac,' ',aaaad,' ',brnq,' ',frzq,' ',dhq,' ',rplq,' ',brnl,' ',rpll,' ',across,' ',down);
close(save);
goto 999;
end;
if a=2 then
begin
reset(save);
readln(save,lvl,stash,exp,neededexp,acrl,strl,defl,bombs,healpo,hpl,aaaaa,aaaab,aaaac,aaaad,brnq,frzq,dhq,rplq,brnl,rpll,across,down);
close(save);
brnqd:=brnq;
frzqd:=frzq;
dhqd:=dhq;
rplqd:=rplq;
goto 4;
end;
if a=3 then goto 999;
end;
95:
begin
writeln;
writeln('your level is ',lvl);
writeln('you have ',hp,' health');
writeln('you have ',strl,' strength');
writeln('you have ',acrl,' acuracy');
writeln('you have ',defl,' defence');
writeln('you have ',brnq,' burn spells per battle');
writeln('you have ',frzq,' freeze spells per battle');
writeln('you have ',dhq,' double hit spells per battle');
writeln('you have ',rplq,' repel spells per battle');
writeln('your burn level is ',brnl);
writeln('your repel level is ',rpll);
writeln('you have ',stash,' gp');
writeln('your sword lvl is ',aaaaa);
writeln('your shield lvl is ',aaaab);
writeln('your eyeglass lvl is ',aaaac);
writeln('you have ',healpo,' health potions');
writeln('you have ',round(exp),' experience');
writeln('you need ',round((neededexp-exp)),' more experience to get to the next level');
writeln;
readln;
clrscr;
goto 999;
end;
1:
if hp2<1 then
begin
if boss then
begin
boss:=false;
writeln('you beat a boss!!!!!!!');
emoney:=el*100;
inc(qpoints);
if (qpoints mod 5)=0 then land[10,10]:=3;
end
else emoney:=el*50;
writeln('you got ',emoney,' gp');
stash:=stash+emoney;
ep:=1.1;
brnqd:=brnq;
frzqd:=frzq;
dhqd:=dhq;
rplqd:=rplq;
for a:=1 to el do
begin
ep:=ep*1.1;
end;
exp:=exp+ep;
writeln('you win!');
if exp>neededexp then
begin
96:
inc(lvl);
exp:=0;
writeln;
writeln('YOU GAINED A LEVEL!!!!!!!');
writeln;
neededexp:=neededexp*1.4;
y:=true;
end;
bnok:=true;
readln;
clrscr;
goto 4;
end;
if hp<1 then
begin
brnqd:=brnq;
frzqd:=frzq;
dhqd:=dhq;
rplqd:=rplq;
textcolor(red);
writeln('you lose!');
textcolor(white);
lvl:=lvl-1;
exp:=0;
neededexp:=1.3;
for a:=1 to (lvl-2) do neededexp:=neededexp*1.3;
bnok:=true;
readln;
goto 4;
end;
if anok then
begin
995:
anok:=false;
place:=land[across,down];
writeln('-----------------------------------------');
writeln('| | | | | | | | | | |');
writeln('| ',land[1,1],' | ',land[2,1],' | ',land[3,1],' | ',land[4,1],' | ',land[5,1],' | ',land[6,1],' | ',land[7,1],' | ',land[8,1],' | ',land[9,1],' | ',land[10,1],' |');
writeln('| | | | | | | | | | |');
writeln('-----------------------------------------');
writeln('| | | | | | | | | | |');
writeln('| ',land[1,2],' | ',land[2,2],' | ',land[3,2],' | ',land[4,2],' | ',land[5,2],' | ',land[6,2],' | ',land[7,2],' | ',land[8,2],' | ',land[9,2],' | ',land[10,2],' |');
writeln('| | | | | | | | | | |');
writeln('-----------------------------------------');
writeln('| | | | | | | | | | |');
writeln('| ',land[1,3],' | ',land[2,3],' | ',land[3,3],' | ',land[4,3],' | ',land[5,3],' | ',land[6,3],' | ',land[7,3],' | ',land[8,3],' | ',land[9,3],' | ',land[10,3],' |');
writeln('| | | | | | | | | | |');
writeln('-----------------------------------------');
writeln('| | | | | | | | | | |');
writeln('| ',land[1,4],' | ',land[2,4],' | ',land[3,4],' | ',land[4,4],' | ',land[5,4],' | ',land[6,4],' | ',land[7,4],' | ',land[8,4],' | ',land[9,4],' | ',land[10,4],' |');
writeln('| | | | | | | | | | |');
writeln('-----------------------------------------');
writeln('| | | | | | | | | | |');
writeln('| ',land[1,5],' | ',land[2,5],' | ',land[3,5],' | ',land[4,5],' | ',land[5,5],' | ',land[6,5],' | ',land[7,5],' | ',land[8,5],' | ',land[9,5],' | ',land[10,5],' |');
writeln('| | | | | | | | | | |');
writeln('-----------------------------------------');
writeln('| | | | | | | | | | |');
writeln('| ',land[1,6],' | ',land[2,6],' | ',land[3,6],' | ',land[4,6],' | ',land[5,6],' | ',land[6,6],' | ',land[7,6],' | ',land[8,6],' | ',land[9,6],' | ',land[10,6],' |');
writeln('| | | | | | | | | | |');
writeln('-----------------------------------------');
writeln('| | | | | | | | | | |');
writeln('| ',land[1,7],' | ',land[2,7],' | ',land[3,7],' | ',land[4,7],' | ',land[5,7],' | ',land[6,7],' | ',land[7,7],' | ',land[8,7],' | ',land[9,7],' | ',land[10,7],' |');
writeln('| | | | | | | | | | |');
writeln('-----------------------------------------');
writeln('| | | | | | | | | | |');
writeln('| ',land[1,8],' | ',land[2,8],' | ',land[3,8],' | ',land[4,8],' | ',land[5,8],' | ',land[6,8],' | ',land[7,8],' | ',land[8,8],' | ',land[9,8],' | ',land[10,8],' |');
writeln('| | | | | | | | | | |');
writeln('-----------------------------------------');
writeln('| | | | | | | | | | |');
writeln('| ',land[1,9],' | ',land[2,9],' | ',land[3,9],' | ',land[4,9],' | ',land[5,9],' | ',land[6,9],' | ',land[7,9],' | ',land[8,9],' | ',land[9,9],' | ',land[10,9],' |');
writeln('| | | | | | | | | | |');
writeln('-----------------------------------------');
writeln('| | | | | | | | | | |');
writeln('| ',land[1,10],' | ',land[2,10],' | ',land[3,10],' | ',land[4,10],' | ',land[5,10],' | ',land[6,10],' | ',land[7,10],' | ',land[8,10],' | ',land[9,10],' | ',land[10,10],' |');
writeln('| | | | | | | | | | |');
writeln('-----------------------------------------');
writeln('1 is a city and 0 is a hunting place');
writeln('you are at ',across,',',down);
writeln('type 1 to go up, 2 to go down, 3 to go left, 4 to go right, and 5 to stay where you are');
readln(a);
if a=1 then
begin
if down=1 then
begin
clrscr;
goto 995;
end;
down:=down-1;
clrscr;
goto 999;
end;
if a=2 then
begin
if down=10 then
begin
clrscr;
goto 995;
end;
down:=down+1;
clrscr;
goto 999;
end;
if a=3 then
begin
if across=1 then
begin
clrscr;
goto 995;
end;
across:=across-1;
clrscr;
goto 999;
end;
if a=4 then
begin
if across=10 then
begin
clrscr;
goto 995;
end;
across:=across+1;
clrscr;
goto 999;
end;
clrscr;
if a=5 then goto 999;
goto 995;
end;
writeln('type 1 to attack');
if healpo>0 then writeln('type 2 to use potion');
if brnq>0 then writeln('type 3 to use burn');
if frzq>0 then writeln('type 4 to use freeze');
if dhq>0 then writeln('type 5 to use double hit');
if rplq>0 then writeln('type 6 to use repel');
readln(a);
clrscr;
if a=1 then goto 3;
if a=2 then
begin
if healpo>0 then
begin
healpo:=healpo-1;
hp:=hp+2*el+50;
goto 1;
end;
end;
if a=3 then
begin
if brnqd>0 then
begin
brnqd:=brnqd-1;
randomize;
str:=brnl*10+(random(5)+1)-1;
goto 9999;
end;
end;
if a=4 then
begin
if frzqd>0 then
begin
frzqd:=frzqd-1;
inc(frzns);
end;
end;
if a=5 then
begin
if dhqd>0 then
begin
dhqd:=dhqd-1;
dh:=true;
goto 3;
end;
end;
if a=6 then
begin
if rplqd>0 then
begin
rplqd:=rplqd-1;
rpl:=true;
goto 3;
end;
end;
goto 1;
3:
randomize;
acr:=random(100+lvl+acrl)+1;
acr:=round(acr*0.1*(10+aaaac));
if acr>33 then
begin
c:=0;
repeat
inc(c);
until c=5000000;
randomize;
str:=random(10+lvl+strl)+1;
str:=round(str*0.1*(10+aaaaa));
if dh then
begin
dh:=false;
str:=str*2;
end;
x:=true;
if acr<66 then
begin
goto 99;
98:
c:=0;
repeat
inc(c);
until c=5000000;
randomize;
def2:=random(7+2*el)+1;
str:=str-def2;
if str<0 then str:=0;
end;
9999:
hp2:=hp2-str;
writeln('you did ',str,' damage');
writeln('enemy health = ',hp2);
end
else writeln('you missed');
writeln;
c:=0;
repeat
inc(c);
until c=5000000;
if frzns>0 then
begin
frzns:=frzns-1;
goto 1;
end;
20:
randomize;
acr2:=random(100+round(2*el))+1;
if acr2>33 then
begin
randomize;
str2:=random(10+round(2*el))+1;
x:=false;
writeln;
if rpl then
begin
rpl:=false;
writeln('repelled ',round(rpll/20*str2),' damage');
hp2:=hp2-round(rpll/20*str2);
str2:=str2-round((rpll/20)*str2);
end;
if acr2<66 then
begin
goto 99;
97:
begin
randomize;
def:=random(7+lvl+defl)+1;
def:=round(def*0.1*(10+aaaab));
end;
str2:=str2-def;
if str2<0 then str2:=0;
end;
hp:=hp-str2;
writeln;
writeln('enemy did ',str2,' damage');
writeln('your health = ',hp);
end
else writeln('enemy missed');
writeln;
goto 1;
99:
c:=0;
repeat
inc(c);
until c=5000000;
if x then goto 98;
goto 97;
100:
writeln('<1> for 3 health');
writeln('******************');
writeln('<2> for 3 acuracy');
writeln('******************');
writeln('<3> for 3 strength');
writeln('******************');
writeln('<4> for 3 defence');
writeln('------------------');
writeln('<5> for 1 more ammo of burn magic');
writeln('------------------');
writeln('<6> for 1 more ammo of freeze magic');
writeln('------------------');
writeln('<7> for 1 more ammo of double hit magic');
writeln('------------------');
writeln('<8> for 1 more ammo of repel magic');
writeln('------------------');
writeln('<9> for 1 more level of burn magic');
writeln('------------------');
writeln('<10> for 1 more level of repel magic');
writeln('------------------');
readln(aaa);
if aaa<11 then
begin
if aaa=1 then
begin
hpl:=hpl+3;
end;
if aaa=2 then
begin
acrl:=acrl+3;
end;
if aaa=3 then
begin
strl:=strl+3;
end;
if aaa=4 then
begin
defl:=defl+3;
end;
if aaa=5 then
begin
inc(brnq);
end;
if aaa=6 then
begin
inc(frzq);
end;
if aaa=7 then
begin
inc(dhq);
end;
if aaa=8 then
begin
inc(rplq);
end;
if aaa=9 then
begin
inc(brnl);
end;
if aaa=10 then
begin
inc(rpll);
end;
end
else goto 100;
clrscr;
brnqd:=brnq;
frzqd:=frzq;
dhqd:=dhq;
rplqd:=rplq;
y:=false;
bnok:=true;
goto 4;
2:END.