PASCAL数组问题
我设计了一个游戏,里面需要一个确定A数组等不等与b数组的语句,请各位PASCAL大虾帮忙源程序:ProgramU2;Vara:Array[1..10,1..10]ofIn...
我设计了一个游戏,里面需要一个确定A数组等不等与b数组的语句,请各位PASCAL大虾帮忙
源程序:
Program U2;
Var
a: Array[1..10, 1..10]of Integer;{这是咱自己的地图}
b: Array[1..10, 1..10]of Integer;{这是老怪的地图}
m1, m2: Boolean;{这两个变量没有用。。。。。。}
i, u, j, o: Integer;{i和j是循环变量,u和o是两个确定移动方向的变量}
Begin
WriteLn('% % %%%%%%%%%');
WriteLn('% % %');
WriteLn('% % %');
WriteLn('% % %');
WriteLn('% % %%%%%%%%%');
WriteLn('% % % ');
WriteLn('% % % ');
WriteLn(' % % % ');
WriteLn(' %%%%%%% %%%%%%%%%');
ReadLn;
WriteLn(' 1.1.0 shan1dang3nei4ce4');
ReadLn;
WriteLn('There is the pin1yin1 in front of the shu4zi4 the shu4zi4 is yin1 diao4');
ReadLn;
WriteLn('Begin Game!');
ReadLn;{以上是输出游戏标题,在复制是出了乱码}
a[5, 4] := 1;
b[1, 6] := 1;
While a[i, j] <> b[i, j] Do Begin{如果(1就是目前方位)咱不在老怪的范围之内就开始循环}
ReadLn(o);{确定方位}
Case o of{移动}
1: a[i, j + 1] := 1;
2: a[i, j - 1] := 1;
3: a[i + 1, j] := 1;
4: a[i - 1, j] := 1;
End;
{输出咱的地图} For i:=1 To 10 Do Begin
For j:=1 To 10 Do Write(a[i, j]:3);
WriteLn;
WriteLn;
End;
ReadLn;
Randomize;
u := Random(5);
Case u of
1: b[i, j + 1] := 1;
2: b[i, j - 1] := 1;
3: b[i + 1, j] := 1;
4: b[i - 1, j] := 1;
End;
{老怪地图}
For i:=1 To 10 Do Begin
For j:=1 To 10 Do Write(b[i, j]:3);
WriteLn;
WriteLn;
End;
ReadLn;
End;
End.
问题是,这个"当”循环他只做了一变,我的问题是如何让他确定数组中的“1”是不是在同一个方未上。(并且在做完一步后将上一步的“1”清零,也就是说,在A与B数组里之存在一个方位(1))请大虾指导。
(给出改进后的程序,PASCAL语言!!!) 展开
源程序:
Program U2;
Var
a: Array[1..10, 1..10]of Integer;{这是咱自己的地图}
b: Array[1..10, 1..10]of Integer;{这是老怪的地图}
m1, m2: Boolean;{这两个变量没有用。。。。。。}
i, u, j, o: Integer;{i和j是循环变量,u和o是两个确定移动方向的变量}
Begin
WriteLn('% % %%%%%%%%%');
WriteLn('% % %');
WriteLn('% % %');
WriteLn('% % %');
WriteLn('% % %%%%%%%%%');
WriteLn('% % % ');
WriteLn('% % % ');
WriteLn(' % % % ');
WriteLn(' %%%%%%% %%%%%%%%%');
ReadLn;
WriteLn(' 1.1.0 shan1dang3nei4ce4');
ReadLn;
WriteLn('There is the pin1yin1 in front of the shu4zi4 the shu4zi4 is yin1 diao4');
ReadLn;
WriteLn('Begin Game!');
ReadLn;{以上是输出游戏标题,在复制是出了乱码}
a[5, 4] := 1;
b[1, 6] := 1;
While a[i, j] <> b[i, j] Do Begin{如果(1就是目前方位)咱不在老怪的范围之内就开始循环}
ReadLn(o);{确定方位}
Case o of{移动}
1: a[i, j + 1] := 1;
2: a[i, j - 1] := 1;
3: a[i + 1, j] := 1;
4: a[i - 1, j] := 1;
End;
{输出咱的地图} For i:=1 To 10 Do Begin
For j:=1 To 10 Do Write(a[i, j]:3);
WriteLn;
WriteLn;
End;
ReadLn;
Randomize;
u := Random(5);
Case u of
1: b[i, j + 1] := 1;
2: b[i, j - 1] := 1;
3: b[i + 1, j] := 1;
4: b[i - 1, j] := 1;
End;
{老怪地图}
For i:=1 To 10 Do Begin
For j:=1 To 10 Do Write(b[i, j]:3);
WriteLn;
WriteLn;
End;
ReadLn;
End;
End.
问题是,这个"当”循环他只做了一变,我的问题是如何让他确定数组中的“1”是不是在同一个方未上。(并且在做完一步后将上一步的“1”清零,也就是说,在A与B数组里之存在一个方位(1))请大虾指导。
(给出改进后的程序,PASCAL语言!!!) 展开
4个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询