一个双人的游戏 Pascal源码附上

只要俩人不脑残,一下午玩不完。。。
又是控制台游戏中的一朵奇葩。
Free Pascal 射击游戏
Program shooting_game;
uses crt;
const cz:array[1..4,1..2] of -1..1=((0,1),(1,0),(0,-1),(-1,0));
var i,j,xz1,yz1,y1,xz2,yz2,y2,t1,t2,t3,k,v1,v2:integer;
    ch:char;
    a:array[1..20] of integer;

procedure priter;
begin
     gotoxy(1,1);
     textbackground(green);
     for i:=1 to 20 do
     begin
          for j:=1 to 40 do
              write(' ');
          writeln;
     end;
end;
procedure priv;
begin
     gotoxy(1,1);
     write('v1:',v1:3,'               v2:',v2:2);
end;
procedure start;
begin
     priter;
     textcolor(black);
     textbackground(green);
     gotoxy(1,1);
     write('Really?  ');
     ch:=readkey;
     for i:=3 downto 1 do
     begin
          write(i);
          sound(1871);
          delay(500);
          nosound;
          delay(500);
          write(#8);
     end;
     write('Go!!!');
     sound(2500);
     delay(500);
     nosound;
end;
procedure GameOver(p:integer);
begin
     if p=1 then begin gotoxy(1,y1);write(']*');end;
     if p=2 then begin gotoxy(39,y2);write('*[');end;
     textcolor(green);
     textbackground(black);
     gotoxy(10,10);
     p:=3-p;
     write('Player  ',p:1,'  is Win!!!');
     repeat ch:=readkey;until ord(ch)=13;
     textbackground(black);
     ClrScr;
     halt;
end;
procedure over(p:integer);
begin
     if p=1 then begin dec(v1);gotoxy(1,y1);write(']*');end;
     if p=2 then begin dec(v2);gotoxy(39,y2);write('*[');end;
     priv;
     if v1=0 then gameover(1);
     if v2=0 then gameover(2);
end;
procedure go;
begin
     textbackground(black);
     ClrScr;
     for i:=1 to 20 do a[i]:=38;
     textbackground(green);
     textcolor(black);
     priter;
     gotoxy(1,2);
     y1:=1;
     write(']>');
     gotoxy(39,2);
     write('<[');
     gotoxy(1,1);
     y1:=2;t1:=0;t2:=0;t3:=0;y2:=2;v1:=10;v2:=10;
     priv;
     while true do
     begin
          delay(1);
          inc(t1,1);
          if t1=1000 then
          begin
               inc(t2);
               if t2=60 then begin t2:=0;inc(t3);end;
          end;
          if keypressed then
          begin
               ch:=readkey;
               if (ch='i') and (y1>2) then
               begin
                    gotoxy(1,y1);
                    write('  ');
                    dec(y1);
                    gotoxy(1,y1);
                    write(']>');
               end;
               if (ch='k') and (y1<20) then
               begin
                    gotoxy(1,y1);
                    write('  ');
                    inc(y1);
                    gotoxy(1,y1);
                    write(']>');
               end;
               if (ch='q') then break;
               if (ch='f')and(xz1=0) then
               begin
                    xz1:=3;
                    yz1:=y1;
               end;
               {play2}
               if (ch='8') and (y2>2) then
               begin
                    gotoxy(39,y2);
                    write('  ');
                    dec(y2);
                    gotoxy(39,y2);
                    write('<[');
               end;
               if (ch='5') and (y2<20) then
               begin
                    gotoxy(39,y2);
                    write('  ');
                    inc(y2);
                    gotoxy(39,y2);
                    write('<[');
               end;
               if (ch='0')and(xz2=0) then
               begin
                    xz2:=37;
                    yz2:=y2;
               end;
          end;{end of keyprssed}
          if (t1 mod 5=0)and(xz1<>0) then
          begin
               if xz1>38 then
               begin
                    gotoxy(xz1,yz1);
                    write('  ');
                    if yz1=y2 then Over(2);
                    xz1:=0;
                    yz1:=0;
               end
               else
               begin
                    gotoxy(xz1,yz1);
                    write(' .');
                    inc(xz1);
               end;
          end;
          {play2}
          if (t1 mod 5=0)and(xz2<>0) then
          begin
               if xz2<2 then
               begin
                    gotoxy(xz2,yz2);
                    write(' ');
                    if yz2=y1 then Over(1);
                    xz2:=0;
                    yz2:=0;
               end
               else
               begin
                    gotoxy(xz2-1,yz2);
                    write('. ');
                    dec(xz2);
               end;
          end;
     end;{end of while}
end; {end of go}
begin
     start;
     go;
end.
 
 

Pascal小游戏 双人射击的更多相关文章

  1. Pascal小游戏 不要消灭星星

    不要消灭星星 Pascal小游戏 Chaobs改编自pascal吧 控制台小游戏嘛,就当是练习一下结构化的写法. program wxtw; uses crt; type      zbdy=reco ...

  2. Pascal小游戏 文件的产生

    一个整人的Pascal小程序 运行之后硬盘里面会有一大堆垃圾,当然更好的方法当然不是这样做! var a,b,c,d:char;beginfor a:='0' to '9' dofor b:='0' ...

  3. Pascal小游戏之奇葩的RPG

    Pascal吧友作品 一个小RPG Chaobs转载 varplife,plifemax,patt,pre:integer;gr,ex,exmax:integer;alife,alife1,aatt, ...

  4. Pascal小游戏 俄罗斯方块怀旧版

    俄罗斯方块怀旧版(注释版) {$APPTYPE GUI}{$MODE DELPHI}program WinPiece; usesWindows; constAppName = 'WinPiece';p ...

  5. Pascal小游戏 随机函数

    一个被人写滥了的小程序,新手学习,Pascal By Chaobs 初学者可以用它来学习随机函数的运用,当然你完全可以自己写一个随机函数. var   player1,player2:longint; ...

  6. Pascal小游戏 打飞机

    一个经典的打飞机游戏(1)Pascal代码 十分经典,有一种街机的感觉 奇葩青年的又一控制台神作. uses crt; type list=record         ty,ax:integer;  ...

  7. Pascal小游戏 井字棋

    一个很经典的井字棋游戏 Pascal源码Chaobs奉上 注意:1.有的FP版本不支持汉语,将会出现乱码.2.别想赢电脑了,平手不错了. 井字过三关: program TicTacToe; uses ...

  8. Pascal小游戏 贪吃蛇

    一段未完成的Pascal贪吃蛇 说这段代码未完成其实是没有源代码格式化,FP中一行最多只有255字符宽. uses crt; const screenwidth=50; screenheight=24 ...

  9. Pascal小游戏 俄罗斯方块

    俄罗斯方块已经成为了和“Hello World”一样的程序了吧? 不要直接复制,可能需要事先 Format. program cube;uses crt,graph,dos;var gd,gm:sma ...

随机推荐

  1. org.apache.xmlbeans.XmlException: error: does not close tag

    使用myeclipse的jax自动生成webservice , 或者serviceImpl通过@webservice来实现webservice时, 使用soap UI (我测试使用的版本 5.2.1) ...

  2. 【转】C内存操作函数

    一.malloc/calloc 名称: Malloc/calloc 功能:  动态内存分配函数 头文件: #include <stdlib.h> 函数原形: void *malloc(si ...

  3. java研发常见问题总结 1

    1.java中所有类的父类是什么?他都有什么方法? Object类是所有类的直接或间接基类,如果一个类在声明时未继承基类,Java就默认其基类是Object,故Object被称为根类.该类位于java ...

  4. 少年开始学习c#编程,过路的大神请担待!

    这应该真正算开始学习编程, 安装好了 linux, 开通了博客员的博客, 同时今天也需要把sublime安好, 安装MonoDevelop Codeblocks mysql-workbench 配置好 ...

  5. IOS照相机的启动,图片的读取,存储demo

    #import @interface ViewController : UIViewController@property (retain, nonatomic) IBOutlet UIImageVi ...

  6. 进程管理—进程描述符(task_struct)

    http://blog.csdn.net/qq_26768741/article/details/54348586 当把一个程序加载到内存当中,此时,这个时候就有了进程,关于进程,有一个相关的叫做进程 ...

  7. N76E003---看门狗

    看门狗的设置 比较简单,根据芯片手册上的说明进行设置.值得一提的是设置看门狗的寄存器是保护寄存器,所以在写寄存器的时候要解除保护 void wtd_init(void) { TA=0xAA; TA=0 ...

  8. Linux赋予普通用户root权限

    本文以新建用户admin来举例,请自行替换自己需要的用户 方法一: vi编辑 /etc/sudoers 文件,找到 root    ALL=(ALL)     ALL,在下面添加一行,如下所示: ## ...

  9. jquery操作元素的位置

    .offset() 在匹配的元素中,获取第一个元素的当前坐标,或设置每一个元素的坐标,坐标相对于文档. .offset() 这个不接受任何参数. var offset = p.offset(); // ...

  10. UOJ#179. 线性规划(线性规划)

    描述 提交 自定义测试 这是一道模板题. (这个题现在标程挂了..哪位哥哥愿意提供一下靠谱的标程呀?) 本题中你需要求解一个标准型线性规划: 有 nn 个实数变量 x1,x2,…,xnx1,x2,…, ...