昨日こんなテーブルゲームのAIを作成していました。
(ただし開発中のものなので随時変更はありそうです)
その開発過程をざっくり解説してみます。
8x8マスの盤面にダイスが8個ずつ並んでいます。
プレイヤーは各ターン毎に各ダイスの所有者、位置、前後上下左右のダイスの目を情報として得られます。
ゲームの勝ちは相手のダイス(以下 駒)を全て取る。 . . . 本文を読む
30分ほどでなにか作ってみようとしてできあがったもの。
トランプのカードを配る。(余りは配らない)
時間が余ったので大富豪の順位を予想する。
作成したソースリスト
https://colab.research.google.com/drive/1inFusu4VPHfx8Ejc7amTfix0HDum_XeS?usp=sharing . . . 本文を読む
CodinGameのマルチプレイヤーゲームで世界一位をキープしている日本人はおそらくいません。
ただ瞬間世界一位なら3年ぐらい鍛えれば、わりと簡単に取れると思われます。(個人の感想です)
まずCOMMUNITYのCONTRIBUTIONSで掲載されたばかりのものをねらいます。
トッププレイヤーが本気で狙ってきたら、至難の技です。
新しいものを発見!
ル . . . 本文を読む
先日、頂きを目指していた。
hanabiというカードゲームのアルゴリズム。
今の所4位で使用している時間は1ターン0.01秒にもみたない。後5倍は考えられる状態。
ただ実装力がたりない。足りないのは検証力か?
朝まで悩んで、これは頭ぶっ壊れるなと思ってそこまでのものを投入。
少し3位に近づいた程度。
入れ替え制でチームで高みを目指すというこのゲームのよう . . . 本文を読む
ナイン・メンズ・モリス
という2000年前からあるボードゲームらしい。
こんな感じのゲーム
互いに交点に石を置いて、縦横のラインに3つ自分の石が並ぶと1個相手の石を取る。
置く石がなくなると交互に駒を、交点から隣の交点まで動かせるようになる。
同じように3つ並んだ時、1個相手の石を取る。
自分の石が残り3個になると、自由に駒を動かせるらしい。
この . . . 本文を読む
Pythonのソースを見ていて@window.eventとか関数の引数に*dataをみかけて
まだまだ知らないこと多いなと調査
@の方はクラスのメソッドを上書きとかそういうものらしい、
実装してみようとライブラリとか作ってみましたがなんかうまくいかず
普通はクラスの継承を使うと行った記述をみかけたので
クラスの継承を学習、継承とオーバーライドのスーパークラスの呼び出しが簡単にできることが . . . 本文を読む
Pythonの本のダウンロードソースを見ていて、 1,2行目のようなクラス定義をみかける
いきなりpassして終了。
その本には提示されていない部分なので、作りかけでやめたのかなとおもったのだけど
その後でそのクラスを使っていて、クラス内変数も定義している。
Pythonの自在な設計には何度も驚かされているけど、
こんな使い方もできるのかと、少し実験してみました。
&n . . . 本文を読む
もともとコンピュータは弾道計算から発展したとか、暗号解読から発展したとか
いろいろな事象の計算から発展したそうです。
プチコンとかの投稿を見ていても。
三角関数はたまに難題としてあがっています。(高校で習う)
あとラジアンと度の変換とかいろんな罠がまってます。
三角関数 ラジアン でgoogle画層検索すると、
山のように教えてくれる画像がでてきます。( . . . 本文を読む
延々と作っているとデータ設計からし直したくなる時が来る。
その新しいデータ設計も速くはなりそうだけど、まとまるのか自信がない。
しっかり練って作り直さないとダメになる確率も高い。
chessの改良どうしたものかと悩んでいる中 amazonsというゲームが投稿(制作中)されていたので遊んでみます。
最初は簡易なものから作成、移動先の空き2マスぐらいを評価値にしようとしましたが . . . 本文を読む
まったく使ったことのない言語awkで15:30に始めて2時間を目標に開始
ubuntuだとmawk
説明に関して、確実なことは言えないのでコメントは全て推測です
7分で一回挫折
1) awkファイルを作ってhiを表示させる 15:54
↑をp.awkで保存
2) awkは+で無理やり計算をする 15:56 . . . 本文を読む
https://colab.research.google.com/drive/1wJHji3NI6MSZntR4H0QCyKCmx3GCB_Nj?usp=sharing
箱入り娘というパズルゲーム
いつか解いてみたいなと思っていて、昨日プチコン4号で解いてみる。
それをパイソンに移植してみて、少し効率化させてみたのが上のリンク
評価関数少し検討してみたけど . . . 本文を読む
アルゴリズムを作成する楽しさにスピードアップさせて満足するというものがある。
ほんの1行で格段に上がることも多々あります。
呆然とするばかりである。こんなものを載せていたとは、と...
数独の超難問を解くpythonのプログラム
2019年10月22日 このころ個人的には今と同じでさえないですが、今と比べるとはるかに幸せな時代でした。
なん . . . 本文を読む
C++で自在なソートをみかけて、Pythonでもできるかなと、やってみました。
3つソートしてます。
1) 33行目 指定位置から既存の関数 文字列の長さ lenでソート
2) 36行目 23行目から作成関数 長さと数値でソート
3) 48行目 クラスのリストも作成関数 クラスの1つの変数の長さでソート . . . 本文を読む
15パズルの少し小さいサイズの11パズルを解くプログラム
CodinGameの11-puzzle
一年前に16%しか解けなかった難問にリベンジをしようとして66%で断念
これはきっと解法を知らないと時間内には無理ではないだろうか?
一年前は位置があった所を1点換算の評価値でパスファインディング
今回は、各数値のズレを距離換算の評価値
またズレは都度計算せ . . . 本文を読む
カックロの問題を解くアルゴリズム1で瓦解したプログラムを修繕
わからない時はドンドン、ログをはくべし。
どんなデータが来てどんなデータを返しているのかあらゆる場所に入れていく。
ほんとにとんでもない、バグがあちこちにありました。
手さえ動かしていれば、なんとかなります。
ランダムで着手しているため、まだ時々タイムアウトをおこしている難題 . . . 本文を読む