主题:请问谁可以教我编一个这样的小程序
wenq
[专家分:0] 发布于 2006-01-06 08:46:00
谁能教我做一个这样的游戏?能详细点更好,感谢万分
一个三行三列的表格 输入三个不同的数字 使得表格的每个竖行 横行 还有斜行 它们的和相等就胜利 否则失败。
回复列表 (共6个回复)
沙发
wenq [专家分:0] 发布于 2006-01-07 14:52:00
拜托高手了
板凳
游侠UFO [专家分:1200] 发布于 2006-01-07 20:03:00
基本思路就是先接受输入,把每个竖行 横行 还有斜行上的数的和算出来,最后判断是否相等就行了.
源代码:
program game;
var
board:array[1..3,1..3] of integer;
i,j:integer;
function win:boolean;
var
ans:boolean;
a:array[1..8] of integer;
i,j:byte;
begin
for i:=1 to 8 do a[i]:=0;
for i:=1 to 3 do
begin
a[1]:=a[1]+board[i,1];
a[2]:=a[2]+board[i,2];
a[3]:=a[3]+board[i,3];
a[4]:=a[4]+board[1,i];
a[5]:=a[5]+board[2,i];
a[6]:=a[6]+board[3,i];
a[7]:=a[7]+board[i,i];
a[8]:=a[8]+board[i,4-i];
end;
ans:=true;
for i:=1 to 7 do
for j:=(i+1) to 8 do
if a[i]<>a[j] then ans:=false;
win:=ans;
end;
begin
{input}
for i:=1 to 3 do
for j:=1 to 3 do read(board[i,j]);
{work and output}
if win then writeln('You are winner !!')
else writeln('You are loser !!');
end.
3 楼
wenq [专家分:0] 发布于 2006-01-08 08:58:00
太感谢了
4 楼
wenq [专家分:0] 发布于 2006-01-08 09:02:00
谢谢 如果我想把它输入一个数就显示一次9行9列的表格并填入数据
应该怎么改好呢?
5 楼
wenq [专家分:0] 发布于 2006-01-08 10:09:00
begin
{input}
for i:=1 to 3 do
for j:=1 to 3 do begin
Writeln('Please input ',i,j);
read(board[i,j]);
Writeln(board[1,1],'|',board[1,2],'|',board[1,3]);
Writeln('-----');
Writeln(board[2,1],'|',board[2,2],'|',board[2,3]);
Writeln('-----');
Writeln(board[3,1],'|',board[3,2],'|',board[3,3]);
end;
这样可以吗? 谢谢谢谢 感恩 游侠UFO
6 楼
游侠UFO [专家分:1200] 发布于 2006-01-15 10:37:00
基本上是正确的!
如果把:Writeln('Please input ',i,j);
改成:Writeln('Please input (',i,',',j,')');
效果会好些,呵呵!
我来回复