
'begin' # 8.17a. pancakes game, version A #
    'int'n;
    'while'print("How many pancakes do you want to play with? ");read(n);
	n<3'or'n>20'do''skip''od';
    [n]'int'A,oldA;'char'c:="y";
    'proc'pancakes='void':
	'begin'print(newline);
	    'for'i'to'n'do'
		'int'ai=A[i];
		print((newline,(i<10|" "|""),i," "*(n-ai+7),"*"*(2*ai-1)))
	    'od';
	    print(newline)
	'end';
    'while'c/="n" 'do'
        'if'c="y"'then'
            'for'i'to'n'do'A[i]:=i'od';
            'for'i'to'n-1'do'
                'int'j=i+'entier'((n+1-i)*random),ai=A[i];A[i]:=A[j];A[j]:=ai
            'od';
            oldA:=A
        'elif'c="a"'then'
            A:=oldA
        'fi';
	'int'move:=0;
	'while''bool'b:='true';'for'i'to'n'while'b'do'b:=A[i]=i'od';'not'b
	'do'
	    pancakes;
	    'int'k;
	    'while'print((newline,move," your move: "));read(k);k<2'or'k>n'do'
		print(" wrong answer, try again")
	    'od';
	    move+:=1;
	    'for'i'to'k%2'do''int'ai=A[i];A[i]:=A[k+1-i];A[k+1-i]:=ai'od'
	'od';
	pancakes;
	print((newline,newline,"you win in ",move,"moves!!",newline));
	'while'
            print("more game (answer y, n or a)? ");
            read((newline,c)); c/="y"'and'c/="n"'and'c/="a"
        'do''skip''od'
    'od'
'end'

