将棋GUIアプリ「将棋所」とpythonを結びつける(mac)

将棋GUIアプリ「将棋所」とpythonを結びつける in mac

CUIだけで動くアプリってあんまりまともなやつないですよね
確かに白黒の文字列だけのコンソールをカタカタ動かせたらハッカーっぽくて(クラッカーっぽくて)
かっかいいですが一般の人からするとなんのこっちゃわからなくて恐怖の対象だと思うのです。

(僕はコンソールが怖いのでフクロウのAAを.bashrcに貼り付けてます)

前回までで将棋をpythonの上から動かすことはできて、CUIとしてコンソールからでも動かせますが、このままでは対戦ができません。
せっかく作ったのにいちいち文字列を入力しながら対戦したくない
そこで今回は「将棋所」というGUIアプリとpythonを繋げてCUIを卒業しましょう

では、やっていきましょうか

将棋所のセットアップ


まずは、将棋所の本体をインストールしましょう
将棋所のページ
上のページの「ダウンロード」から、インストールしましょう!

注意!

将棋所は.exeファイルです
つまる所、windows上でしか動きません
なのでmacユーザーの人は
  1. virtual boxをインストールする
  2. ubuntuをインストールする
  3. ubuntuを立ち上げる
  4. こちらからmonoというwindowsアプリを他osで動かすアプリを入れる
  5. (書くの疲れた。やっぱwindows買ってくれ)
  6. 将棋所のページからダウンロード
  7. ダウンロードフォルダに行き
    unzip Shogidokoro
  8. [mono Shogidokoro.exe]を実行

p2pから

OKを押して

ここでのIPアドレスを覚えておきましょう!

という感じで将棋所を準備。
インストールできた人はここまで操作しておきましょう。

ここからは、pythonを動かすための準備です

Pythonで将棋所を動かすセットアップ


まずは次のコマンド
git clone https://github.com/gunyarakun/python-shogi.git
を実行してshogiというpythonらイブラリーをインストールしましょう
そして次の2つのコードを同じ階層に置いておく

少し解説すると
board.legal_moves
は将棋のルール上動かすことが可能な全てのMoveオブジェクトのIteroterです
その中からrandom.choiceでランダムに手を選んで動かします


次は通信を担うコードです。 Battle.pyの9行目
[specific ip adress]はさっきメモしたipアドレスにしてください!
pythonと将棋所の通信に使います!

いざ実行
python Battle.py

tags

pythonshogi
python

popular page

プログラミング言語の学ぶ順番について(初心者から中級者へ)後編

Pythonで入門書が終わった後(中級者)に勧めたい技術3選

urllibとbeautifulSoupでtwitterのツイート数,フォロー数,フォロワー数,いいね数,を取得する

another page

pythonでの将棋AI作成環境をmacに作る(pythonshogiのインストール)

Pythonで入門書が終わった後(中級者)に勧めたい技術3選

ツイッターの自動的なフォローをpythonとseleniumで!(RPA)

CONTACT ME RIGHT NOW!

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s.

5th Avenue, 987
38399, New York,
USA.

Tel. 9888-4394
Mail. hello@example.com
Skype. ExampleSkype

Your message has been sent. Thank you!

© Copyrights Studio. All Rights Reserved

Created with Studio template by TemplateMag
/* フッター/コピーライトのスタイル指定 */ footer { padding: 40px 16px; } footer .copyright small { color: #868686; font-size: 1.4rem; font-family: "Ubuntu Condensed", sans-serif; letter-spacing: .05em; }