回 帖 发 新 帖 刷新版面

主题:[原创]贪食蛇+扫雷 2 in 1 游戏,中文界面!!

这是lzl1403使用Turbo Pascal 7.0编的,我只不过是帮他贴上来的。

编译此程序必需的文件:
GRAPH.TPU    TP7自带
EGAVGA.BGI   TP7自带
GOTH.CHR     TP7自带
TSCR.CHR     TP7自带
HZK16       UCDOS 的16*16汉字点阵。具体请参阅[url]http://www.programfan.com/club/showbbs.asp?id=14025[/url]
另外,没有Crt补丁的请在此下载:
[url]http://www.mydrs.org/program/list.asp?id=136[/url]

首先运行这个安装来安装:
prooram setup;
begin
  assign(output,'hero.dat');
  rewrite(output);
  writeln(0);
  close(output);
end.

运行了安装程序并齐备必需文件后就可以玩游戏了:
PROGRAM biogame;
uses Graph,Crt,Dos;
label 99;
var
grDriver: Integer;
grMode: Integer;
ErrCode: Integer;
game:integer;
ch:char;
{==========OutChinese==============}
procedure putone(x,y:integer;s:string;color:integer);
type
    chinesep=array[1..32] of byte;
var
    a:chinesep;
    f:file of chinesep;
    i,j,x0,y0:integer;
    k:byte;
    q,w:longint;

begin
    q:=ord(s[1])-160;
    w:=ord(s[2])-160;
    q:=(q-1)*94+(w-1);
    assign(f,'HZK16') ;
    reset(f);
    if (q<0) or (q>=filesize(f)) then
      begin
         close(f);
         exit;
      end;
    seek(f,q);
    read(f,a);
    close(f);
    y0:=y;
    for i:=1 to 32 do
     begin
       k:=a[i];
       if i mod 2=1 then
         begin
           x0:=7+x;
           y0:=y0+1;
         end
        else
              x0:=15+x;
       for j:=1 to 8 do
        begin
           if k and 1 =1 then putpixel(x0,y0,color);
            x0:=x0-1;
            k:=k shr 1;
        end;
     end;
end;

procedure outchinese(x,y:integer;s:string;blank:integer; color:integer);
var
   temps:string;
   k:integer;
begin
   k:=1;
   while k<length(s) do
    begin
       temps:=s[k]; k:=k+1;
       temps:=temps+s[k]; k:=k+1;
       putone(x+(k div 2-1)*(16+blank),y,temps,color);
    end;
end;

PROCEDURE MineSweeper;
CONST
  maxsize=15;
  rnd:array[1..8,1..2]of shortint=((0,1),(1,0),(0,-1),(-1,0),(1,1),(-1,-1),(1,-1),(-1,1));
  bug='I will die!';

VAR
  grDriver: Integer;
  grMode: Integer;
  ErrCode: Integer;
  sign:array[0..maxsize,0..maxsize]of 1..3;{1:No put 2:Put 3:Sign}
  mine:array[0..maxsize,0..maxsize]of shortint;{-1:Mine 0:Safety 1..8:Danger}
  safe,sweep:array[0..maxsize,0..maxsize]of boolean;
  man:record
        x,y:word;
      end;
  size,hard,total:integer;
  ff,fk:boolean;
  hh,mm,ss,ms:integer;
  hh1,mm1,ss1,ms1,hh2,mm2,ss2,ms2:word;
  s:string;

回复列表 (共40个回复)

31 楼

。。。。。。。。。我头晕,请仔细解释一下每个是什么,谢谢

32 楼

好长啊,PASCAL都装不下了
[em10]

33 楼


狂顶!!!!
就是看不懂[em10]

34 楼

强啊!!!

35 楼

S T R O N G ! ! ! ! !

36 楼

强悍
分开写可能要轻松些。
呵呵

37 楼

汗,好长啊

38 楼

很好玩,谢谢

39 楼



40 楼

我对你的耐性表示反感

我来回复

您尚未登录,请登录后再回复。点此登录或注册