Christmas 2000 Exercise (3i)

HKCEE 1999 Paper 2 (3)

3.(a)

procedure init(var b:boxarray);

var I:integer;

begin

for I:=1 to 6 do

b[I]:=2

end;

(b)

procedure rules(var b : boxarray; num : integer);

var temp : integer;

begin

b[num] :=b[num] + 2;

temp :=num-1;

if temp = 0 then

temp :=6;

b[temp] :=b[temp]-1;

temp :=num+1;

if temp=7 then

temp :=1;

b[temp] :=b[temp]-1;

end;

(c)

procedure displaybox(b:boxarray);

var I:integer;

begin

writeln(_Box # :1 2 3 4 5 6_);

write(_Value : _);

for I:=1 to 6

write(b[I], _ _);

writeln

end;

(d)

function endgame(b:boxarray):boolean;

var I:integer;

andg:boolean;

begin

endg:=false;

for I:=1 to 6 do

if b[I]<0

then endg:=true;

endgame:=endg

end;

(e)

program game(input, output);

typeboxarray = array[1..6] of integer;

var box : boxarray;

turn : string;

n : integer;

begin

init(box);

displaybox(box);

repeat

writeln;

if turn= Player_

then turn:= Computer_

else begin

turn:= _Player_;

write(_Press<enter> to roll the dice._);

end;

readln;

randomize;

n:=random(6) + 1;

writeln(turn, _rolls a , n, _._);

rules(box, n);

displaybox(box)

until endgame(box);

if turn = _Player_

then writeln(_Computer wins._)

else writeln(_Player wins._)

end.