Guess the number/With feedback (player): Difference between revisions

m
→‎{{header|Phix}}: replaced with gui version
(Added solution for Action!)
m (→‎{{header|Phix}}: replaced with gui version)
Line 2,419:
 
=={{header|Phix}}==
<!--<lang Phix>integer Min=0, Max=100, Guess, Response(phixonline)-->
<span style="color: #000080;font-style:italic;">--
printf(1,"Think of a number between %d and %d.\n",{Min,Max})
-- demo\rosetta\Guess_the_number2.exw
while 1 do
--</span>
Guess = floor((Max+Min)/2)
<span style="color: #008080;">with</span> <span style="color: #008080;">javascript_semantics</span> <span style="color: #000080;font-style:italic;">-- (spacing not (yet) great...)</span>
printf(1,"My guess is %d, is this too high, too low, or correct? (H/L/C)", Guess)
<span style="color: #008080;">include</span> <span style="color: #000000;">pGUI</span><span style="color: #0000FF;">.</span><span style="color: #000000;">e</span>
Response = lower(wait_key())
<span style="color: #004080;">Ihandle</span> <span style="color: #000000;">lbl</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">guess</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">toohigh</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">too_low</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">correct</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">newgame</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">dlg</span>
puts(1,"\n")
if Response='h' then
<span style="color: #004080;">integer</span> <span style="color: #000000;">Min</span><span style="color: #0000FF;">=</span><span style="color: #000000;">0</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">Max</span><span style="color: #0000FF;">=</span><span style="color: #000000;">100</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">Guess</span>
Max = Guess-1
<span style="color: #008080;">constant</span> <span style="color: #000000;">LTHINK</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">sprintf</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"Think of a number between %d and %d."</span><span style="color: #0000FF;">,{</span><span style="color: #000000;">Min</span><span style="color: #0000FF;">,</span><span style="color: #000000;">Max</span><span style="color: #0000FF;">})</span>
elsif Response='l' then
Min = Guess+1
<span style="color: #008080;">procedure</span> <span style="color: #000000;">set_active</span><span style="color: #0000FF;">(</span><span style="color: #004080;">bool</span> <span style="color: #000000;">bActive</span><span style="color: #0000FF;">)</span>
elsif Response='c' then
<span style="color: #7060A8;">IupSetInt</span><span style="color: #0000FF;">({</span><span style="color: #000000;">toohigh</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">too_low</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">correct</span><span style="color: #0000FF;">},</span><span style="color: #008000;">"ACTIVE"</span><span style="color: #0000FF;">,</span><span style="color: #000000;">bActive</span><span style="color: #0000FF;">)</span>
puts(1,"I did it!\n")
<span style="color: #7060A8;">IupSetInt</span><span style="color: #0000FF;">(</span><span style="color: #000000;">newgame</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"ACTIVE"</span><span style="color: #0000FF;">,</span><span style="color: #008080;">not</span> <span style="color: #000000;">bActive</span><span style="color: #0000FF;">)</span>
exit
<span style="color: #008080;">end</span> <span style="color: #008080;">procedure</span>
else
puts(1,"I do not understand that...\n")
<span style="color: #008080;">procedure</span> <span style="color: #000000;">set_guess</span><span style="color: #0000FF;">()</span>
end if
<span style="color: #000000;">Guess</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">floor</span><span style="color: #0000FF;">((</span><span style="color: #000000;">Max</span><span style="color: #0000FF;">+</span><span style="color: #000000;">Min</span><span style="color: #0000FF;">)/</span><span style="color: #000000;">2</span><span style="color: #0000FF;">)</span>
if Max<Min then
<span style="color: #004080;">string</span> <span style="color: #000000;">title</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">sprintf</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"My guess is %d, is this too high, too low, or correct?"</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">Guess</span><span style="color: #0000FF;">)</span>
puts(1,"I think something is strange here...\n")
<span style="color: #008080;">if</span> <span style="color: #000000;">Max</span><span style="color: #0000FF;"><</span><span style="color: #000000;">Min</span> <span style="color: #008080;">then</span>
exit
<span style="color: #000000;">set_active</span><span style="color: #0000FF;">(</span><span style="color: #004600;">false</span><span style="color: #0000FF;">)</span>
end if
<span style="color: #000000;">title</span> <span style="color: #0000FF;">=</span> <span style="color: #008000;">"I think something is strange here..."</span>
end while</lang>
<span style="color: #008080;">end</span> <span style="color: #008080;">if</span>
<span style="color: #7060A8;">IupSetStrAttribute</span><span style="color: #0000FF;">(</span><span style="color: #000000;">guess</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"TITLE"</span><span style="color: #0000FF;">,</span><span style="color: #000000;">title</span><span style="color: #0000FF;">)</span>
<span style="color: #7060A8;">IupRefresh</span><span style="color: #0000FF;">(</span><span style="color: #000000;">guess</span><span style="color: #0000FF;">)</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">procedure</span>
<span style="color: #008080;">function</span> <span style="color: #000000;">click_cb</span><span style="color: #0000FF;">(</span><span style="color: #004080;">Ihandle</span> <span style="color: #000000;">ih</span><span style="color: #0000FF;">)</span>
<span style="color: #008080;">switch</span> <span style="color: #7060A8;">substitute</span><span style="color: #0000FF;">(</span><span style="color: #7060A8;">IupGetAttribute</span><span style="color: #0000FF;">(</span><span style="color: #000000;">ih</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"TITLE"</span><span style="color: #0000FF;">),</span><span style="color: #008000;">"Too "</span><span style="color: #0000FF;">,</span><span style="color: #008000;">""</span><span style="color: #0000FF;">)[</span><span style="color: #000000;">1</span><span style="color: #0000FF;">]</span> <span style="color: #008080;">do</span>
<span style="color: #008080;">case</span> <span style="color: #008000;">'H'</span><span style="color: #0000FF;">:</span> <span style="color: #000000;">Max</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">Guess</span><span style="color: #0000FF;">-</span><span style="color: #000000;">1</span> <span style="color: #000000;">set_guess</span><span style="color: #0000FF;">()</span>
<span style="color: #008080;">case</span> <span style="color: #008000;">'L'</span><span style="color: #0000FF;">:</span> <span style="color: #000000;">Min</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">Guess</span><span style="color: #0000FF;">+</span><span style="color: #000000;">1</span> <span style="color: #000000;">set_guess</span><span style="color: #0000FF;">()</span>
<span style="color: #008080;">case</span> <span style="color: #008000;">'C'</span><span style="color: #0000FF;">:</span> <span style="color: #7060A8;">IupSetStrAttribute</span><span style="color: #0000FF;">(</span><span style="color: #000000;">guess</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"TITLE"</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"I did it!"</span><span style="color: #0000FF;">)</span>
<span style="color: #000000;">set_active</span><span style="color: #0000FF;">(</span><span style="color: #004600;">false</span><span style="color: #0000FF;">)</span>
<span style="color: #008080;">case</span> <span style="color: #008000;">'N'</span><span style="color: #0000FF;">:</span> <span style="color: #000000;">Min</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">0</span> <span style="color: #000000;">Max</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">100</span> <span style="color: #000000;">set_guess</span><span style="color: #0000FF;">()</span>
<span style="color: #000000;">set_active</span><span style="color: #0000FF;">(</span><span style="color: #004600;">true</span><span style="color: #0000FF;">)</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">switch</span>
<span style="color: #008080;">return</span> <span style="color: #004600;">IUP_DEFAULT</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">function</span>
<span style="color: #008080;">procedure</span> <span style="color: #000000;">main</span><span style="color: #0000FF;">()</span>
<span style="color: #7060A8;">IupOpen</span><span style="color: #0000FF;">()</span>
<span style="color: #000000;">lbl</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">IupLabel</span><span style="color: #0000FF;">(</span><span style="color: #000000;">LTHINK</span><span style="color: #0000FF;">)</span>
<span style="color: #000000;">guess</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">IupLabel</span><span style="color: #0000FF;">(</span><span style="color: #008000;">""</span><span style="color: #0000FF;">)</span>
<span style="color: #000000;">toohigh</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">IupButton</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"Too High"</span><span style="color: #0000FF;">,</span> <span style="color: #7060A8;">Icallback</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"click_cb"</span><span style="color: #0000FF;">))</span>
<span style="color: #000000;">too_low</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">IupButton</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"Too Low"</span><span style="color: #0000FF;">,</span> <span style="color: #7060A8;">Icallback</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"click_cb"</span><span style="color: #0000FF;">))</span>
<span style="color: #000000;">correct</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">IupButton</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"Correct"</span><span style="color: #0000FF;">,</span> <span style="color: #7060A8;">Icallback</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"click_cb"</span><span style="color: #0000FF;">))</span>
<span style="color: #000000;">newgame</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">IupButton</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"New Game"</span><span style="color: #0000FF;">,</span> <span style="color: #7060A8;">Icallback</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"click_cb"</span><span style="color: #0000FF;">),</span> <span style="color: #008000;">"ACTIVE=NO"</span><span style="color: #0000FF;">)</span>
<span style="color: #000000;">dlg</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">IupDialog</span><span style="color: #0000FF;">(</span><span style="color: #7060A8;">IupVbox</span><span style="color: #0000FF;">({</span><span style="color: #000000;">lbl</span><span style="color: #0000FF;">,</span>
<span style="color: #000000;">guess</span><span style="color: #0000FF;">,</span>
<span style="color: #7060A8;">IupHbox</span><span style="color: #0000FF;">({</span><span style="color: #000000;">toohigh</span><span style="color: #0000FF;">,</span><span style="color: #000000;">too_low</span><span style="color: #0000FF;">,</span><span style="color: #000000;">correct</span><span style="color: #0000FF;">,</span><span style="color: #000000;">newgame</span><span style="color: #0000FF;">},</span>
<span style="color: #008000;">"GAP=10"</span><span style="color: #0000FF;">)},</span>
<span style="color: #008000;">`NMARGIN=15x15,GAP=10`</span><span style="color: #0000FF;">),</span>
<span style="color: #008000;">`MINSIZE=300x100,TITLE="Guess the number2"`</span><span style="color: #0000FF;">)</span>
<span style="color: #000000;">set_guess</span><span style="color: #0000FF;">()</span>
<span style="color: #7060A8;">IupShow</span><span style="color: #0000FF;">(</span><span style="color: #000000;">dlg</span><span style="color: #0000FF;">)</span>
<span style="color: #008080;">if</span> <span style="color: #7060A8;">platform</span><span style="color: #0000FF;">()!=</span><span style="color: #004600;">JS</span> <span style="color: #008080;">then</span>
<span style="color: #7060A8;">IupMainLoop</span><span style="color: #0000FF;">()</span>
<span style="color: #7060A8;">IupClose</span><span style="color: #0000FF;">()</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">if</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">procedure</span>
<span style="color: #000000;">main</span><span style="color: #0000FF;">()</span>
<!--</lang>-->
 
=={{header|PicoLisp}}==
7,794

edits