一个走迷宫游戏,请大神指教!
pascal吧
全部回复
仅看楼主
level 8
1783952099 楼主
这是开始界面。。
游戏界面。。
2楼上源代码。。
2015年08月04日 13点08分 1
level 8
1783952099 楼主
哎呦我去[喷]。。代码被度娘删了[怒]。。坐等恢复[升起]。。。。
2015年08月04日 13点08分 3
level 12
火钳流明
2015年08月04日 23点08分 4
自认为火不了
2015年08月05日 05点08分
level 4
这个我也做过
2015年08月05日 00点08分 5
level 4
楼主发代码截图就不会被删了
2015年08月05日 00点08分 6
[真棒]get!
2015年08月05日 05点08分
level 7
用graph好吗我求你了!![泪]
2015年08月05日 01点08分 7
怎么用...求教程,最好连线程进程单元图形界面都拉来,我就是找不到教程[泪]【学竞赛的那么点东西真的不够】[泪]
2015年08月05日 05点08分
@1783952099 GRAPH的话可以看看我的新作[开心]。那个就是一个做迷宫迷宫的典范
2015年08月05日 06点08分
@🌟Rockdu 地址[吐舌]
2015年08月05日 10点08分
@1783952099 贴吧找得到
2015年08月05日 14点08分
level 12
[喷] 同意楼上的观点 虽然我也不太会用graph 但是这样做出来的走迷宫狮子暗示不忍直视啊
2015年08月05日 01点08分 8
不会啊啊啊啊啊![泪][泪]
2015年08月05日 05点08分
level 3
看不懂迷宫
2015年08月05日 03点08分 9
额...从左上走到右下.....
2015年08月05日 05点08分
@1783952099 楼下上代码
2015年08月05日 10点08分
level 8
1783952099 楼主
上代码!
program zoumigong;
uses crt;
label 9;
type
t4=record
g:char;
gone:boolean;
end;
t1=record
x,y:integer;
end;
var
m:array[1..255,1..255] of t4;
now:t1;
i,j,n:integer;
ok:boolean;
procedure check;
type
t3=^t2;
t2=record
xx,yy:integer;
next:t3;
end;
var
a,b:^t2;
i:integer;
begin
new(b); a:=b;
for i:=2 to (n*n div 2+1) do begin
new(a^.next); a:=a^.next;
end;
a^.next:=b; b^.xx:=1; b^.yy:=1; m[1,1].gone:=true;
repeat
a:=a^.next;
if (a^.xx-1>0) then
if (m[a^.xx-1,a^.yy].g<>'@') then
if m[a^.xx-1,a^.yy].gone<>true then begin
b:=b^.next; b^.xx:=a^.xx-1; b^.yy:=a^.yy; m[b^.xx,b^.yy].gone:=true;
end;
if (b^.xx=n)and(b^.yy=n) then break;
if (a^.xx+1<=n) then
if (m[a^.xx+1,a^.yy].g<>'@') then
if m[a^.xx+1,a^.yy].gone<>true then begin
b:=b^.next; b^.xx:=a^.xx+1; b^.yy:=a^.yy; m[b^.xx,b^.yy].gone:=true;
end;
if (b^.xx=n)and(b^.yy=n) then break;
if (a^.yy+1<=n) then
if (m[a^.xx,a^.yy+1].g<>'@') then
if m[a^.xx,a^.yy+1].gone<>true then begin
b:=b^.next; b^.xx:=a^.xx; b^.yy:=a^.yy+1; m[b^.xx,b^.yy].gone:=true;
end;
if (b^.xx=n)and(b^.yy=n) then break;
if (a^.yy-1>0) then
if (m[a^.xx,a^.yy-1].g<>'@') then
if m[a^.xx,a^.yy-1].gone<>true then begin
b:=b^.next; b^.xx:=a^.xx; b^.yy:=a^.yy-1; m[b^.xx,b^.yy].gone:=true;
end;
if (b^.xx=n)and(b^.yy=n) then break;
until (a=b);
ok:=(b^.xx=n)and(b^.yy=n);
end;
2015年08月05日 10点08分 10
level 8
1783952099 楼主
begin {main}
repeat
clrscr;
write('input the size of map(n*n)[1<=n<=255]-----n=');
9:readln(n);
if (n>255)or(n<1) then begin writeln('input right "n"'); goto 9; end;
writeln('make map(',n,'*',n,') now,please wait some time....');
randomize;
repeat
for i:=1 to n do
for j:=1 to n do begin
now.x:=random(1000); m[i,j].gone:=false;
if now.x<=350 then m[i,j].g:='@' else m[i,j].g:=' ';
end;
check;
until ok;
m[1,1].g:='$'; m[n,n].g:='#';
now.x:=1; now.y:=1;
writeln('finish map(',n,'*',n,')');
writeln;writeln;
writeln('your aim------go from left-up to right-down');
writeln('press any key to begin');
readkey; gamenow;
writeln('press any key to restart...');
readkey;
until false;
end.
2015年08月05日 10点08分 12
level 8
1783952099 楼主
喷死!!!!!!!!第一段又删了!!!!度娘我恨你!!![怒][阴险][升起][喷]
2015年08月05日 10点08分 13
level 8
1783952099 楼主
这是第一段。。。。[汗]
program zoumigong;
uses crt;
label 9;
type
t4=record
g:char;
gone:boolean;
end;
t1=record
x,y:integer;
end;
var
m:array[1..255,1..255] of t4;
now:t1;
i,j,n:integer;
ok:boolean;
procedure check;
type
t3=^t2;
t2=record
xx,yy:integer;
next:t3;
end;
var
a,b:^t2;
i:integer;
begin
new(b); a:=b;
for i:=2 to (n*n div 2+1) do begin
new(a^.next); a:=a^.next;
end;
a^.next:=b; b^.xx:=1; b^.yy:=1; m[1,1].gone:=true;
repeat
a:=a^.next;
if (a^.xx-1>0) then
if (m[a^.xx-1,a^.yy].g<>'@') then
if m[a^.xx-1,a^.yy].gone<>true then begin
b:=b^.next; b^.xx:=a^.xx-1; b^.yy:=a^.yy; m[b^.xx,b^.yy].gone:=true;
end;
if (b^.xx=n)and(b^.yy=n) then break;
if (a^.xx+1<=n) then
if (m[a^.xx+1,a^.yy].g<>'@') then
if m[a^.xx+1,a^.yy].gone<>true then begin
b:=b^.next; b^.xx:=a^.xx+1; b^.yy:=a^.yy; m[b^.xx,b^.yy].gone:=true;
end;
if (b^.xx=n)and(b^.yy=n) then break;
if (a^.yy+1<=n) then
if (m[a^.xx,a^.yy+1].g<>'@') then
if m[a^.xx,a^.yy+1].gone<>true then begin
b:=b^.next; b^.xx:=a^.xx; b^.yy:=a^.yy+1; m[b^.xx,b^.yy].gone:=true;
end;
if (b^.xx=n)and(b^.yy=n) then break;
if (a^.yy-1>0) then
if (m[a^.xx,a^.yy-1].g<>'@') then
if m[a^.xx,a^.yy-1].gone<>true then begin
b:=b^.next; b^.xx:=a^.xx; b^.yy:=a^.yy-1; m[b^.xx,b^.yy].gone:=true;
end;
if (b^.xx=n)and(b^.yy=n) then break;
until (a=b);
ok:=(b^.xx=n)and(b^.yy=n);
end;
2015年08月05日 10点08分 14
level 11
火钳~
你可以换一下墙壁的图标换成方块
2015年08月13日 23点08分 16
level 7
这 与合法的调查显示速度感激不尽配合刚刚地促进繁荣平均积分洒出
2016年03月14日 08点03分 17
level 7
不错 界面单调
2016年03月14日 08点03分 18
level 9
界面单调+1
2016年03月14日 09点03分 19
level 2
表示弱爆了
————我就是水个贴,不过确实挺弱
2016年03月14日 13点03分 20
1