⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ac1195.pas

📁 Ural(Acm.timus.ru)题解 By Maigo大牛
💻 PAS
字号:
program ural1195;
const
  charset='XO#';
var
  map:array[1..9]of char;
  i,j,k,t:byte;
procedure winX;
  begin
    writeln('Crosses win');
    halt;
  end;
procedure winO;
  begin
    writeln('Ouths win');
    halt;
  end;
function win(c:char):boolean;
  function line(x,y,z:byte):boolean;
    begin
      line:=(map[x]=c) and (map[y]=c) and (map[z]=c);
    end;
  begin
    win:=line(1,2,3) or line(4,5,6) or line(7,8,9) or
         line(1,4,7) or line(2,5,8) or line(3,6,9) or
         line(1,5,9) or line(3,5,7);
  end;
begin
  for i:=1 to 9 do
    repeat
      read(map[i]);
    until pos(map[i],charset)>0;

  i:=1;while map[i]<>'#' do inc(i);
  j:=i+1;while map[j]<>'#' do inc(j);
  k:=j+1;while map[k]<>'#' do inc(k);

  map[i]:='X';if win('X') then winX;map[i]:='#';
  map[j]:='X';if win('X') then winX;map[j]:='#';
  map[k]:='X';if win('X') then winX;map[k]:='#';

  t:=0;
  map[i]:='O';if win('O') then inc(t);map[i]:='#';
  map[j]:='O';if win('O') then inc(t);map[j]:='#';
  map[k]:='O';if win('O') then inc(t);map[k]:='#';
  if t>=2 then winO;

  t:=0;
  map[i]:='X';map[j]:='X';map[k]:='O';if win('X') and not win('O') then inc(t);
  map[j]:='O';map[k]:='X';if win('X') and not win('O') then inc(t);
  map[i]:='O';map[j]:='X';if win('X') and not win('O') then inc(t);
  if t>=2 then winX;

  writeln('Draw');
end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -