• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ヌメロンの対戦相手)

ヌメロンの対戦相手をつくるプログラム

このQ&Aのポイント
  • ヌメロンの対戦相手をコンピュータで作るプログラムについて質問です。
  • プログラムがわからないので、どのようなプログラムを作れば良いか教えてください。
  • また、確率が0%ではないので確率を0%にする方法も知りたいです。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.7

https://skydrive.live.com/#cid=07C558F8E11E708F&id=7C558F8E11E708F%21609 にある、HitAndBlow.cpp なら Visual Studio 2010 (VC++ 10) で通るハズ。

spmz1311
質問者

お礼

できました!! わざわざ作っていただいてありがとうございます ゆっくりプログラムを読んで対戦型 ヌメロンを作ろうと思います 回答ありがとうございました

すると、全ての回答が全文表示されます。

その他の回答 (6)

回答No.6

> VC++でやってます VisualStudio 2010 (VC++ 10) 以上のバージョンじゃないとエラーになるでしょね。

すると、全ての回答が全文表示されます。
回答No.5

作ってみた。参考URL参照。 # Cで書くのがめんどくせぇのでC++で。

参考URL:
http://blogs.wankuma.com/episteme/archive/2012/12/23/310246.aspx
spmz1311
質問者

補足

すいません エラー出ました  →   for ( number n : candidates ) { ↑  // nがこれまでに得られたhintと矛盾がないならば、それは正解かもしれないので候補に残す ↑ if ( all_of(begin(hints),end(hints),[&](hint h) { return judge(n,h.first) == h.second;}) ) ↑{ ↑ new_candidates.push_back(n); ↑ }  ←のところで 構文エラー : ',' が ':' の前にありません。 構文エラー : ';' が '{' の前にありません。 と出てしまいました どうすればいいでしょうか? VC++でやってます

すると、全ての回答が全文表示されます。
回答No.4

> 1人だとおもしろくないのでコンピュータの対戦相手 > をつくりたいと思いました。 > でもプログラムがさっぱりわかりません。 > どんなプログラムにすればいいでしょうか? 1. int countEat(真の答, 予想した答) , int countByte(真の答, 予想した答) を用意する 2. for ( 0~9 のすべての組み合わせ(7200通り) X について )    for ( 今までの 予想した答 G およびその時のEat/Byte数 E,B について ) {     if ( countEat(X,G) != E || countByte(X,G) != B ) ならば X は真の答ではない    }   } 3.2によって得られた 真の答と思われる X の一つを出力し、EとBを(playerから)もらう

すると、全ての回答が全文表示されます。
回答No.3

> 答えをつくるところはかぶる数字がでる > 確立はかなり低いと思うんですが確率が0%ではないので0%にする方法 カブったらやり直す戦略で: kotae1=rand() %9+1; do { kotae2=rand() %9+1; } while ( kotae1 == kotae2 ); /* カブったらやり直す */ do { kotae3=rand() %9+1; } while ( kotae1 == kotae3 || kotae2 == kotae3 ); /* カブったらやり直す */

spmz1311
質問者

お礼

できました!! とてもわかりやすかったです! 回答ありがとうございました

すると、全ての回答が全文表示されます。
  • web2525
  • ベストアンサー率42% (1219/2850)
回答No.2

No1です 回答はVBAでのものなので、C言語の文法に書き換えてください 要は kotae2は0-8のランダム値を取り、kotae1以上数値の場合は+1 kotae3は0-7のランダム値を取り、kotae1とkotae2の最小値より小さい場合はそのまま kotae1とkotae2の最大値-2以上の場合は+2、それ以外は+1 これで重複なしにランダムな0-9の数値が3個取り出せます

すると、全ての回答が全文表示されます。
  • web2525
  • ベストアンサー率42% (1219/2850)
回答No.1

>答えをつくるところはかぶる数字がでる こちらの解決手段ですが kotae1 = Int(10 * Rnd) kotae2 = Int(9 * Rnd) kotae2 = kotae2 - (kotae2 >= kotae1) kotae3 = Int(8 * Rnd) kotae3 = kotae3 - (kotae3 >= kotae1) kotae3 = kotae3 - (kotae3 >= kotae2) これで重複なしになるはずです

すると、全ての回答が全文表示されます。

関連するQ&A