首页 > 代码库 > Pascal小游戏之奇葩的RPG

Pascal小游戏之奇葩的RPG

Pascal吧友作品 一个小RPG

Chaobs转载

var
plife,plifemax,patt,pre:integer;
gr,ex,exmax:integer;
alife,alife1,aatt,are:integer;
name,fname:string;
na:text;
code,co:string;
dz:integer;
money:longint;
mp,mpmax:integer;
red,blue,knife,clothes:integer;
i:integer;
god:array[1..100] of 1..7;
godthing:integer;
procedure bag;
var
obj:integer;
begin
writeln;
writeln;
writeln(‘百宝箱:‘);
writeln(‘1:红色药丸: ‘,red,‘ 2:兰色药丸: ‘,blue,‘ 3:神剑:‘,knife,‘ 4:防身衣:‘,clothes,‘ 5;离开‘);
writeln;
writeln;
writeln(‘请选择:‘);
repeat
readln( obj);
case obj of
1:begin
if red>0 then begin
red:=red-1;
plife:=plife+40;
if plife>plifemax then plife:=plifemax;
end;
end;
2:begin
if blue>0 then begin
blue:=blue-1;
mp:=mp+40;
if mp>mpmax then mp:=mpmax;
end;
end;
3:begin
if knife>0 then begin
knife:=knife-1;
patt:=patt+15;
end;
end;
4:begin
if clothes>0 then begin
clothes:=clothes-1;
pre:=pre+15;
end;
end;
end;
writeln;
writeln;
writeln;
until obj=5;
exit;
end;


procedure bagplus(sh:integer);
begin
case sh of
1:red:=red+1;
2:blue:=blue+1;
3:knife:=knife+1;
4:clothes:=clothes+1;
end;
end;

 

procedure shop;
var
ob:integer;
begin
writeln;
writeln;
writeln(‘欢迎来到商店!‘);
writeln(‘ 1:红色药丸 2:兰色药丸 3:神剑 4:防身衣 5:离开‘);
writeln(‘ $15 $15 $30 $30‘);
writeln;
writeln(‘你想买什么?‘);
writeln;
repeat
readln(ob);
case ob of
1:begin
if money>=15 then
begin
money:=money-15;
bagplus(1);
writeln(‘OK!‘);
writeln(‘ 1:红色药丸 2:兰色药丸 3:神剑 4:防身衣 5:离开‘);
writeln(‘ $15 $15 $30 $30‘);
writeln;
writeln(‘你想买什么?‘);
writeln;
end
else writeln(‘钱不够啊,老大!‘);
end;
2:begin
if money>=15 then
begin
money:=money-15;
bagplus(2);
writeln(‘OK!‘);
writeln(‘ 1:红色药丸 2:兰色药丸 3:神剑 4:防身衣 5:离开‘);
writeln(‘ $15 $15 $30 $30‘);
writeln;
writeln(‘你想买什么?‘);
writeln;
end
else writeln(‘钱不够啊,老大!‘);
end;

3:begin
if money>=30 then
begin
money:=money-30;
bagplus(3);
writeln(‘OK!‘);
writeln(‘ 1:红色药丸 2:兰色药丸 3:神剑 4:防身衣 5:离开‘);
writeln(‘ $15 $15 $30 $30‘);
writeln;
writeln(‘你想买什么?‘);
writeln;
end
else writeln(‘钱不够啊,老大!‘);
end;

4:begin
if money>=30 then
begin
money:=money-30;
bagplus(4);
writeln(‘OK!‘);
writeln(‘ 1:红色药丸 2:兰色药丸 3:神剑 4:防身衣 5:离开‘);
writeln(‘ $15 $15 $30 $30‘);
writeln;
writeln(‘你想买什么?‘);
writeln;
end
else writeln(‘钱不够啊,老大!‘);
end;

end;
until ob=5;
exit;
end;

procedure storm;
var
ka,kp:integer;
begin
if mp>=30 then begin
writeln;
writeln;
writeln(‘破天一剑!!!!!!!!!!‘);
writeln(‘ 怪物生命:‘,alife1);
writeln(‘你的生命:‘,plife,‘/‘,plifemax);
kp:=(random(patt)-random(are))*33; ;
if kp>0 then begin
writeln(‘攻击!!怪物得到‘,kp,‘ 伤害!·!‘);
alife1:=alife1-kp;
end
else begin
writeln(‘你无法攻击‘);
end;
ka:=aatt-pre+random(aatt div 4)-aatt div 2;
if ka>0 then begin
writeln(‘怪物攻击!!你得到‘,ka,‘ 伤害!·!‘);
plife:=plife-ka;
end
else begin
writeln( ‘ 怪物无法攻击‘);
end;
mp:=mp-30;
end
else writeln(‘魔力不够!!‘);


end;


procedure wall;
var
ka,kp:integer;
begin
if mp>=15 then begin
writeln;
writeln;
writeln(‘你用雷光!!!!‘);
writeln(‘怪物生命:‘,alife1);
writeln(‘你的生命:‘,plife,‘/‘,plifemax);
kp:=(random(patt)-random(are))*26;
if kp>0 then begin
writeln(‘攻击!!怪物得到‘,kp,‘ 伤害!·!‘);
alife1:=alife1-kp;
end
else begin
writeln(‘你输了‘);
end;
ka:=aatt-pre+random(aatt div 4)-aatt div 2;
if ka>0 then begin
writeln(‘怪物攻击!!你得到‘,ka,‘ 伤害!·!‘);
plife:=plife-ka;
end
else begin
writeln( ‘ 你赢了!!!!!‘);
end;
mp:=mp-10;
end
else writeln(‘生命不够!!‘);
end;


procedure ball;
var
ka,kp:integer;
begin
if mp>=5 then begin
writeln;
writeln;
writeln(‘你用粉碎神拳!!!‘);
writeln(‘怪物生命:‘,alife1);
writeln(‘你的生命:‘,plife,‘/‘,plifemax);
kp:=(random(patt)-random(are))*20;
if kp>0 then begin
writeln(‘攻击!!怪物得到‘,kp,‘ 伤害!·!‘);
alife1:=alife1-kp;
end
else begin
writeln(‘你输了‘);
end;
ka:=aatt-pre+random(aatt div 4)-aatt div 2;
if ka>0 then begin
writeln(‘怪物攻击!!你得到‘,ka,‘ 伤害!·!‘);
plife:=plife-ka;
end
else begin
writeln( ‘ 你赢了!!!!!‘);
end;
mp:=mp-10;
end
else writeln(‘生命不够!!‘);
end;


procedure magic;
var
ma:integer;

begin
writeln;
writeln;
writeln(‘1. 粉碎神拳 [5] 2. 雷光 [15] 3.破天一剑 [30]‘);
writeln(‘魔法值: ‘,mp,‘/‘,mpmax);
read(ma);
case ma of
1:ball;
2:wall;
3:storm;
end;
end;

 


procedure plusmoney;
var
money1:longint;
begin
money1:=random(alife);
writeln;
writeln;
writeln(‘你得到 $‘,money1);
money:=money1+money;
end;


procedure load;
begin
close(na);
writeln;
writeln;
writeln(‘你的名字: ‘);
readln;
readln(name);
fname:=concat(name,‘.txt‘);
assign(na,fname);
reset(na);
readln(na,code);
writeln(‘输入密码:‘);
readln(co);
if co<>code then
begin
writeln(‘密码错误‘);
readln;
halt;
end;
readln(na,plife);
readln(na,plifemax);
readln(na,patt);
readln(na,pre);
readln(na,ex);
readln(na,exmax);
readln(na,gr);
readln(na,money);
readln(na,mp);
readln(na,mpmax);
readln(na,red);
readln(na,blue);
readln(na,knife);
readln(na,clothes);
end;


procedure save;
var i:integer;
begin
close(na);
assign(na,fname);
rewrite(na);
writeln(na,code);
writeln(na,plife);
writeln(na,plifemax);
writeln(na,patt);
writeln(na,pre);
writeln(na,ex);

writeln(na,exmax);
writeln(na,gr);
writeln(na,money);
writeln(na,mp);
writeln(na,mpmax);
writeln(na,red);
writeln(na,blue);
writeln(na,knife);
writeln(na,clothes);
writeln(na,godthing);
for i:=1 to godthing do writeln(god[i]);
writeln;
writeln;
writeln(‘save successfully‘);
writeln;
writeln;
end;

procedure see;var i:integer;
begin
writeln(‘你的名字: ‘,name);
writeln(‘你的生命: ‘,plife,‘/‘,plifemax);
writeln(‘攻击力: ‘,patt);
writeln(‘防御力: ‘,pre);
writeln(‘经验: ‘,ex);
writeln(‘升级经验‘,exmax);
writeln(‘级数: ‘,gr);
writeln(‘钞票:‘,money);
writeln(‘魔力: ‘,mp,‘/‘,mpmax);
write(‘光之七神器:‘);for i:=1 to godthing do write(god[i],‘ ‘);
writeln;
writeln(‘百宝箱:‘);
writeln(‘红色药丸:‘,red);

 

 

writeln(‘兰色药丸:‘,blue);
writeln(‘神剑:‘ ,knife);
writeln(‘防身衣:‘,clothes);
writeln;
writeln;

end;

procedure people;
begin
plife:=100;
plifemax:=100;
patt:=20;
pre:=15;
money:=100;
gr:=1;
ex:=0;
exmax:=20;
mp:=50;
mpmax:=50;
red:=5;
blue:=5;
knife:=0;
clothes:=0;
end;


procedure old;
var i:integer;
begin
writeln(‘输入你的名字 :‘);
readln;
readln(name);
fname:=concat(name,‘.txt‘);
assign(na,fname);
reset(na);
readln(na,code);
writeln(‘输入密码:‘);
readln(co);
if co<>code then
begin
writeln(‘密码错误!‘);
readln;
halt;
end;
readln(na,plife);
readln(na,plifemax);
readln(na,patt);
readln(na,pre);
readln(na,ex);
readln(na,exmax);
readln(na,gr);
readln(na,money);
readln(na,mp);
readln(na,mpmax);
readln(na,red);
readln(na,blue);
readln(na,knife);
readln(na,clothes);
readln(na,godthing);
for i:=1 to godthing do readln(god[i]);
end;


procedure new;
var i:integer;
begin
writeln( ‘ 输入你的名字: ‘);
readln;
readln(name);
if name<>‘0‘ then begin
fname:=concat(name,‘.txt‘);
assign(na,fname);
rewrite(na);
writeln(‘输入密码‘);
readln(code);
writeln(na,code);
people;
writeln(na,plife);
writeln(na,plifemax);
writeln(na,patt);
writeln(na,pre);
writeln(na,ex);
writeln(na,exmax);
writeln(na,gr);
writeln(na,money);
writeln(na,mp);
writeln(na,mpmax);
writeln(na,red);
writeln(na,blue);
writeln(na,knife);
writeln(na,clothes);
writeln(godthing);
for i:=1 to godthing do writeln(god[i]);
end
else halt;
end;

procedure denlu;
var
dl:byte;
begin
writeln(‘-------------------自制的游戏不要笑----------------------‘);
writeln(‘-----------------------仅供娱乐----------------------‘);
writeln(‘1: 新游戏 2:老游戏 3:退出‘);
read(dl);
case dl of
1:new;
2:old;
3:halt;
end;
end;

procedure godthing2;
var
qi:integer;
begin
randomize;
qi:=random(50);
case qi of
0,8:begin
writeln(‘得到光之七神具----1:辟天宝剑‘);
writeln(‘攻击增加60点!!!‘);
patt:=patt+60;
godthing:=godthing+1;

 //此处没写完了,有大神就帮着补全吧,这个我不想玩了!