libscipsのプログラムレベルのお話(α0.0.3) 〜前回のプログラムなおすの巻〜
今回、前回のlibscips α0.0.2の問題を修正した。それだけの変更だが、一応。
前回の記事
エラーのバグ修正の応急処置をした。
どう直したか
サッカーから届くメッセージはS式で書かれている。そのS式の解析で詰まっていた。それを、調べに調べて解析方法を見つけた。詳しくは以下のサイトを参照してほしい。
sexpdataと言うやつを使った。ちょっと癖が強いのだが、上記の記事の通り、解決方法もかんがえた。
どんな癖?
変換後の型がSymbolという型になるということ&数字が文字列にならないこと。解決方法はこちら。
from sexpdata import Symbol, loads def func(text): if type(text) == Symbol: return text.value() elif type(text) == list: return tostring(text) else: return str(text) def tostring(text): return list(map(func,text)) tostring(loads("""(hello! hhh (12345 "('$%RRR") (asdf 2222))""")) # ['hello!', 'hhh', [12345, "('$%RRR"], ['asdf', 2222]]
このように、map関数を使い、変換後のデータをtype別に分けて変換、文字列にしている。
もう一個の修正
このsexpdataというライブラリは外部ライブラリでpypiから入手する。なので、requirement.txtを今回作成した。 これからlibscipsを使う方はまず
pip install -r requirement.txt
をしてほしい。
最後に
学校のテスト疲れた。
個人的な質問等はこちらまで。
https://forms.gle/V6NRhoTooFw15hJdA
また、自分が参加しているRobocup soccer シミュレーションリーグのチームでは参加者募集中です!活動の見学、活動に参加したい方、ご連絡お待ちしております!
詳しくはこちら