Python(オセロ18_データフォーマットの整理)
■結果を入れるフォーマットについて。
ロジックや持つデータなどいろいろと検討してきたけど、今回は持ち方について考えてみる。1度に大量のゲームを行ったり、複雑なロジックを実行すると時間がそれなりにかかる。そのため、データを追加できるような形にはしたい。
以前にSQLiteを触ったので、データベース上に入れる形にする。
データの構造については下のように、1手毎、1ゲーム毎、1実行毎の3つを用意する。
○1手毎の列情報
ゲームID ゲームターン数 盤上 現在のターン(黒か白) ロジック名 回答時間 メモリ 裏返せる石(黒) 裏返せる石(白) 黒の数 白の数 安定石(黒) 安定石(白) リスクがある石 四隅
○1ゲーム毎の列情報
ゲームID ロジック名 Eloレーティング 対戦相手のロジック 黒の数 白の数 勝敗
○1実行毎の次情報
日付 総ゲーム数
と、ここまではこれまでの作業から適当に考えたもの。これをChat GPTに入れて、改善してもらいつつER図を作った。
logicを名前で持つのは危険なためidを使うよう推奨されたり、Eloレーティングは別テーブルにするよう推奨された。

確かにロジック部分は後でコードを修正した場合、名前だけだと管理しきれない。少なくともロジックidのようなものは必要になる。盤面の状態まで持つとデータ量が多くなる指摘もあった。例えば、ディスク容量の負担になるもので、取っておいた方がいいけどすぐに使うことはないもの(生データのようなもの)は、別のファイル保存にして、ファイルを移動できるようにした方がいいのかな(これはChat GPTも賛同した)。
いろいろとデータを取得しても結局は何をやりたいかによりけりなので、とりあえずはこのER図に沿った形で進めようと思う。

