切换到宽版
  • 29860阅读
  • 12回复

请删除此帖 [复制链接]

上一主题 下一主题
离线liuzhijian
 

只看楼主 倒序阅读 0 发表于: 2007-11-08
— 本帖被 stevenjl 执行取消锁定操作(2017-10-18) —
请删除此帖
离线lidclidc
只看该作者 1 发表于: 2007-11-09
似乎不能用
离线syc_pascal
只看该作者 2 发表于: 2007-11-09
怎么写中文???  
I KNOW I CAN!
你行,我也行!
你傻,我不傻!
全面落实社会主义骗分观,学习三个代表的成功骗分精神!
离线percy_yu
只看该作者 3 发表于: 2007-11-13
hao
离线45955778scj
只看该作者 4 发表于: 2007-12-15
不错 就是太单调了
离线peterh
只看该作者 5 发表于: 2008-01-09
你这也能算游戏,看我来一个推BOX:
BOX.pas
program ex;
uses graph,crt,wincrt,windows;
  label 1,2;
  type kn=record
            x,y:integer;
          end;
  var a,a1,a2:array[1..100,1..100]of char;
      m,n,i,j,top:integer;
      ch:char;
      st,st1:string;
      man:kn;
      f:text;
      s1,s2:integer;
      t1,t2,t3,t4,t11,t12,t13,t14:word;
      box:array[1..100]of kn;
      errcode,gd,gm,k,z:integer;
  procedure man1(x,y:integer);
  var i,j:integer;
  begin
    setcolor(green);
    for i:=x to x+30 do
      line(i,y,i,y+30);
    setcolor(red);
    line(x+10,y,x+20,y);
    line(x+10,y,x+5,y+10);
    line(x+20,y,x+25,y+10);
    line(x,y+10,x,y+20);
    line(x+29,y+10,x+29,y+20);
    for i:=13 to 17 do
      line(x+i,y,x+i,y+10);
    for i:=10 to 20 do
      line(x,y+i,x+29,y+i);
    circle(x+5,y+25,3);
    circle(x+25,y+25,3);
  end;
  procedure x_ground(x,y:integer);
  var i,j:integer;
  begin
    setcolor(green);
    for i:=x to x+30 do
      line(i,y,i,y+30);
    setcolor(13);
    for i:=x+13 to x+17 do
      line(i,y+13,i,y+17);
    circle(x+15,y+15,5);
  end;
  procedure x_box(x,y:integer);
  var i,j:integer;
  begin
    setcolor(13);
    for i:=x to x+30 do
      line(i,y,i,30+y);
    setcolor(red);
    line(x,y,x,30+y);
    line(x,30+y,30+x,30+y);
    line(30+x,30+y,30+x,y);
    line(30+x,y,x,y);
    line(x,y+6,x+30,y+6);
    line(x,y+24,x+30,y+24);
    line(x+6,y+6,x+6,y+24);
    line(x+24,y+6,x+24,y+24);
    line(x+6,y+9,x+24,y+9);
    line(x+6,y+12,x+24,y+12);
    line(x+6,y+15,x+24,y+15);
    line(x+6,y+18,x+24,y+18);
    line(x+6,y+21,x+24,y+21);
    circle(x+3,y+3,1);
    circle(x+27,y+27,1);
    circle(x+27,y+3,1);
    circle(x+3,y+27,1);
  end;
  procedure ground(x,y:integer);
  var i,j:integer;
  begin
    setcolor(green);
    for i:=x to x+30 do
      line(i,y,i,y+30);
  end;
  procedure wall(x,y:integer);
  var i,j:integer;
  begin
    setcolor(red);
    for i:=x to x+30 do
      line(i,y,i,30+y);
    setcolor(white);
    i:=y;
    while i<=30+y do
      begin
        line(x,i,30+x,i);
        i:=i+5;
      end;
    for i:=1 to 3 do
      begin
        line(x,y+(i-1)*10,x,y+i*10-5);
        line(x+10,y+(i-1)*10,x+10,y+i*10-5);
        line(x+20,y+i*10-10,x+20,y+i*10-5);
      end;
    for i:=1 to 3 do
      for j:=1 to 3 do
        line(x+i*10-5,y+j*10-5,x+i*10-5,y+j*10);
  end;
  procedure box1(x,y:integer);
  var i,j:integer;
  begin
    setcolor(yellow);
    for i:=x to x+30 do
      line(i,y,i,30+y);
    setcolor(red);
    line(x,y,x,30+y);
    line(x,30+y,30+x,30+y);
    line(30+x,30+y,30+x,y);
    line(30+x,y,x,y);
    line(x,y+6,x+30,y+6);
    line(x,y+24,x+30,y+24);
    line(x+6,y+6,x+6,y+24);
    line(x+24,y+6,x+24,y+24);
    line(x+6,y+9,x+24,y+9);
    line(x+6,y+12,x+24,y+12);
    line(x+6,y+15,x+24,y+15);
    line(x+6,y+18,x+24,y+18);
    line(x+6,y+21,x+24,y+21);
    circle(x+3,y+3,1);
    circle(x+27,y+27,1);
    circle(x+27,y+3,1);
    circle(x+3,y+27,1);
  end;
  function ok:boolean;
    var i,j:integer;
    begin
      for i:=1 to m do
        for j:=1 to n do
          if a[i,j]='B' then
            begin
              ok:=true;
              exit;
            end;
      ok:=false;
    end;
  procedure print;
    var i,j:integer;
    begin
      top:=0;
{      textbackground(blue);
      textcolor(yellow);
      gotoxy(1,2);
      gettime(t11,t12,t13,t14);
      write('You have done it for ');
      if t13-t3>=0 then
        writeln(t12-t2,':',t13-t3)
      else writeln(t12-t2-1,':',t13-t3+60);
      writeln('You have moved ',s2,' time(s).');
      write('1:turn back to last turn. 2:do it again. 3:choose the mission. 4:close the file.');
}    for i:=1 to m do
        begin
          for j:=1 to n do
            begin
              if (a[i,j]='S')or(a[i,j]='M') then
                begin
                  man.x:=i;
                  man.y:=j;
                end else
              if (a[i,j]='B')or(a[i,j]='R') then
                begin
                  inc(top);
                  box[top].x:=i;
                  box[top].y:=j;
                end;
            if a[i,j]='#' then wall(j*30-30,i*30-30)
            else
            if a[i,j]='.' then ground(j*30-30,i*30-30)
            else
            if a[i,j]='S' then man1(j*30-30,i*30-30)
            else
            if a[i,j]='B' then box1(j*30-30,i*30-30)
            else
            if a[i,j]='T' then x_ground(j*30-30,i*30-30)
            else
            if a[i,j]='R' then x_box(j*30-30,i*30-30)
            else
            if a[i,j]='M' then man1(j*30-30,i*30-30);
          end;
        end;
    end;
  begin
    textbackground(blue);
    assign(f,'box.txt');
    reset(f);
    clrscr;
    cursoroff;
    gotoxy(1,1);
    textcolor(yellow);
    writeln('Made by Peter H,1/1/2008!');
    delay(3000);
    writeln('Pushing Box!');
    delay(3000);
    writeln('Press "w","s","a","d" to move the green man. Pushing the yellow box to the place purple.');
    delay(3000);
    clrscr;
    s1:=0;
    gd:=vga;
    gm:=vgahi;
    while not eof(f) do
      begin
        readln(f,st);
      2:initgraph(gd,gm, 'd:\pp\bp\bgi');
        errcode:= graphresult;
        s1:=ord(st[1])-48;
        s2:=0;
        if st[2] in ['0'..'9'] then
          s1:=s1*10+ord(st[2])-48;
        readln(f,m,n);
        for i:=1 to m do
          begin
            for j:=1 to n do
              read(f,a[i,j]);
            readln(f);
          end;
        a2:=a;
      1:
        a:=a2;
        while ok do
          begin
            print;
            ch:=readkey;
            case ch of
              'w':begin i:=-1;j:=0;end;
              'd':begin i:=0;j:=1;end;
              's':begin i:=1;j:=0;end;
              'a':begin i:=0;j:=-1;end;
              '1':goto 1;
              '2':begin
                    close(f);
                    closegraph;
                    textcolor(yellow);
                    writeln('Please input the mission you want to arrive(0--25).');
                    delay(1000);
                    write('The mission is:');
                    readln(st);
                    st:=st+'A';
                    reset(f);
                    readln(f,st1);
                    while st1<>st do readln(f,st1);
                    goto 2;
                  end;
              '3':halt;
              else continue;
            end;
          a1:=a;
          with man do
            begin
              if a[x+i,y+j]='#' then continue;
              if ((a[x+i,y+j]='B')or(a[x+i,y+j]='R'))and
                ((a[x+2*i,y+2*j]='#')or(a[x+2*i,y+j*2]='B')or(a[x+2*i,y+2*j]='R'))
              then continue;
              if (a[x+i,y+j]='B')or(a[x+i,y+j]='R') then
                if a[x+2*i,y+2*j]='T' then
                  a[x+2*i,y+2*j]:='R' else
                a[x+2*i,y+2*j]:='B';
              if a[x,y]='M' then
                a[x,y]:='T' else
              a[x,y]:='.';
              if (a[x+i,y+j]='T')or(a[x+i,y+j]='R') then
                a[x+i,y+j]:='M' else a[x+i,y+j]:='S';
              inc(s2);
            end;
          end;
        closegraph;
      end;
end.
BOX.txt
0A
11 19
###################
#####...###########
#####B..###########
#####..B###########
###..B.B.##########
###.#.##.##########
#...#.##.#####..TT#
#.B..B..........TT#
#####.###.#S##..TT#
#####.....#########
###################
1A
8 8
########
###T####
###.####
###B.BT#
#T.BS###
####B###
####T###
########
2A
9 9
#########
#...#####
#.B.#####
#.BS###T#
###B###T#
###....T#
##...#..#
##...####
#########
3A
7 10
##########
##.....###
##B###...#
#.S.B..B.#
#.TT#.B.##
##TT#...##
##########
4A
8 6
######
##..##
#SB.##
##B.##
##.B.#
#TB..#
#TTRT#
######
5A
8 8
########
##.S####
##.B..##
###.#.##
#T#.#..#
#TB..#.#
#T...B.#
########
6A
11 13
#############
####.....####
#...T###.####
#.#.#....####
#.#.B.B#T.###
#.#..R..#.###
#.T#B.B.#.###
##....#.#.###
##.###T....S#
##.....##...#
#############
7A
8 10
##########
####..#.S#
###...#B.#
###B..B..#
###.B##..#
###.B.#.##
#TTTTT..##
##########
8A
7 10
##########
####....##
##T.B##.##
#TTB.B..S#
#TT.B.B.##
######..##
##########
9A
9 11
###########
##..##...##
##...B...##
##B.###.B##
##.#TTT#.##
##.#TTT#.##
#.B..B..B.#
#.....#..S#
###########
10A
7 8
########
###....#
###BBB.#
#S.BTT.#
#.BTTT##
####..##
########
11A
6 12
############
##..####...#
#.B.####B..#
#..BTTTT.B.#
##....#.S.##
############
12A
7 8
########
###..S##
#..BT.##
#..TBT.#
###.RB.#
###...##
########
13A
8 8
########
###TT###
###.T###
##..BT##
##.B..##
#..#BB.#
#..S...#
########
14A
7 8
########
#..#...#
#.BTTB.#
#SBTR.##
#.BTTB.#
#..#...#
########
15A
7 8
########
##....##
#.B.BB.#
#TTTTTT#
#.BB.B.#
###.S###
########
16A
9 10
##########
###....###
###.B....#
###.G.##.#
#TTT.B...#
#TTTB#B.##
####.#.B.#
####...S.#
##########
17A
7 9
#########
#....####
#.BBB####
#..#TT###
##..TTB.#
##..S...#
#########
18A
9 10
##########
###...#T.#
###..BTTT#
##..B.#RT#
##.##B#.##
#...B..B.#
#...#....#
#######S.#
##########
19A
8 10
##########
##TTTT.###
###TTTB###
#..B#B.B.#
#.BB..#B.#
#....#...#
####.S.###
##########
20A
8 7
#######
#TTBTT#
#TT#TT#
#.BBB.#
#..B..#
#.BBB.#
#..#S.#
#######
21A
8 11
###########
####.TTT###
####TTTT###
#..###B.###
#.B.B..BB.#
#S.B.B....#
#...###...#
###########
22A
9 9
#########
#......##
#.#BB..##
#.TTT#.##
##TTTB.##
##.##.B.#
##B..B..#
##B..B..#
#########
23A
8 10
##########
###...####
#...#.#..#
#.B...B.S#
###BB#####
###..TT###
###TTTT###
##########
24A
7 7
#######
#T.T.T#
#.BBB.#
#TBSBT#
#.BBB.#
#T.T.T#
#######
25A
13 15
###############
#..############
#..############
#....##.....###
#TT#....BB#.###
#TT..##...B.###
#TT#..##B#.B..#
#TT...#.SB.B..#
#TT#..#.B.B...#
#.T...#.B.B.###
#..#..#...#####
#..#....#######
###############
这才叫做游戏。
离线yzasdf
只看该作者 6 发表于: 2008-02-05
不错
离线yonghu86cs
只看该作者 7 发表于: 2008-02-21
牛人
离线phoenix
只看该作者 8 发表于: 2008-02-21
强!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
离线yaoyao2390
只看该作者 9 发表于: 2008-04-12
叼死了
快速回复
限100 字节
 
上一个 下一个