スーパーウィザードの合体スキルの組み合わせ検索機能

概要

最近スーパーウィザードというスマホゲームをやっており、
ここで合成スキルという、2種類のスキルをLv6にすると作成できる物を、
一覧で作ろうと思い、作成をしました。

毎回戦闘を一時停止してWikiから探すのではなく、
予め検索システムを作成しておけば、任意のスキルから合成スキルになるスキルを一覧で簡単に出せるようになります。

ソースコード全般

import pandas as pd

# スキル一覧
skill_data =  pd.read_csv("合成スキル組みあわせ.csv", engine='python')

skill_data1 =  pd.DataFrame(index= [], columns=[])
skill_data1["スキル"]=skill_data ["スキル1"]
skill_data1=skill_data1.drop_duplicates()

skill_data2 =  pd.DataFrame(index= [], columns=[])
skill_data2["スキル"]=skill_data ["スキル2"]
skill_data2=skill_data2.drop_duplicates()

skill_data3=pd.merge(skill_data1,skill_data2,how='outer')
skill_data3=skill_data3.drop_duplicates()


# スキル検索
skill_search= input()

skill_data4= skill_data
skill_data4_1= skill_data4
skill_data4_1= skill_data4_1[(skill_data4_1["スキル1"]==skill_search) ]

skill_data4= skill_data
skill_data4_2= skill_data4
skill_data4_2= skill_data4_2[(skill_data4_2["スキル2"]==skill_search) ]


skill_data4_3=pd.merge(skill_data4_1,skill_data4_2, how='outer')

下準備

下記のリンクの合成スキル一覧を、CSVファイルで保存し実行ファイルと同じディレクトリに格納する。

スーパーウィザード攻略 Wiki 合体スキル一覧
https://wikiwiki.jp/superwizard/%E5%90%88%E4%BD%93%E3%82%B9%E3%82%AD%E3%83%AB%E4%B8%80%E8%A6%A7

●CSVファイルのイメージ

検索する元のスキルの一覧を出す

import pandas as pd

# スキル一覧
skill_data =  pd.read_csv("合成スキル組みあわせ.csv", engine='python')

skill_data1 =  pd.DataFrame(index= [], columns=[])
skill_data1["スキル"]=skill_data ["スキル1"]
skill_data1=skill_data1.drop_duplicates()

skill_data2 =  pd.DataFrame(index= [], columns=[])
skill_data2["スキル"]=skill_data ["スキル2"]
skill_data2=skill_data2.drop_duplicates()

skill_data3=pd.merge(skill_data1,skill_data2,how='outer')
skill_data3=skill_data3.drop_duplicates()

まず検索したいスキル一覧を予め出しておくプログラムを作成する。
pd.read_csvでWikiから入手したデータをCSVで読み込む。

その後スキル1の行(skill_data1 )と、
スキル2の行(skill_data2 )だけがある、テーブルデータを作成する。

それをhow='outer'でマージして新しいテーブル(skill_data3)を作成する
※この際how='outer'でマージをしないと、「終焉ノ審判」や「精霊衛兵」などがskill_data3に反映されない減少が発生します

検索するスキルから、組み合わせスキルになるスキルを探す

# 検索するスキルを入力する
skill_search= input()

# skill_dataのコピーを作成する
skill_data4= skill_data

# スキル1から検索するスキルのみを抽出する
skill_data4_1= skill_data4
skill_data4_1= skill_data4_1[(skill_data4_1["スキル1"]==skill_search) ]

# スキル2から検索するスキルのみを抽出する
skill_data4_2= skill_data4
skill_data4_2= skill_data4_2[(skill_data4_2["スキル2"]==skill_search) ]

# 検索するスキルのみを抽出する
skill_data4_3=pd.merge(skill_data4_1,skill_data4_2, how='outer')
skill_data4_3

次に検索したいスキルから、合成スキルになる組み合わせを探します。

探したいスキルをinput()で関数にします。
そこから検索用にCSVファイルを読みこみ、
スキル1(skill_data4_1)とスキル2(skill_data4_2)から、
探したいスキルを抽出して、マージしたデータフレームを作成する(skill_data4_3)
最期にマージしたデータフレームを表示すれば、組みあわせの一覧が出てきます。

●検索結果

※「電気バリア」で検索

まとめ

単純なプログラムですがExcelに逃げなかったのは、一日の長だったと思います。
ただ本日受けた面接で
「君はスキルが足りない。未経験ならもっとできる物をアピールしないと雇う事は出来ない」
という厳しい言葉を頂いたので、引き続きレベルが上げるために
プログラムは続けていこうと思います。






いいなと思ったら応援しよう!