IBM SC34-5764-01 User Manual

Page 120

Advertising
background image

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

Advertising