//D Nguyen Enloe
HS Junior Division
program ACSL3fin;
uses crt;
type
q=array[1..12]of integer;
var
slot:integer;
slot2:integer;
board:q;
a,b,c:integer;{random counters}
procedure
input(Var slot,slot2:integer);
begin
write('First Number: ');
readln(slot);
write('Second Number: ');
readln(slot2);
end;
procedure
personA(VAR board:q; slot:integer);
var
amount,a,b:integer;
looping:integer;
begin
amount:=board[slot]; {AMOUNT=4}
board[slot]:=0; {SLOT=4}
looping:=0;
a:=slot;
b:=0;
c:=0;
repeat
if amount=0 then
begin
amount:=amount;
end
else if (slot=6) and (b=0) then
begin
board[slot+looping]:=board[slot+looping] +1;
amount:=amount-1;
b:=10;
c:=1;
end
else
if (slot+looping=6) then
begin
board[slot+looping]:=board[slot+looping] +1;
amount:=amount-2;
c:=1;
end
{
else if board[slot+looping]=12 then
begin
board[slot+looping]:=board[slot+looping]
+1;
looping:=-1;
slot:=1;
end }
{ else if (looping=0) then
begin
amount:=amount;
end}
else
begin
board[slot+looping]:=board[slot+looping]
+1;
if c=0 then
begin
amount:=amount;
c:=1;
end
else
begin
amount:=amount-1;
end;
end;
{
write(amount,' '); }
looping:=looping+1;
board[a]:=0;
until amount=0;
end;
procedure
personB(VAR board:q; slot:integer);
var
amount,a,b,c:integer;
looping:integer;
begin
amount:=board[slot]; {AMOUNT=5}
board[slot]:=0; {SLOT=8}
looping:=0;
a:=slot;
b:=0;
c:=0;
repeat
if
amount=0 then
begin
amount:=0;
end
else if (slot=12) and (b=0) then
begin
slot:=1;
looping:=-1;
amount:=amount-1;
b:=10;
c:=1;
end
else if (slot+looping=12) then
begin
board[slot+looping]:=board[slot+looping]
+1;
{
board[slot]:=0; }
looping:=-1;
slot:=1;
amount:=amount-2;
c:=1;
end
{
else if (board[slot+looping]=12) then
begin
board[slot+looping]:=board[slot+looping]
+1;
amount:=amount-1;
slot:=1;
looping:=-1;
end}
{
else if (looping=0) then
begin
board[slot+looping]:=board[slot+looping]
+1;
amount:=amount;
end}
else
begin
board[slot+looping]:=board[slot+looping]
+1;
if c=0 then
begin
amount:=amount;
c:=1;
end
else
begin
amount:=amount-1;
end;
end;
{
write(amount,' '); }
looping:=looping+1;
board[a]:=0;
until amount=0;
end;
procedure
ouput(board:q; slot2:integer);
begin
writeln('OUTPUT: ',board[slot2]);
end;
Begin
clrscr;
a:=0;
b:=0;
for a:=1 to 12 do
begin
board[a]:=4;
end;
a:=0;
for b:=1 to 5 do
begin
if
(b=1)or(b=3)or(b=5) then
begin
input(slot
,slot2);
personA(board,slot);
ouput(board,slot2);
{ for
a:=1 to 12 do
begin
write(board[a]);
end;}
writeln;
end;
if
(b=2)or(b=4)then
begin
input(slot
,slot2);
personB(board,slot);
ouput(board,slot2);
{ for
a:=1 to 12 do
begin
write(board[a]);
end;
}
writeln;
end;
readln;
end;
End.