崩壊スターレイルの計算アプリをつくった

#### みなさんは崩壊スターレイルってゲーム知っていますか？
●**miHoYo**という会社が作っています！
●ターン制のアクションゲーム
●キャラデザがきれい！
●前身となる原神なんかは爆発的ヒットしていて有名ですね^^

このターン制ゲームはバフやデバフなどの確率で起こる、状態異常の計算式が非常に面倒で
一緒にゲームしている仲間たちが、「**YouTubeとか見なくても即座に手元で計算したい・・・**」と吐露していたので、Windowsアプリを作ってみよう！と思い、
PythonのTkinterに出会いました！

## ①環境
**今回Wslも入れず、本当にWindowsのみで完結させたかったのが前提にあります。**
・下記でPythonをダウンロード(僕の時で3.11.3)
https://www.python.org/downloads/
・下記でVisual Studio Codeをダウンロード
https://code.visualstudio.com/

こんな感じ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/748491/437f0d00-f7a2-49b6-0462-ba7dae32ff89.png)
まじで、powerShellしかない・・

計算式は[こちら](https://baskmedia.jp/hsr-effect-hit-rate/)に出ている通りです。
これをソースに落とし込んでいこうと思います。
**注意！！Python全然触ったことなくてくそコードです**


## ②Tkinterの参考ソースを何か持ってくる
参考①：
https://python-work.com/gui-tkinter/#:~:text=%E7%94%BB%E5%83%8F%E8%A1%A8%E7%A4%BA%EF%BC%88Photoimage%EF%BC%89-,tkinter%E3%81%A8%E3%81%AF,%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA%E3%81%A7%E3%81%99%E3%80%82

参考②:
https://qiita.com/nnahito/items/ad1428a30738b3d93762


真似して書き始める・・
```
import datetime
import pytz
from tkinter import *
from tkinter import ttk

# ウィンドウを作成
root = Tk()

# ウィンドウサイズを指定
root.geometry("400x500")

# ウィンドウタイトルを指定
root.title('入力フォーム')

frame1 = ttk.Frame(root, padding=(32))
frame1.grid()

# 基礎確率
kiso_kakuritsu_input = ttk.Label(frame1, text='基礎確率', padding=(5, 2))
kiso_kakuritsu_input.grid(row=0, column=0, sticky=E)

# 敵の効果抵抗
enemy_koka_teiko_input = ttk.Label(frame1, text='敵の効果抵抗', padding=(5, 2))
enemy_koka_teiko_input.grid(row=1, column=0, sticky=E)
# -----------------------------------------
# 結果表示用ラベル
result_label6 = ttk.Label(frame1, padding=(5, 2))
result_label6.grid(row=14, column=0, columnspan=2)

# ウィンドウ表示継続
root.mainloop()
```

## ③たぶん処理ができたから実行
まずは手始めにバージョン確認
```
PS C:\Users\st012\Documents\app_practice> python -v
python : 用語 'python' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。名前が正しく記述されていることを確認し、パスが含まれている場合はそのパスが正しいことを確認してから、再試行してください。
発生場所 行:1 文字:1
+ python -v
+ ~~~~~~
    + CategoryInfo          : ObjectNotFound: (python:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException
```

あれ？？
ぐぐってみたけどあまりいい情報に出会えずChatGPTに相談。
**→お前が悪いんだからパス見直せ！！って言われたので、違う方法で考えよう。**

調べてみると、**py**コマンドなら使えるようだった。
```
PS C:\Users\st012\Documents\app_practice> py -V
Python 3.11.3
```

はい、出た。

次に、エクスプローラーから見えるフォルダ構成はこんな感じ。
このpyw拡張子のファイルをいじってCLIを流せば問題ない。(らしい)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/748491/f487ec2f-e9bb-23c8-a399-381df23fb8f4.png)

#### ★ということで、このままGUIアプリ作るためにCLIを用いてコマンド実行
いつもLinuxなら絶対パスを使って、カレントディレクトリから実行するんだけど、Windowsがわけわかめのためディレクトリに入って直にたたく
```
PS C:\Users\st012\Documents\app_practice\HonkaiStarRail_about_percent> py -m PyInstaller .\starRailHittingPercentList.pyw  --onefile
182 INFO: PyInstaller: 5.11.0
182 INFO: Python: 3.11.3
195 INFO: Platform: Windows-10-10.0.22621-SP0
195 INFO: wrote C:\Users\st012\Documents\app_practice\HonkaiStarRail_about_percent\starRailHittingPercentList.spec
196 INFO: UPX is not available.
197 INFO: Extending PYTHONPATH with paths
['C:\\Users\\st012\\Documents\\app_practice\\HonkaiStarRail_about_percent']
1997 INFO: checking Analysis
2123 INFO: checking PYZ
2144 INFO: checking PKG
2180 INFO: Bootloader C:\Users\st012\AppData\Local\Programs\Python\Python311\Lib\site-packages\PyInstaller\bootloader\Windows-64bit-intel\runw.exe
========================
========================
========================
9050 INFO: Copying 0 resources to EXE
9050 INFO: Embedding manifest in EXE
9051 INFO: Updating manifest in C:\Users\st012\Documents\app_practice\HonkaiStarRail_about_percent\dist\starRailHittingPercentList.exe.notanexecutable
9052 INFO: Updating resource type 24 name 1 language 0
9054 INFO: Appending PKG archive to EXE
9059 INFO: Fixing EXE headers
9130 INFO: Building EXE from EXE-00.toc completed successfully.
PS C:\Users\st012\Documents\app_practice\HonkaiStarRail_about_percent>
```
成功したら、こんな感じになる。
###### 先ほどの画像の「dist」に入ると実行ファイルが出来上がっている
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/748491/8a540a72-e288-67eb-ecdc-ce55d5974695.png)

ダブルクリック。初回だけ青い画面が出て、
「ほんとにこのユーザ信用してもいい？」みたいなのが出るから、そのまま実行をクリック。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/748491/d851b579-5062-133c-18dc-670a715ed93e.png)

こんな感じにできあがった。
早速discordにてみんなにファイル共有、
反響もよく、みんな使ってくれてうれしい

さすがにここにexeファイルを置くことはできないですが(責任の所在的に)、もしほしいということであればTwitterでもなんなりとリプ、DMなどでお声がけください～

皆さんも良きゲームライフを！