Spoof game: Difference between revisions

From Rosetta Code
Content added Content deleted
m (→‎{{header|Ring}}: added zkl header)
(→‎{{header|zkl}}: added code)
Line 88: Line 88:


=={{header|zkl}}==
=={{header|zkl}}==
<lang zkl>do(getNum("How many games you want? ")){
<lang zkl></lang>
reg mypot,yourpot,myguess,yourguess;
<lang zkl></lang>
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>
{{out}}
{{out}}
<pre style="height:35ex">
<pre>
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!
</pre>
</pre>

Revision as of 03:50, 23 April 2018

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

<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!