IBM SC34-5764-01 Server User Manual


 
This next example has additional features that are popular with some programmers. Keywords written in
uppercase and a different indentation style highlight the structure of the code; the abundant comments
recall the detail of the specification.
/********************************************************/
/* SAMPLE #2: A portion of CATMOUSE EXEC */
/* divided into segments and written with 'some' */
/* indentation and 'some' comments. */
/********************************************************/
/********************************************************/
/* Main program */
/********************************************************/
do forever
call display
/*****************************************************/
/* Mouse's turn */
/*****************************************************/
pull move
if datatype(move,whole) & move >= 0 & move <=2
then select
when mouse+move > len then nop /* hits wall */
when cat > mouse,
& mouse + move >= cat, /* hits cat */
then mouse = cat
otherwise /* moves */
mouse = mouse + move
end
if mouse = hole then leave /* reaches hole */
if mouse = cat then leave /* hits cat */
/******************************************************/
/* Cat's turn */
/******************************************************/
jump = random(1,spring)
if cat > mouse then do /* cat tries to jump left */
if cat - jump < 1 then nop /* hits wall */
else cat = cat - jump
end
else do /* cat tries to jump right */
if cat + jump > len then nop /* hits wall */
else cat = cat + jump
end
if cat = mouse then leave
end
/********************************************************/
/* Conclusion */
/********************************************************/
call display
if cat = mouse then say "Cat wins"
else say "Mouse wins"
exit
Programming Style and Techniques
98
CICS TS for VSE/ESA: REXX Guide