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

📄 battle.pas

📁 PASCAL光盘资料PASCAL光盘资料PASCAL光盘资料
💻 PAS
字号:
{  CTU Open Contest 2002  =====================  Sample solution for the problem: battle  Martin Kacer, Oct 2002}Program Battle;Const	MAXSIZE = 10000;	chShip = '#';	chWater = '.';Type TRow = Array [0..MAXSIZE+1] of Char;Var Row1, Row2 : TRow;	SizeX, SizeY : Integer;	IsValid : Boolean;	ShipCnt : Integer;{compare two successive rows}Procedure CompareRows;Var I: Integer;Begin	I := 1;	While (I <= SizeY) do	Begin		If (Row1[I] <> Row2[I]) then		Begin			If (Row1[I-1] = chShip) or (Row2[I-1] = chShip) then				IsValid := false;			If (Row1[I] = chShip) then			Begin				Repeat					Inc (I);					If (Row2[I] = chShip) then IsValid := false;				until (Row1[I] <> chShip)			End else Begin				Inc (ShipCnt);				Repeat					Inc (I);					If (Row1[I] = chShip) then IsValid := false;				until (Row2[I] <> chShip);			End;		End;		Inc (I);	End;End;{read the whole field and compare every two rows}Procedure ReadAll;Var X, Y: Integer;Begin	For Y := 0 to SizeY+1 do Row1[Y] := chWater;	Row2[0] := chWater;	Row2[SizeY+1] := chWater;	For X := 1 to SizeX do	Begin		For Y := 1 to SizeY do			Read (Row2[Y]);		ReadLn;		CompareRows;		Row1 := Row2;	End;End;Begin	Repeat		ReadLn (SizeX, SizeY);		If (SizeX > 0) then		Begin			ShipCnt := 0;			IsValid := true;			ReadAll;			If IsValid then				WriteLn ('There are ', ShipCnt, ' ships.')			else				WriteLn ('Bad placement.');		End;	until (SizeX = 0);End.

⌨️ 快捷键说明

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