zoukankan      html  css  js  c++  java
  • 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;

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

     
    不要想你能为世界做什么,想想你该为世界做什么!
  • 相关阅读:
    adb使用项目导入等
    ThreadLocal类理解
    Spring MVC MyBatis
    Spring MVC原理图
    Spring MVC返回JSON的几种方法
    Understanding REST
    链表
    存储构造题(Print Check)
    线状DP(石子归并)
    线段树(与区间有关的操作)
  • 原文地址:https://www.cnblogs.com/Chaobs/p/3837502.html
Copyright © 2011-2022 走看看