最经典的PASCAL游戏!300行程序代码,超爽!
pascal吧
全部回复
仅看楼主
level 1
七里香猪 楼主
program joyxy; typeplayer = record level:integer; gjl:integer; fyl:integer; xue:integer; money:integer; maxxue:integer; map:integer; jy:integer; end;bag = record red:integer; back:integer; sl:integer; ttl:integer; end;monster = record gj:integer; fy:integer; xt:integer; jyz:integer; end;gjfs = record gj:integer; fy:integer; bx:integer; jb:integer; end;pet = record gj:integer; jx:integer; nm:string; live:integer; level:integer; end;var i,m,sjs,rsx,gsx,pd,qk,dqgj,dqfy,jnxz,rys:integer; role:player; bao:bag; ms:array[1..100] of monster; dqgw:monster; ml:string; jn:array [1..100] of gjfs; bb:pet;procedure js; begin role.level:= 1; role.gjl:=26; role.fyl:=20; role.maxxue:=100; role.xue:=100; role.map:=0; bao.red:=2;end;procedure gw; begin ms[1].gj:=21; ms[1].fy:=0; ms[1].xt:=100; ms[1].jyz:=12; ms[2].gj:=25; ms[2].fy:=10; ms[2].xt:=80; ms[2].jyz:=15; ms[3].gj:=45; ms[3].fy:=0; ms[3].xt:=250; ms[3].jyz:=45; ms[4].gj:=65; ms[4].fy:=20; ms[4].xt:=230; ms[4].jyz:=50; ms[5].gj:=250; ms[5].fy:=75; ms[5].xt:=500; ms[5].jyz:=90; ms[6].gj:=320; ms[6].fy:=83; ms[6].xt:=450; ms[6].jyz:=93; ms[7].gj:=1000; ms[7].fy:=400; ms[7].xt:=5000; ms[7].jyz:=120; ms[8].gj:=1000; ms[8].fy:=800; ms[8].xt:=8000; ms[8].jyz:=150; ms[9].gj:=10; ms[9].fy:=10; ms[9].xt:=5000; ms[9].jyz:=50;end;procedure skill; begin jn[1].gj:=0; jn[1].fy:=0; jn[1].bx:=0; jn[1].jb:=1; jn[2].gj:=10; jn[2].fy:=-5; jn[2].bx:=0; jn[2].jb:=1; jn[3].gj:=0; jn[3].fy:=0; jn[3].bx:=0; jn[3].jb:=1; jn[4].gj:=0; jn[4].fy:=0; jn[4].bx:=0; jn[4].jb:=1;end;procedure baobao; begin bb.gj:=3; bb.jx:=15; bb.live:=1; bb.nm:='红尘猪'; bb.level:=1;end;procedure cwgj; begin sjs:=random(10); if sjs=0 then begin if role.xue+bb.jx>role.maxxue then role.xue:=role.maxxue else role.xue:=role.xue+bb.jx; writeln('你的宠物 ', bb.nm ,' 为你加血',bb.jx,'点'); end else begin rys:=bb.gj+random(3)-1; dqgw.xt:=dqgw.xt-rys; writeln('你的宠物 ', bb.nm ,' 攻击怪物',rys,'点血'); end;end;procedure sj; begin role.level:= role.level+1; role.gjl:= role.gjl+10; role.fyl:= role.fyl+5; role.maxxue:=role.maxxue+25; role.xue:=role.maxxue;end;procedure hqwp; begin sjs:=random(20)+1; case sjs of 1: begin bao.red:=bao.red+1; writeln('获得金创药1个'); end; 6: begin role.xue:=role.maxxue; writeln('获得神佑,生命值回复到最大'); end; 7: begin role.gjl:=role.gjl+1; writeln('获得神佑,攻击力+1'); end; 8: begin role.fyl:=role.fyl+1; writeln('获得神佑,防御力+1'); end; 3: begin role.money:=role.money+sjs*10; writeln('获得金币',sjs*10); end; 9: begin role.money:=role.money+sjs*10; writeln('获得金币',sjs*10); end; 12: begin role.money:=role.money+sjs*10; writeln('获得金币',sjs*10); end; 13: begin bao.ttl:=bao.ttl+1; writeln('获得饕餮料1块'); end; 14: begin bao.ttl:=bao.ttl+1; writeln('获得饕餮料1块'); end; 15: begin bao.ttl:=bao.ttl+1; writeln('获得饕餮料1块'); end;
2008年02月04日 10点02分 1
level 1
七里香猪 楼主
16: begin bao.ttl:=bao.ttl+1; writeln('获得饕餮料1块'); end;end; writeln;end;procedure jypd; begin if role.jy>=role.level*role.level*50 then begin role.jy:=role.jy-role.level; sj; writeln('恭喜你升级! 剩余生命力:',role.xue,'/',role.maxxue,' 剩余金创药个数:',bao.red);end else writeln('升级剩余经验:',role.level*role.level*50-role.jy,' 剩余生命力:',role.xue,'/',role.maxxue,' 剩余金创药个数:',bao.red);end;procedure bxjc; beginif bao.red>0 then if role.xue+100>role.maxxue then begin role.xue:=role.maxxue; bao.red:=bao.red-1; writeln('生命力:',role.xue,'/',role.maxxue,' 剩余金创药个数:',bao.red); end else begin role.xue:=role.xue+100; bao.red:=bao.red-1; writeln('生命力:',role.xue,'/',role.maxxue,' 剩余金创药个数:',bao.red); end else writeln('没有足够的金创药!');end;procedure beforehuihe; begin writeln('请选择技能:'); if jn[1].jb=1 then write('1 普通攻击 '); if jn[2].jb=1 then write('2 豪龙破 '); if jn[3].jb=1 then write('3 狂龙乱舞 '); if jn[4].jb=1 then write('4 一斩封神 '); write('5 使用红药 '); writeln('6 使用卷轴逃跑'); readln(jnxz); for i:=1 to 4 do if (jnxz=i) and (jn[i].jb=1) then begin dqgj:=role.gjl+jn[i].gj; dqfy:=role.fyl+jn[i].fy; role.xue:=role.xue+jn[i].bx; end; if jnxz=5 then begin dqgj:=role.gjl; dqfy:=role.fyl; bxjc; end; if jnxz=6 then begin writeln('回城卷轴功能未开放!'); beforehuihe; end;end;procedure gwpd; begin sjs:=random(10)+1; case role.map of 1 :if sjs<8 then begin dqgw.gj:=ms[1].gj; dqgw.fy:=ms[1].fy; dqgw.xt:=ms[1].xt; dqgw.jyz:=ms[1].jyz; writeln('遭遇怪物绿草球!'); end else begin dqgw.gj:=ms[2].gj; dqgw.fy:=ms[2].fy; dqgw.xt:=ms[2].xt; dqgw.jyz:=ms[2].jyz; writeln('头盔鸭袭来!') ;end; 2 :if sjs <10 then if sjs<7 then begin dqgw.gj:=ms[3].gj; dqgw.fy:=ms[3].fy; dqgw.xt:=ms[3].xt; dqgw.jyz:=ms[3].jyz; writeln('遭遇怪物爱磨牙的小猫!'); end else begin dqgw.gj:=ms[4].gj; dqgw.fy:=ms[4].fy; dqgw.xt:=ms[4].xt; dqgw.jyz:=ms[4].jyz; writeln('红角小魔羊袭来!') ;end else begin dqgw.gj:=ms[9].gj; dqgw.fy:=ms[9].fy; dqgw.xt:=ms[9].xt; dqgw.jyz:=ms[9].jyz; writeln('玩偶小子!'); end; 3 :if sjs<8 then begin dqgw.gj:=ms[5].gj; dqgw.fy:=ms[5].fy; dqgw.xt:=ms[5].xt; dqgw.jyz:=ms[5].jyz; writeln('遭遇怪物尖耳弥狼!'); end else begin dqgw.gj:=ms[6].gj; dqgw.fy:=ms[6].fy; dqgw.xt:=ms[6].xt; dqgw.jyz:=ms[6].jyz; writeln('冰狼将军袭来!') ;end; 4 :if sjs<8 then begin dqgw.gj:=ms[7].gj; dqgw.fy:=ms[7].fy; dqgw.xt:=ms[7].xt; dqgw.jyz:=ms[7].jyz; writeln('遭遇怪物海蜇!'); end else begin dqgw.gj:=ms[8].gj; dqgw.fy:=ms[8].fy; dqgw.xt:=ms[8].xt; dqgw.jyz:=ms[8].jyz; writeln('大白鲨袭来!') ;end; end;end;procedure duringhuihe; begin gsx:=dqgj-dqgw.fy+random(11)-5; dqgw.xt:=dqgw.xt-gsx; rsx:=dqgw.gj-dqfy+random(11)-5; if rsx>0 then role.xue:=role.xue-rsx; if gsx>=0 then write('怪物被你攻击掉',gsx,'点血 ') else write('怪物反噬你',0-gsx,'点血 ');
2008年02月04日 10点02分 2
level 0
这....可以玩?FP能显示中文?
2008年02月07日 07点02分 4
level 0
楼猪sb。鉴定完毕。。。(不要剽窃哦~~);
2008年02月08日 09点02分 5
level 1
继续
2008年02月08日 22点02分 6
level 0
FP当然能运行中文!楼上几个SB不知道就别乱叫
2008年02月12日 15点02分 7
level 0
见过好几次了……
2008年03月08日 13点03分 8
level 0
见过好几次了……
2008年03月08日 13点03分 9
level 6
那个...你再学一会就会发现不如用delph编有图版轻松..
2008年03月11日 05点03分 10
level 0
怎么使用?
2008年03月15日 10点03分 11
level 2
程序要写完啊!!要不怎么玩啊
2009年11月12日 04点11分 12
level 2
主程序在哪里?
2009年11月12日 04点11分 13
level 0
另一半哪去了???
2009年12月29日 06点12分 14
level 1
同问。
2010年04月13日 09点04分 15
level 0
很明显,3楼被[我踢]
2010年05月09日 03点05分 16
level 0
Where is 三楼?
2010年05月15日 10点05分 17
level 0
[我踢]
2010年05月18日 12点05分 19
level 4
if dqgw.xt>=0 then writeln('怪物剩余生命力:',dqgw.xt) else writeln('怪物剩余生命力:0');
    if rsx>0 then write('你被怪物攻击掉',rsx,'点血      ') else write('防守成功!    Miss!      ');
    if role.xue>=0 then writeln('你的生命力:',role.xue,'/',role.maxxue) else writeln('在阎王爷面前晃了一圈!生命力
:0');
end;
procedure death;
begin
    writeln('游戏结束,输入『end』退出游戏');
    readln(ml);
    while ml<>'end' do begin writeln('死人是不能操作滴!'); readln(ml); end;
    halt;
end;
procedure daguai;   
begin
    gwpd;
    writeln('战斗开始');
    repeat
    beforehuihe;
    duringhuihe;
    if bb.live=1 then cwgj;
    until (dqgw.xt<=0) or (role.xue<=0);
    if dqgw.xt<=0 then begin writeln;
      writeln('战斗结束!');
      writeln('怪物死亡,获得',dqgw.jyz,'点经验!');
      role.jy:=role.jy+dqgw.jyz;    end;
    if role.xue<=0 then begin
      writeln('胜败乃兵家常事,待我卷土重来!');
      death;
    end;
    hqwp;
    jypd;
end;
procedure daguai2;   
begin
    gwpd;
    writeln('战斗开始');
    repeat
    gsx:=role.gjl-dqgw.fy+random(11)-5;
    dqgw.xt:=dqgw.xt-gsx;
    rsx:=dqgw.gj-role.fyl+random(11)-5;
    if rsx>0 then role.xue:=role.xue-rsx;
    if gsx>=0 then writeln('怪物被你攻击掉',gsx,'点血') else writeln('怪物反噬你',0-gsx,'点血');
    if rsx>0 then writeln('你被怪物攻击掉',rsx,'点血') else writeln('防守成功!    Miss!');
    if bb.live=1 then cwgj;
    until (dqgw.xt<=0) or (role.xue<=0);
    if dqgw.xt<=0 then begin
      writeln('战斗结束!');
      writeln('怪物死亡,获得',dqgw.jyz,'点经验!');    writeln;
      role.jy:=role.jy+dqgw.jyz;    end;
    if role.xue<=0 then begin
      writeln('胜败乃兵家常事,待我卷土重来!');
      death;
    end;
    hqwp;
    jypd;
end;
procedure whichmap;
begin
case role.map of
    0: writeln('当前地图:新手村!');
    1: writeln('当前地图:蓬莱岛!');

2010年05月23日 04点05分 20
level 4
多发了一次,吧主删21楼吧
2010年05月23日 04点05分 22
1 2 尾页