【YouTube補足】オセロソースコード&実行ファイルの再アップ 投稿者: ほむほむ | 2017年6月22日 5件のコメント ブログデータの変更によりYouTube動画のソースコードがないため、再びアップします。 オセロくんソースコード オセロくん実行ファイル
泉谷 航 2017年12月3日 初期配置の黒と白を入れ替えると、ゲーム終了後の勝敗の表示が何度も出てきます。初期配置の色を反転させるには どうすればいいですか。 また、AIが先手の場合はどこを変更すればいいですか。 返信 ↓
ほむほむ 投稿作成者2017年12月4日 泉谷さん コメントありがとうございます。ほむほむです。 こちらの環境では勝敗の表示が何度も出てくる症状は確認できませんでした。 (このページのソースコードを参照しました) 1.初期の配置ですが、SceneGame.csの84~87行目がそれにあたります。 こちらを SpriteKoma.KomaType.Black→SpriteKoma.KomaType.White SpriteKoma.KomaType.White→SpriteKoma.KomaType.Black 入れ替わると思います。 また変則では、 getSpriteKoma(2, 2).Type = SpriteKoma.KomaType.White; などと追記すると、5個目の石が初期盤面に現れます。 2.AIの変更ですが、46~48行目がそれにあたります。 m_player[0] = new PlayerMe(this); はプレイヤーに操作をさせるタスクで、 m_player[1] = new PlayerRandom(this); はランダムAIになります。 そのため、先後を入れ替えるためには m_player[0] = new PlayerRandom(this); m_player[1] = new PlayerMe(this); とすると、実現できると思います。 ちなみに、下記のようにすると両方ランダムになり、 m_player[0] = new PlayerRandom(this); m_player[1] = new PlayerRandom(this); 独自にPlayerRandom2のようなクラスを作れば m_player[0] = new PlayerRandom(this); m_player[1] = new PlayerRandom2(this); と、別のアルゴリズム同士で対戦させることも可能です。 ちょっと動画から間が空いてしまいましたが、このあたりは後日動画で補足したいと思います。 返信 ↓
ほむほむ 投稿作成者2017年12月4日 泉谷さん コメントありがとうございます。ほむほむです。 現在アップされているものが少し過去のソースで、現在のソースはどこかにいってしまったため、 場所と関数をヒントとしてお伝えします。 場所:SpriteBg.cs public override void onDraw(Graphics g) 関数 線を引く:g.DrawLine(Pens.Black, 0, 0, 10, 10); 円を書く(埋める):g.FillEllipse(Brushes.Black, 0, 0, 6, 6); 返信 ↓
初期配置の黒と白を入れ替えると、ゲーム終了後の勝敗の表示が何度も出てきます。初期配置の色を反転させるには
どうすればいいですか。
また、AIが先手の場合はどこを変更すればいいですか。
泉谷さん
コメントありがとうございます。ほむほむです。
こちらの環境では勝敗の表示が何度も出てくる症状は確認できませんでした。
(このページのソースコードを参照しました)
1.初期の配置ですが、SceneGame.csの84~87行目がそれにあたります。
こちらを
SpriteKoma.KomaType.Black→SpriteKoma.KomaType.White
SpriteKoma.KomaType.White→SpriteKoma.KomaType.Black
入れ替わると思います。
また変則では、
getSpriteKoma(2, 2).Type = SpriteKoma.KomaType.White;
などと追記すると、5個目の石が初期盤面に現れます。
2.AIの変更ですが、46~48行目がそれにあたります。
m_player[0] = new PlayerMe(this); はプレイヤーに操作をさせるタスクで、
m_player[1] = new PlayerRandom(this); はランダムAIになります。
そのため、先後を入れ替えるためには
m_player[0] = new PlayerRandom(this);
m_player[1] = new PlayerMe(this);
とすると、実現できると思います。
ちなみに、下記のようにすると両方ランダムになり、
m_player[0] = new PlayerRandom(this);
m_player[1] = new PlayerRandom(this);
独自にPlayerRandom2のようなクラスを作れば
m_player[0] = new PlayerRandom(this);
m_player[1] = new PlayerRandom2(this);
と、別のアルゴリズム同士で対戦させることも可能です。
ちょっと動画から間が空いてしまいましたが、このあたりは後日動画で補足したいと思います。
ありがとうございます。
ホームページの実行ファイルはボードにマス目が入っていますが、どうすればマス目が引けるのですか
泉谷さん
コメントありがとうございます。ほむほむです。
現在アップされているものが少し過去のソースで、現在のソースはどこかにいってしまったため、
場所と関数をヒントとしてお伝えします。
場所:SpriteBg.cs public override void onDraw(Graphics g)
関数
線を引く:g.DrawLine(Pens.Black, 0, 0, 10, 10);
円を書く(埋める):g.FillEllipse(Brushes.Black, 0, 0, 6, 6);
AIをランダムではなく、もう少し強するため、評価値を付けたい
のですがどこをいじれば良いのでしょうか?