パーソナルブログメモリ

a = [1, 1]
for _ in "*" * 999: a += [sum(a[-2:])]
print(a)

日本一役に立たないAI作成手順の解説

2021-03-19 | プログラムをマスター計画2020
  昨日こんなテーブルゲームのAIを作成していました。 (ただし開発中のものなので随時変更はありそうです)   その開発過程をざっくり解説してみます。   8x8マスの盤面にダイスが8個ずつ並んでいます。 プレイヤーは各ターン毎に各ダイスの所有者、位置、前後上下左右のダイスの目を情報として得られます。 ゲームの勝ちは相手のダイス(以下 駒)を全て取る。 . . . 本文を読む

瞬間世界一のすすめ

2021-02-15 | プログラムをマスター計画2020
CodinGameのマルチプレイヤーゲームで世界一位をキープしている日本人はおそらくいません。 ただ瞬間世界一位なら3年ぐらい鍛えれば、わりと簡単に取れると思われます。(個人の感想です) まずCOMMUNITYのCONTRIBUTIONSで掲載されたばかりのものをねらいます。 トッププレイヤーが本気で狙ってきたら、至難の技です。     新しいものを発見! ル . . . 本文を読む

いただきには実は何もない

2021-02-13 | プログラムをマスター計画2020
先日、頂きを目指していた。 hanabiというカードゲームのアルゴリズム。 今の所4位で使用している時間は1ターン0.01秒にもみたない。後5倍は考えられる状態。 ただ実装力がたりない。足りないのは検証力か?   朝まで悩んで、これは頭ぶっ壊れるなと思ってそこまでのものを投入。 少し3位に近づいた程度。   入れ替え制でチームで高みを目指すというこのゲームのよう . . . 本文を読む

ナイン・メンズ・モリスのAIを線形と辞書で、つくってみる

2021-02-12 | プログラムをマスター計画2020
ナイン・メンズ・モリス という2000年前からあるボードゲームらしい。   こんな感じのゲーム 互いに交点に石を置いて、縦横のラインに3つ自分の石が並ぶと1個相手の石を取る。 置く石がなくなると交互に駒を、交点から隣の交点まで動かせるようになる。 同じように3つ並んだ時、1個相手の石を取る。 自分の石が残り3個になると、自由に駒を動かせるらしい。   この . . . 本文を読む

Python 関数の*引数とクラスの継承

2021-02-06 | プログラムをマスター計画2020
Pythonのソースを見ていて@window.eventとか関数の引数に*dataをみかけて まだまだ知らないこと多いなと調査 @の方はクラスのメソッドを上書きとかそういうものらしい、 実装してみようとライブラリとか作ってみましたがなんかうまくいかず 普通はクラスの継承を使うと行った記述をみかけたので クラスの継承を学習、継承とオーバーライドのスーパークラスの呼び出しが簡単にできることが . . . 本文を読む

Python passだけのclassの謎

2021-02-06 | プログラムをマスター計画2020
Pythonの本のダウンロードソースを見ていて、 1,2行目のようなクラス定義をみかける いきなりpassして終了。 その本には提示されていない部分なので、作りかけでやめたのかなとおもったのだけど その後でそのクラスを使っていて、クラス内変数も定義している。   Pythonの自在な設計には何度も驚かされているけど、 こんな使い方もできるのかと、少し実験してみました。 &n . . . 本文を読む

三角関数で弾道計算(方向計算)

2021-01-29 | プログラムをマスター計画2020
もともとコンピュータは弾道計算から発展したとか、暗号解読から発展したとか いろいろな事象の計算から発展したそうです。   プチコンとかの投稿を見ていても。 三角関数はたまに難題としてあがっています。(高校で習う) あとラジアンと度の変換とかいろんな罠がまってます。   三角関数 ラジアン でgoogle画層検索すると、 山のように教えてくれる画像がでてきます。( . . . 本文を読む

amazonsのコーディングのデバッグ

2021-01-27 | プログラムをマスター計画2020
延々と作っているとデータ設計からし直したくなる時が来る。 その新しいデータ設計も速くはなりそうだけど、まとまるのか自信がない。 しっかり練って作り直さないとダメになる確率も高い。   chessの改良どうしたものかと悩んでいる中 amazonsというゲームが投稿(制作中)されていたので遊んでみます。 最初は簡易なものから作成、移動先の空き2マスぐらいを評価値にしようとしましたが . . . 本文を読む

未知の言語awkで箱入り娘を解くまで

2021-01-22 | プログラムをマスター計画2020
まったく使ったことのない言語awkで15:30に始めて2時間を目標に開始 ubuntuだとmawk   説明に関して、確実なことは言えないのでコメントは全て推測です 7分で一回挫折   1) awkファイルを作ってhiを表示させる 15:54 ↑をp.awkで保存     2) awkは+で無理やり計算をする 15:56 . . . 本文を読む

Python 過去のアルゴリズムの高速化

2021-01-15 | プログラムをマスター計画2020
アルゴリズムを作成する楽しさにスピードアップさせて満足するというものがある。 ほんの1行で格段に上がることも多々あります。   呆然とするばかりである。こんなものを載せていたとは、と...   数独の超難問を解くpythonのプログラム 2019年10月22日 このころ個人的には今と同じでさえないですが、今と比べるとはるかに幸せな時代でした。   なん . . . 本文を読む

Python keyに作った関数を指定してソート

2021-01-14 | プログラムをマスター計画2020
C++で自在なソートをみかけて、Pythonでもできるかなと、やってみました。       3つソートしてます。 1) 33行目 指定位置から既存の関数 文字列の長さ lenでソート  2) 36行目 23行目から作成関数 長さと数値でソート 3) 48行目 クラスのリストも作成関数 クラスの1つの変数の長さでソート  . . . 本文を読む

11-puzzleを解くプログラム

2021-01-12 | プログラムをマスター計画2020
15パズルの少し小さいサイズの11パズルを解くプログラム CodinGameの11-puzzle 一年前に16%しか解けなかった難問にリベンジをしようとして66%で断念   これはきっと解法を知らないと時間内には無理ではないだろうか? 一年前は位置があった所を1点換算の評価値でパスファインディング   今回は、各数値のズレを距離換算の評価値 またズレは都度計算せ . . . 本文を読む

カックロの問題を解くアルゴリズム2

2021-01-10 | プログラムをマスター計画2020
カックロの問題を解くアルゴリズム1で瓦解したプログラムを修繕   わからない時はドンドン、ログをはくべし。 どんなデータが来てどんなデータを返しているのかあらゆる場所に入れていく。 ほんとにとんでもない、バグがあちこちにありました。   手さえ動かしていれば、なんとかなります。   ランダムで着手しているため、まだ時々タイムアウトをおこしている難題 . . . 本文を読む