
var //游戏规则:先下者为P1,后下者为P2。至多下9步,下满为止。i,j,x,y,k:longint;t:array[0..1] of char=('*','0');a:array[1..3,1..3] of char;function win(n1:longint):boolean; //判断是否有人已经赢了var j,l:longint;begin win:=false; l:=n1 mod 2; //由第几次下判断赢的人是谁 for j:=1 to 3 do begin if (a[j,1]=a[j,2]) and (a[j,2]=a[j,3]) and (a[j,1]<>'+') then//横排 begin writeln('P',2-l,' win!'); win:=true; exit; end; if (a[1,j]=a[2,j]) and (a[2,j]=a[3,j]) and (a[1,j]<>'+') then//竖排 begin writeln('P',2-l,' win!'); win:=true; exit; end; if (a[1,1]=a[2,2]) and (a[2,2]=a[3,3]) and (a[1,1]<>'+') then//斜排 begin writeln('P',2-l,' win!'); win:=true; exit; end; if (a[1,3]=a[2,2]) and (a[2,2]=a[3,1]) and (a[1,3]<>'+') then//斜排 begin writeln('P',2-l,' win!'); win:=true; exit; end; end;end;begin for i:=1 to 3 do for j:=1 to 3 do a[i,j]:='+'; k:=0; while k<9 do begin readln(x,y); //判断此点是否下过 inc(k); if a[x,y]<>'+' then begin dec(k); for i:=1 to 3 do begin for j:=1 to 3 do write(a[i,j]); writeln; end; end else begin a[x,y]:=t[k mod 2]; for i:=1 to 3 do begin for j:=1 to 3 do write(a[i,j]); writeln; end; if win(k) then exit; //已有人赢则退出 end; end; writeln('Ping'); //平手end.
