○乱数の求め方
最初にrandomizeを実行し、以降はたとえば「a=rnd(3)」と実行すれば、
aに0〜2の値がランダムで入ります。
○プレイヤーに入力してもらう方法
button命令でボタンを配置してそれをクリックしてもらう手もありますが、
キーボードから入力してもらう方法もあります。
キー入力を検出する方法は、stick、getkey、onkey等ありますが、
onkeyを使う場合ですと、onkeyのジャンプ先にて
システム変数wparamに、押されたキーの「仮想キーコード」が入ります。
・仮想キーコード
https://kts.sakaiweb.com/virtualkeycodes.html
たとえば左カーソルキーを押したのなら37が入ります。
○勝敗の判定
たとえば、グーを0、チョキを1、パーを2とした場合、
プレイヤーの手の番号からコンピュータの手の番号を引いた結果が
・1か-2なら負け
・-1か2なら勝ち
・0ならあいこ
と判定されます。
以下、テキストだけの簡便なものを作ってみました。
randomize
sdim hands,64,3
hands="グー","チョキ","パー"
onkey *key
*ready //入力待ちフェイズ
color 255,255,255 : boxf : color 0,0,0 : pos 0,0
phase=0
cpu=rnd(3) //コンピュータの手
you=0 //プレイヤーの手
mes "[←]グー [↑]チョキ [→]パー"
stop
*result //結果フェイズ
phase=1
mes "コンピュータの手:"+hands(cpu)
mes "あなたの手:"+hands(you)
//判定
x=you-cpu
if x=-1 | x=2 : mes "あなたの勝ち"
if x=-2 | x=1 : mes "あなたの負け"
if x=0 : mes "あいこ"
mes "スペースキーを押してください"
stop
*key
if phase=0 { //入力待ちフェイズの場合
if wparam>=37 & wparam<=39 { //←:37 ↑:38 →:39
you=wparam-37
goto *result
}
}
if phase=1 { //結果フェイズの場合
if wparam=32 : goto *ready //スペース:32
}
stop