"the big野球(The big YAKYU)" discord Ruling bot.
"the big野球(The big YAKYU)" is a baseball board game.
This program aims to be a rule bot for playing "the big野球(The big YAKYU)" on discord server.
The rule of "the big野球(The big YAKYU)" are based on the following document.
*東方野球inBIG野球公式ページ https://thbigbaseball.wiki.fc2.com/wiki/%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89
-
I do not have the copyright of the rule of "the big野球(The big YAKYU)" and the document.
-
私は"the big野球(The big YAKYU)"のルールとドキュメントに関する著作権を有していません。
-
This program is buggy and should not be used as a model for the "the big野球(The big YAKYU)" rule.
-
このプログラムはバグが多いので、"the big野球(The big YAKYU)"のルール処理の手本にしてはいけません。
- 3系のpythonで動作させてください。(開発時バージョンは 3.7)
- discord.py に依存しています。 discord.py インストール とかでググってください。
- 環境変数 YOUR_CHANNEL_ACCESS_TOKEN を定義し、あなたのDiscord Bot 用のアクセストークンを入力しておいてください。
- Botはthe big野球をプレイするためのサーバーに所属している必要があります。
- ターミナルに「 ログインしました 」って表示されたらOKです。
- このスクリプトはDiscord経由でBotにコマンドを送り、the big野球 で遊ぶためのスクリプトです。
- すべてのデータ入力や、試合進行のための指示をコマンドで入力するというキチガイ極まるスクリプトです。
- ちなみにBotの名前はみつねさんです。あんまり細かいことを気にしちゃいけない。
- コマンドには / から始まるコマンドと 全角の @ から始まる簡単コマンドの2種類があります。
- 簡単コマンドは / から始まるコマンドの入力を簡単にするための補助コマンドです。
- / から始まるコマンドは コマンドグループの下にサブコマンドがいっぱいあるという形になっており
/[command group] [sub command] [param1] [param2] ...
といった感じでスペース区切りで入力します。 野球関連のコマンドは bb コマンドグループにまとまっており、下記のようなコマンドがあります。
■bb
status:bbコマンドグループのステータス出力
resetLeague:リーグの状態を完全初期化
createTeam:チームをつくる
createAth:create athlete 選手データを登録する
showTeam:チームデータを閲覧する
addMatch:試合を追加する
addStadium:球場を登録する
startSeason:レギュラーシーズンを開幕する
setBattingOrder:バッターを打順に組み込む
setStartingPitcher:先発ピッチャーを指名する
setBattingOrderGroup:バッターを打順に組み込む
imReady:試合前の準備が完了したことを通知する
drawIn:前進守備
walk:敬遠
showStartMem:現在登録されているスタメンを見る
bunt:バント
changePitcher:ピッチャー交代
例えば、投手を交代する changePitcher コマンドは...
/bb changePitcher 8
みたいな感じで使えます。 上述の場合、チーム内の背番号 8 の投手に交代します。
野球をするならシーズン通して遊びたいですよね。 ということで、このスクリプトにもレギュラーシーズンという概念があります。 オフシーズンと、レギュラーシーズンが分かれており、主に次のような役割があります。
- オフシーズン -- チームを作る。 -- 選手を作って、チームに登録する。 -- レギュラーシーズンの試合予定を計画する。
- レギュラーシーズン -- オフシーズンに計画した通り試合を進める。
オフシーズンでの準備ももちろん、すべてコマンドを使います。 すべての準備が終わったらレギュラーシーズン開幕。 球春到来。というわけです。 レギュラーシーズン開幕には
/bb startSeason
を使いましょう。 みつねさんが
「 球春到来!レギュラーシーズン開幕です! 」と開幕を告げてくれます。
一つずつ見ていきましょう。
知ってましたか。チームが二つないと、野球ってできないらしいです。 困りましたね。 でも大丈夫、このスクリプトにはチームを作るコマンドがあります。 しかも、あなたが運営会社と交渉したりせずとも簡単に、です。
/bb createTeam 横浜DeNAベイスターズ DB
これで横浜DeNAベイスターズができました。 楽ちん! 言わずもがなかと思いますが、 param1 はチーム名称、 param2 はチームシンボルとなるイニシャル文字列です。 今後、チームシンボルはほかのコマンドで多用しますので、短く簡素で他と被らないものを考えるとよいです。 実際のプロ野球みたいに1~3文字くらいを使うのがよいと思います。
驚くべきことですが、場所が無いと野球ってできないらしいです。そんなこと、学校では教えてくれませんでしたね。 しかし心配ご無用。 このスクリプトにはスタジアムを作るコマンドがあります。しかもなんならいくらでもスタジアムを作ることができます。太っ腹ですね。 やるべきことは二つ。 サーバーにスタジアム名を冠したチャンネルを作ること。 そのチャンネル内で、下記コマンドをたたくこと、です。
/bb addStadium
チーム名を指定していないことに注意してください。 みつねさんはかしこいので、あなたがどのチームのオーナーなのか覚えています。 先ほど、私は 横浜DeNAベイスターズ を作りましたから、上記コマンドをたたくだけでチャンネルをチームの本拠地球場として登録できます。 みつねさんは「 DBのホームスタジアムとしてここを登録しましたよ! 」と、こころよく返事をしてくれるはずです。
to be written.
ここまでくれば、オフシーズンにすべきことはあと一つ。試合を計画することのみです。 試合を組みたい時は...
/bb addMatch [ホームチームシンボル] [ビジターチームシンボル]
とすれば、ホームチームの球場で試合が計画されます。 あくまで、計画されるだけであって、まだ試合は始まっていないことに注意してください。 毎年、2月くらいに次のシーズンの試合が計画され、日程表が出てきますよね? あれを作っているんだと思ってください。 つまり、このコマンドを何度もたたくことで、1回戦、2回戦・・・と複数の試合を計画することもできます。
長い長いストーブリーグがようやく終わります。レギュラーシーズン開幕です。 (※この記事を書いている2020/04現在、いまだに長い長いストーブリーグを強いられている腹いせ) サーバーのどこでもいいので
/bb startSeason
と入力しましょう。
「球春到来!レギュラーシーズン開幕です!」
意気揚々と宣誓されるはずです。 もしここで、addMatch に成功していれば・・・
「第**試合 横浜ベイスターズ vs ******** の試合が、ここ 横浜スタジアムにて、開催されます。 各チームのオーナーさんは試合前の調整を済ませたら、このチャンネルで /bb imReady と入力してください!」
という試合の開催案内がアナウンスされます。さあ、試合が始まりますよ。
レギュラーシーズンでは、何もしなくても、オフシーズンに計画した通りのチャンネル(球場)で試合が開催されます。 あなたがすべきことは球場におもむき、選手たちを指揮することです。 具体的には、スクリプトコマンドを使って下記のことをします。
to be written
to be written
to be written