Spoof game

From Rosetta Code
Revision as of 03:51, 23 April 2018 by rosettacode>Craigd (→‎{{header|zkl}}: attribution)
Spoof game is a draft programming task. It is not yet considered ready to be promoted as a complete task, for reasons that should be found in its talk page.


Create Spoof game. See details: Spoof game


Ring

<lang ring>

  1. Project : Spoof game
  2. Date  : 2018/04/22
  3. Author : Gal Zsolt (~ CalmoSoft ~)
  4. Email  : <calmosoft@gmail.com>

spoof = 0:6 see "How many games you want? " give games

for n = 1 to games

    while true
            mypot = random(3)
            myguess = random(6)
            if mypot + 3 >= myguess
               loop
            else
               exit
            ok
    end
    see "I have put my pot and guess" + nl
    while true
            see "Your pot? "
            give yourpot
            see "Your guess? "
            give yourguess
            if ascii(yourpot) < 48 or ascii(yourpot) > 54 or ascii(yourguess) < 48 or ascii(yourguess) > 54
               loop
            ok
            if yourpot + 3 >= yourguess
               exit
            else
               see "Bad input! Try again" + nl
               loop
            ok
    end
    see "My put is: " + mypot + nl
    see "My guess is: " + myguess + nl
    pot = mypot + yourpot
    if myguess = pot and yourguess = pot
       see "Draw!" + nl
    elseif myguess = pot
       see "I won!" + nl
    elseif yourguess = pot
       see "You won!" + nl
    else
       see "No winner!" + nl
    ok

next </lang> Output:

How many games you want? 4
I have put my pot and guess
Your pot? 1
Your guess? 3
My put is: 2
My guess is: 6
You won!
I have put my pot and guess
Your pot? 1
Your guess? 4
My put is: 2
My guess is: 5
No winner!
I have put my pot and guess
Your pot? 3
Your guess? 6
My put is: 3
My guess is: 6
Draw!
I have put my pot and guess
Your pot? 2
Your guess? 4
My put is: 0
My guess is: 5
No winner!

zkl

Translation of: Ring

<lang zkl>do(getNum("How many games you want? ")){

  reg mypot,yourpot,myguess,yourguess;
  do{ mypot,myguess = (0).random(4),(0).random(7);  // 0..3, 0..6
     }while(mypot + 3 >= myguess);
  println("I have put my pot and guess.");
  while(True){
     yourpot  =getNum("Your pot? ");
     yourguess=getNum("Your guess? ");
     if(((0<=yourpot<=6) and (0<=yourguess<=6)) and 
        yourpot + 3 >= yourguess) break;
     println("Bad input! Try again");
  }
  println("My put is: ",mypot, ".  My guess is: ",myguess);
  pot:=mypot + yourpot;
  if(myguess==pot==yourguess) println("Draw!\n");
  else if(myguess==pot)       println("I won!\n");
  else if(yourguess==pot)     println("You won!\n");
  else 		       println("No winner!\n");

} fcn getNum(msg){

  try{ return(ask(msg).strip().toInt()) }
  catch{ println("ack"); return(self.fcn(msg)) }  // tail recursion

}</lang>

Output:
How many games you want? 4 
I have put my pot and guess.
Your pot? 2
Your guess? 6
Bad input! Try again
Your pot? 3
Your guess? 4
My put is: 1.  My guess is: 6
You won!

I have put my pot and guess.
Your pot? 2
Your guess? 0
My put is: 0.  My guess is: 4
No winner!

I have put my pot and guess.
Your pot? 3
Your guess? 2
My put is: 0.  My guess is: 5
No winner!

I have put my pot and guess.
Your pot? 5
Your guess? 4
My put is: 0.  My guess is: 5
I won!