game.bush

# File : game.bush

    #!/usr/local/bin/bush

    -- game.bush
    --
    -- This is a number guessing game.
    -- Demo program for the Bush shell
    -- by Ken O. Burtch

    procedure game is
      n1    : constant integer := integer( numerics.rnd( 4 ) );
      n2    : constant integer := integer( numerics.rnd( 4 ) );
      n3    : constant integer := integer( numerics.rnd( 4 ) );
      reply : integer;
      match : integer;
    begin
      clear;
      put_line( "Numbers Game" );
      new_line;

      put_line( "I've chosen three numbers between 1 and 4" );
      put_line( "Guess what they are!  You've got 10 tries." );
      new_line;

      for guess in 1..10 loop

        put_line( "Guess #" & strings.image( guess ) & ":" );

        put( "  Number 1? (1-4)" );
        reply := numerics.value( inkey & "" );
        put_line( reply );
        if reply = n1 then
           match := 1;
        else
           match := 0;
        end if;

        put( "  Number 2? (1-4)" );
        reply := numerics.value( inkey & "" );
        put_line( reply );
        if reply = n2 then
           match := @+1;
        else
           match := @+0;
        end if;

        put( "  Number 3? (1-4)" );
        reply := numerics.value( inkey & "" );
        put_line( reply );
        if reply = n3 then
           match := @+1;
        else
           match := @+0;
        end if;

        if match = 3 then
           put_line( "You've got the numbers right!" );
           exit;
        elsif guess = 10 then
           put_line( "You're out of guesses." );
           exit;
        else
           put_line( "You've got" & strings.image( match ) & " right." );
        end if;

      end loop;

      new_line;
      put( "The numbers were" ) @( n1 ) @( "," ) @( n2 ) @( " and" );
      put_line( n3 );
      new_line;
      put_line( "Thanks for playing." );

    end game;