X



c言語でオセロのプログラム作りたいんやが
■ このスレッドは過去ログ倉庫に格納されています
0001風吹けば名無し
垢版 |
2022/06/24(金) 00:21:35.43ID:C+R1qHO/0
すまんな、また立てた
白黒を入れ替える方法がどうも思いつかん
わかる人おる?
0002風吹けば名無し
垢版 |
2022/06/24(金) 00:22:40.85ID:JAXVUiwJ0
え?
0003風吹けば名無し
垢版 |
2022/06/24(金) 00:22:47.90ID:mF43THOY0
入れ替える方法というか入れ替える駒を特定する方法ってことか?
0004風吹けば名無し
垢版 |
2022/06/24(金) 00:23:33.61ID:JAXVUiwJ0
普通に置かれた石と同じ色に突き当たるまで4方向探索すればええだけなのでは?
0005風吹けば名無し
垢版 |
2022/06/24(金) 00:24:23.05ID:QSy/HvJ/M
隣が違う色なら次にすすむ
その隣が違う色ならさらに次に進む、同じ色ならひっくり返す、壁なら終了
0006風吹けば名無し
垢版 |
2022/06/24(金) 00:24:27.58ID:iOuBOS+G0
まずは三目並べにしたら?
0007風吹けば名無し
垢版 |
2022/06/24(金) 00:24:33.35ID:C+R1qHO/0
>>3
駒を特定する方法はなんとなく想像できるんやが
そのあとの置いたコマまでの駒をひっくり返す処理が思いつかん
0008風吹けば名無し
垢版 |
2022/06/24(金) 00:25:02.78ID:EfCoUe7+M
カメラでオセロゲーム画面撮影させてそれを操作するプログラムにしろ
0009風吹けば名無し
垢版 |
2022/06/24(金) 00:25:45.40ID:QSy/HvJ/M
>>7
2112ってあったら1の地点に2を入れるだけやろ
0010風吹けば名無し
垢版 |
2022/06/24(金) 00:26:08.45ID:xMrzelFK0
UIの話じゃないよな?何の事言ってるんや
0011風吹けば名無し
垢版 |
2022/06/24(金) 00:26:21.59ID:JAXVUiwJ0
0なら1で1なら0にするだけなのに
0012風吹けば名無し
垢版 |
2022/06/24(金) 00:26:55.69ID:rsFTbb8D0
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;
}
}
}
0013風吹けば名無し
垢版 |
2022/06/24(金) 00:27:26.21ID:C+R1qHO/0
>>4
探索するのは出来る
forで回しながら違う駒ならbreakとか使えばええしな
ただ探索の時点ではひっくり返さないやろ?
そこがわからんのやで
0014風吹けば名無し
垢版 |
2022/06/24(金) 00:27:56.63ID:QSy/HvJ/M
>>13
ひっくり返す座標返せばええやん
0015風吹けば名無し
垢版 |
2022/06/24(金) 00:28:00.06ID:G9fBkq/60
>>7

>>13
探索のときにひっくり返しておいて同色見つからなかったら元に戻せ
0016風吹けば名無し
垢版 |
2022/06/24(金) 00:28:17.62ID:JAXVUiwJ0
>>13
ひっくり返すマスを記録するために変数用意しておけばいいのでは?
0017風吹けば名無し
垢版 |
2022/06/24(金) 00:30:26.50ID:xMrzelFK0
>>13
テーブルを用意するか変更対象の座標をpushして置いておいて後処理で一気に変える
探索しながら変えれるやろとは思うけどなw
0019風吹けば名無し
垢版 |
2022/06/24(金) 00:30:46.88ID:GLjy4dCM0
配列つかってfor文の中にif文いれて上手いことやるんやで
0020風吹けば名無し
垢版 |
2022/06/24(金) 00:31:21.08ID:JAXVUiwJ0
というかせめてaiの部分で躓けよ
0021風吹けば名無し
垢版 |
2022/06/24(金) 00:31:28.21ID:KPdCBcI60
>>12
K&R風に書くな😡
0024風吹けば名無し
垢版 |
2022/06/24(金) 00:32:30.42ID:C+R1qHO/0
>>12
なんか、頭に浮かんできたサンキューやでやってみるわ!
0025風吹けば名無し
垢版 |
2022/06/24(金) 00:34:29.38ID:gveKD9/20
多次元配列作って判定していけばいいだけやろ
0027風吹けば名無し
垢版 |
2022/06/24(金) 00:35:11.64ID:gveKD9/20
>>12
Cじゃなくて草
0028風吹けば名無し
垢版 |
2022/06/24(金) 00:35:33.13ID:Lj/lAG0Xd
例えば黒石が白石と隣接したらそっちの方向に黒石が見つかるまで進んでいったらええんやないんか?
0029風吹けば名無し
垢版 |
2022/06/24(金) 00:35:53.67ID:JzsUpMDda
知らんけどこういうのって画面はじの判定がだるそう
0030風吹けば名無し
垢版 |
2022/06/24(金) 00:36:03.10ID:qaKW1x+R0
大学の課題やろ
ワイは取らなかったけど見かけたわその授業
0031風吹けば名無し
垢版 |
2022/06/24(金) 00:36:04.06ID:dx7wQMqA0
>>12
配列外参照で死ぬ
0032風吹けば名無し
垢版 |
2022/06/24(金) 00:37:12.26ID:7knOJ+jIM
>>29
座標渡して範囲外か返す関数作るだけやろ
0033風吹けば名無し
垢版 |
2022/06/24(金) 00:37:14.83ID:ypB1NQ920
>>20
オセロくらいだとAI使わなくても今なら最後まで先読み全パターン列挙できそう
相手の手含め何パターンくらいあるんだろう
0034風吹けば名無し
垢版 |
2022/06/24(金) 00:38:00.34ID:xMrzelFK0
へっぽこCPUなら作ったことがあるなw
一手先も読めない奴
0035風吹けば名無し
垢版 |
2022/06/24(金) 00:38:08.44ID:JAXVUiwJ0
>>33
オセロですらまだ完全解析されてないぞ
0036風吹けば名無し
垢版 |
2022/06/24(金) 00:38:53.12ID:7knOJ+jIM
>>33
無理やろ
終了20~30手前から全探索するオセロアプリはあった気がするが
0037風吹けば名無し
垢版 |
2022/06/24(金) 00:39:57.90ID:ypB1NQ920
>>35
マジか…意外と奥深なんやね
仮に列挙できてもその時点でどのルートが最善かは別問題か
0038風吹けば名無し
垢版 |
2022/06/24(金) 00:40:47.20ID:YCqUQbBWH
グラフ理論とか使えば多少楽になるんちゃうか
0042風吹けば名無し
垢版 |
2022/06/24(金) 00:45:36.30ID:ypB1NQ920
まあ面白そうやね 学生の課題ならこんなもんか
そのうち小学生が同じ質問してくるんやろなあ
0043風吹けば名無し
垢版 |
2022/06/24(金) 00:46:41.23ID:JnNyeP9z0
>>42
知らんくせに何か偉そうで草
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況