/**
* じゃんけんの手を返す。
* @param int $no 現在の試合番号(0から始まることに注意する)。
* @param int $total 全試合数。
* @return int じゃんけんの手(1: グー。2: チョキ。3: パー)
*/
function hand($no, $total)
{
// このロボットはすべての手がランダム。
$hand = mt_rand(1, 3);
return $hand;
}
このような場合どうすれば、勝てるでしょうか?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/10/17 05:14
2018/10/17 05:19
2018/10/17 06:03
回答5件
0
このような場合どうすれば、勝てるでしょうか?
この関数を呼び出した後の処理でユーザ側の手を決めれば勝てます。
投稿2018/10/17 04:18
総合スコア5158
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/10/17 04:33
2018/10/17 04:38
2018/10/17 04:39
2018/10/17 04:57
2018/10/17 04:59
2018/10/17 05:00
2018/10/17 05:12
2018/10/17 05:17
2018/10/17 05:18
0
このような場合どうすれば、勝てるでしょうか?
皮肉にもとれるかもしれませんが、後出しじゃんけんが簡単。
でも、必ずユーザーが先に手を選択するのであれば、コンピュータ側が負ける手を出すまで再帰処理するとか。
だって「勝てる」は仕様ですよね。
プログラム側の都合ではなく、そのシステムを作る側の都合です。
それこそどのような手でも可能ではないですか?
「勝てる」という自然現象ではなく「勝たせる」仕様を考えたら良いだけです。
「どのような仕様にしたら良いか分からない」か
「仕様は決まっているかどう実現したらいいか分からない」か
「プログラムではなくユーザー操作でなんとかできるものか知りたい」か
で回答の方向性が全く変わってきますので、
質問本文を編集し、要件を具体化してください。
投稿2018/10/17 06:10
総合スコア80850
0
ベストアンサー
もしかして、phpのバージョンって指定されてますか?
phpのmt_randの値域の拡大縮小には問題があるという主張を見たことがあります。
もし、奇数だけ極端に出る場合
ほぼ、グーかパーしか出さないことになるので
とりあえず、こちらはパーを出しとけばほぼほぼ勝てます
追記
あとはmt_srandで相手の手を固定する事もできるかもしれません。
投稿2018/10/17 06:32
編集2018/10/17 06:43総合スコア15147
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。