Pascal小游戏 双人射击
一个双人的游戏 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小游戏 双人射击的更多相关文章
- Pascal小游戏 不要消灭星星
不要消灭星星 Pascal小游戏 Chaobs改编自pascal吧 控制台小游戏嘛,就当是练习一下结构化的写法. program wxtw; uses crt; type zbdy=reco ...
- Pascal小游戏 文件的产生
一个整人的Pascal小程序 运行之后硬盘里面会有一大堆垃圾,当然更好的方法当然不是这样做! var a,b,c,d:char;beginfor a:='0' to '9' dofor b:='0' ...
- Pascal小游戏之奇葩的RPG
Pascal吧友作品 一个小RPG Chaobs转载 varplife,plifemax,patt,pre:integer;gr,ex,exmax:integer;alife,alife1,aatt, ...
- Pascal小游戏 俄罗斯方块怀旧版
俄罗斯方块怀旧版(注释版) {$APPTYPE GUI}{$MODE DELPHI}program WinPiece; usesWindows; constAppName = 'WinPiece';p ...
- Pascal小游戏 随机函数
一个被人写滥了的小程序,新手学习,Pascal By Chaobs 初学者可以用它来学习随机函数的运用,当然你完全可以自己写一个随机函数. var player1,player2:longint; ...
- Pascal小游戏 打飞机
一个经典的打飞机游戏(1)Pascal代码 十分经典,有一种街机的感觉 奇葩青年的又一控制台神作. uses crt; type list=record ty,ax:integer; ...
- Pascal小游戏 井字棋
一个很经典的井字棋游戏 Pascal源码Chaobs奉上 注意:1.有的FP版本不支持汉语,将会出现乱码.2.别想赢电脑了,平手不错了. 井字过三关: program TicTacToe; uses ...
- Pascal小游戏 贪吃蛇
一段未完成的Pascal贪吃蛇 说这段代码未完成其实是没有源代码格式化,FP中一行最多只有255字符宽. uses crt; const screenwidth=50; screenheight=24 ...
- Pascal小游戏 俄罗斯方块
俄罗斯方块已经成为了和“Hello World”一样的程序了吧? 不要直接复制,可能需要事先 Format. program cube;uses crt,graph,dos;var gd,gm:sma ...
随机推荐
- MD5的32位加密方法
/// <summary> /// MD532位加密方式 /// </summary> /// <param name="str">用户原始密码 ...
- CORS跨域请求的限制和解决
我们模拟一个跨域的请求,一个是8888,一个是8887 //server.js const http = require('http'); const fs = require('fs'); http ...
- Visual Studio 2013 ReportViewer Control
最近需要给学生讲报表,.NET的自然就是选择RDLC了. 因为学生比赛是用Visual Studio 2013,所以我在自己的笔记本上安装了Visual Studio 2013(平常是用2010),安 ...
- EF 集合版 增删查改
- Eclipse 修改默认工作空间
第一次启动Eclipse时会弹出对话框,让你进行Workspace Launcher,也就是设置Eclipse的项目存放路径.但是,当你勾选“Use this as the default and d ...
- vue项目中的函数封装
项目中一般都会有fun.js这类的文件,里面有各种的如转换时间格式的,处理转换的等等函数方法. 其实经常用到的去获取基本数据的接口也可以封装成一个方法,方便复用. 如上面所标,获取列表数据之前需要先获 ...
- windows服务器配置tomcat开机自动启动
背景:最近在做服务器部署的工作,开始的时候都是手动将tomcat进行启动的,但是在遇到几次服务器重启后发现这样太过麻烦,影响项目运行,故事就从这里开始了. 我们的项目是使用spring-boot进行开 ...
- linux 安装 zookeeper
第一步 下载 zookeeper: http://archive.apache.org/dist/zookeeper/ 第二步 解压: tar -xzvf zookeeper-3.4.5.tar.gz ...
- Spring Security 简介
本文引自:https://blog.csdn.net/xlecho/article/details/80026527 在 Web 应用开发中,安全一直是非常重要的一个方面.安全虽然属于应用的非功能性需 ...
- 用ajax获取淘宝关键字接口
可定需要查看淘宝界面的结构,按F12查看网页,此时先清除一下网页中的数据,让Network制空,随后在输入框中输入新的内容,比如钱包,数据中会出现新的数据.点击及查看蓝色方框中的内容 点击之后,你可以 ...