c言語でオセロのプログラム作りたいんやが
■ このスレッドは過去ログ倉庫に格納されています
すまんな、また立てた
白黒を入れ替える方法がどうも思いつかん
わかる人おる? 入れ替える方法というか入れ替える駒を特定する方法ってことか? 普通に置かれた石と同じ色に突き当たるまで4方向探索すればええだけなのでは? 隣が違う色なら次にすすむ
その隣が違う色ならさらに次に進む、同じ色ならひっくり返す、壁なら終了 >>3
駒を特定する方法はなんとなく想像できるんやが
そのあとの置いたコマまでの駒をひっくり返す処理が思いつかん カメラでオセロゲーム画面撮影させてそれを操作するプログラムにしろ >>7
2112ってあったら1の地点に2を入れるだけやろ C忘れたから適当に書いた、これを8方向分やればいけるんでね
function(int x_zahyo, int y_zahyo, int x_houkou, int y_houkou, char color){
change = x_zahyoとy_zahyoを保持できる構造体の配列
while(true){
x_zahyo += x_houkou;
y_zahyo += y_houkou;
if(board[x_zahyo][y_zahyo] == null){
return;
}else if(board[x_zahyo][y_zahyo] != color){
x_zahyoとy_zahyoを構造体に入れてchangeに入れる
continue;
}else{
changeに入れてる分を全てひっくり返す
return;
}
}
} >>4
探索するのは出来る
forで回しながら違う駒ならbreakとか使えばええしな
ただ探索の時点ではひっくり返さないやろ?
そこがわからんのやで >>7
>>13
探索のときにひっくり返しておいて同色見つからなかったら元に戻せ >>13
ひっくり返すマスを記録するために変数用意しておけばいいのでは? >>13
テーブルを用意するか変更対象の座標をpushして置いておいて後処理で一気に変える
探索しながら変えれるやろとは思うけどなw 配列つかってfor文の中にif文いれて上手いことやるんやで >>12
なんか、頭に浮かんできたサンキューやでやってみるわ! 例えば黒石が白石と隣接したらそっちの方向に黒石が見つかるまで進んでいったらええんやないんか? 大学の課題やろ
ワイは取らなかったけど見かけたわその授業 >>20
オセロくらいだとAI使わなくても今なら最後まで先読み全パターン列挙できそう
相手の手含め何パターンくらいあるんだろう へっぽこCPUなら作ったことがあるなw
一手先も読めない奴 >>33
無理やろ
終了20~30手前から全探索するオセロアプリはあった気がするが >>35
マジか…意外と奥深なんやね
仮に列挙できてもその時点でどのルートが最善かは別問題か まあ面白そうやね 学生の課題ならこんなもんか
そのうち小学生が同じ質問してくるんやろなあ ■ このスレッドは過去ログ倉庫に格納されています