6
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

オセロAIの学習のためのデータをダウンロードするプログラム

Last updated at Posted at 2019-05-16

#初めに
プログラミングを勉強するには何を作るか目標を立てるのがベストだといいます。
私が目標として選んだのはオセロです。
ゲーム開発の勉強も兼ねてUnityでオセロを作りました。
一人でプレイできるようにはなったものの、AIが作れません。
強化学習だか深層学習だかで実装できるようなので勉強しながらコードを書いていきます。
今のところデータをダウンロードしただけです。
ここのデータをダウンロードしました。

#ソースコード

言語は機械学習のライブラリが豊富なpythonです。
同階層にdatasetというディレクトリを作成し、その中にデータを入れていきます。

download.py
import sys
import urllib.request
import os.path

url = "https://www.skatgame.net/mburo/ggs/game-archive/Othello/"
#ダウンロードするファイルのリスト
fileList = {

}
#ダウンロードするファイルのリストを作る
for fileNumber in range(1, 155):
    if fileNumber <= 9:
        fileList[fileNumber] = 'Othello.0' + str(fileNumber) + 'e4.ggf.bz2'
    elif fileNumber <= 128:
        fileList[fileNumber] = 'Othello.' + str(fileNumber) + 'e4.ggf.bz2'
    else:
        fileList[fileNumber] = 'Othello.' + str(fileNumber) + '.ggf.bz2'
    print('making download list...' + fileList[fileNumber])
    pass
print("Done")

def _download(fileName):
    filePath = "./dataset/" + fileName

    if os.path.exists(filePath):
        return

    print("Downloading " + fileName + " ... ")
    urllib.request.urlretrieve(url + fileName, filePath)
    print("Done")

#ファイルをダウンロードする
for fileName in fileList.values():
    _download(fileName)

#今後
次はダウンロードしたファイルを解凍する予定です。
手動で解凍したらこんなデータが出てきました。(改行がないので見づらいですが)

Othello.01e4.ggf
(;GM[Othello]PC[GGS/os]DT[940606712]PB[igor]PW[ant]RB[1285.87]RW[1471.98]TI[15:00//02:00]TY[8]RE[-38.00]BO[8 -------- -------- -------- ---O*--- ---*O--- -------- -------- -------- *]B[D3//4.58]W[C5/8.57/1.56]B[D6//1.67]W[E3/-35.58/0.09]B[F4//1.05]W[C6/-52.58/0.08]B[F5//1.41]W[C3/-24.58/0.06]B[C4//1.00]W[B5/-39.58/0.06]B[B4//0.93]W[F3/18.69/0.02]B[A5//2.25]W[B6/8.83/0.01]B[E6//1.40]W[A6/3.56]B[A7//1.72]W[A3/5.22/0.01]B[C7//2.88]W[D7/8.34/0.01]B[C8//1.78]W[G4/5.74/0.01]B[H3//4.70]W[F7/8.15]B[E7//3.44]W[G6/4.89/0.01]B[G3//3.31]W[G5/8.55/0.01]B[H5//1.46]W[F8/18.78/0.01]B[E8//4.44]W[F6/20.19/0.01]B[F2//4.39]W[D2/22.85/0.02]B[E2//1.56]W[C2/24.21/0.01]B[D1//4.15]W[B3/27.01/0.01]B[C1//2.23]W[A4/29.50/0.03]B[A2//1.40]W[G2/31.79/0.01]B[F1//4.67]W[H1/36.59/0.01]B[G1//1.46]W[E1/42.76]B[B2//1.40]W[A1/35.63/0.01]B[B1//0.88]W[H2/34.88/0.01]B[G8//3.04]W[D8/35.22/0.01]B[G7//1.66]W[H8/35.13/0.01]B[H7//0.91]W[H6/37.81/0.01]B[pass//0.68]W[H4/40.62/0.01]B[pass//0.62]W[B7/39.05/0.01]B[B8//1.80]W[A8];)

初心者がこのデータの前処理をするのは大変そうですが…
やるしかない!乞うご期待!

アドバイスがあればください!

#追記(2019/07/11)
今はDjangoの勉強で忙しいので続きは夏休みあたりになりそう。

#追記(2019/09/04)
先駆者が整形済みのデータを公開していました。
これを使います。
オセロの教師データ公開【ディープラーニング】 - meipuruのブログ
学習データ

6
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?