IBM SC34-5764-01 User Manual
Page 120
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