ここの所bitboardにはまりっぱなし。最初はプチコン3号で55将棋を作ろうとする。次にprocessingで55将棋を作ろうとする。
そして現在はオセロのランダム対局までなんとか。
プチコン3号の55将棋は画面表示ぐらい。駒の移動先をbitboardで表示まではいったのですがそこから先がまったく見えなくなって中断。
指しての生成ルーチンがどうにもまとまらない。また3DSアナログパッドがリストのスクロールの繰り返しでだんだんバカになってきている。
1バイトを構造体のように使ったりして、バグがどんどん発生さすがにしんどいので保留。
次にprocessingで作ってみるがやはり指して生成がまとまらず。盤とかのクラス設計も今一つ落ち着かない。
ということでprocessingでオセロにしてみる。
さんざんはまったので、ようやくbitboardが少し使えるようになってきました。
longを使って
Board bd=new Board(0,0);
bd.b=new BigInteger("0000001008000000", 16).longValue();
bd.w=new BigInteger("0000000810000000", 16).longValue();
こんな感じでデータ設定
普通の0xffffとかだと32ビットまでの設定もおぼつかない。
Boardはlongのbとwしか持っていない。
long n=Long.bitCount(bd.b);
こんな感じで駒の数も取得できます。
現在空白も入れて500ステップ弱
ランダム対戦で10000局が5秒ちょっと
一局の作成盤面数は500面前後
勝った方の駒の位置とか指しての位置をカウントとかさせたりしていますが、まだこれといった条件はみつからず。
そろそろ自分より強いプレイヤーを作りたいのですが、コーディング力が足りない状態です。
1万局対局させて負けた方が指した手の計算結果
左上はなんかのバグ、先頭は正負のビットなのでどこかで判断ミスをしています。
隅をとっている数が少ないのと隅の周りを多くとっているのはわかります。
といっても左上のデータなんかおかしいです。
複合的なバグっぽいです。
現在確定位置のラフな計算を作成中
bit演算とシフト慣れていないので、ほんとに頭こんがらがります。
processingなのに、ここまでdraw()まったく使っていません。
すべてsetup()にコーディングしてます。
そして現在はオセロのランダム対局までなんとか。
プチコン3号の55将棋は画面表示ぐらい。駒の移動先をbitboardで表示まではいったのですがそこから先がまったく見えなくなって中断。
指しての生成ルーチンがどうにもまとまらない。また3DSアナログパッドがリストのスクロールの繰り返しでだんだんバカになってきている。
1バイトを構造体のように使ったりして、バグがどんどん発生さすがにしんどいので保留。
次にprocessingで作ってみるがやはり指して生成がまとまらず。盤とかのクラス設計も今一つ落ち着かない。
ということでprocessingでオセロにしてみる。
さんざんはまったので、ようやくbitboardが少し使えるようになってきました。
longを使って
Board bd=new Board(0,0);
bd.b=new BigInteger("0000001008000000", 16).longValue();
bd.w=new BigInteger("0000000810000000", 16).longValue();
こんな感じでデータ設定
普通の0xffffとかだと32ビットまでの設定もおぼつかない。
Boardはlongのbとwしか持っていない。
long n=Long.bitCount(bd.b);
こんな感じで駒の数も取得できます。
現在空白も入れて500ステップ弱
ランダム対戦で10000局が5秒ちょっと
一局の作成盤面数は500面前後
勝った方の駒の位置とか指しての位置をカウントとかさせたりしていますが、まだこれといった条件はみつからず。
そろそろ自分より強いプレイヤーを作りたいのですが、コーディング力が足りない状態です。
8256 4919 5084 4949 4981 4912 5568 3238 4901 5122 5043 5148 5012 5005 5347 5438 5005 5020 5099 4947 5116 4880 5071 4763 4852 5183 4951 0 0 5135 5075 4875 5038 5053 5132 0 0 4966 5120 4953 4777 5088 4911 5152 4994 5013 5085 4809 5376 5300 5051 5062 5127 5043 5255 5273 3272 5420 4882 4871 4885 4790 5305 3551
1万局対局させて負けた方が指した手の計算結果
左上はなんかのバグ、先頭は正負のビットなのでどこかで判断ミスをしています。
隅をとっている数が少ないのと隅の周りを多くとっているのはわかります。
といっても左上のデータなんかおかしいです。
複合的なバグっぽいです。
現在確定位置のラフな計算を作成中
bit演算とシフト慣れていないので、ほんとに頭こんがらがります。
processingなのに、ここまでdraw()まったく使っていません。
すべてsetup()にコーディングしてます。