Skip to content

Instantly share code, notes, and snippets.

@KTakahiro1729
Created January 29, 2017 09:35
Show Gist options
  • Save KTakahiro1729/497bc5e76077db56e3e90418a186097f to your computer and use it in GitHub Desktop.
Save KTakahiro1729/497bc5e76077db56e3e90418a186097f to your computer and use it in GitHub Desktop.
hanictionary.py
from collections import namedtuple, OrderedDict
logDict = OrderedDict([ #ログの種類の辞書です。キーにはログの種類、値にはログのの正規表現があります。
('■TChunkヘッダー',
[r'■ターン\d+ - \d+/\d+ \d+:\d+']),
#開発コマンド
('整地',
[r'\(\d+,\d+\)で整地が行われました。']),
('埋蔵金',
[r'整地中に\d+億円もの埋蔵金が発見されました。']),
('埋め立て',
[r'\(\d+,\d+\)で埋め立てが行われました。']),
('伐採',
[r'\(\d+,\d+\)で伐採が行われました。']),
('植林',
[r'']), #未完成
('農場整備',
[r'\(\d+,\d+\)で農場整備が行われました。']),
('工場建設',
[r'\(\d+,\d+\)で工場建設が行われました。']),
('採掘場整備',
[r'\(\d+,\d+\)で採掘場整備が行われました。']),
('ミサイル基地建設',
[r'']), #未完成
('防衛施設建設',
[r'\(\d+,\d+\)で防衛施設建設が行われました。']),
('地ならし',
[r'\(\d+,\d+\)で地ならしが行われました。']),
('一括地ならし',
[r'\(\d+,\d+\)で一括地ならしが行われました。']),
('海底基地建設',
[r'']), #未完成
('記念碑建造',
[r'']), #未完成
('ハリボテ設置',
[r'']), #未完成
('誘致活動',
[r'誘致活動が行われました。']),
('掘削',
[r'\(\d+,\d+\)で掘削が行われました。']), #未完成
('油田掘削成功',
[r'\(\d+,\d+\)で\d+億円の予算をつぎ込んだ掘削が行われ、海底油田が掘り当てられました。']),
('油田掘削失敗',
[r'\(\d+,\d+\)で\d+億円の予算をつぎ込んだ掘削が行われましたが、海底油田は見つかりませんでした。']),
('油田収益',
[r'\(\d+,\d+\)の海底油田から1000億円の収益が上がりました。']),
('油田枯渇',
[r'\(\d+,\d+\)の海底油田は枯渇したようです。']),
#内政・外交コマンド
('資金繰り',
[r'資金繰りが行われました。']),
('食料輸出',
[r'\d+㌧の食料輸出を行いました。']),
('資金繰り',
[r'資金繰りが行われました。']),
('資金援助',
[r'.+島へ\d+億円の資金援助を行いました。']),
('被資金援助',
[r'.+島から\d+億円の資金援助が行われました。']),
('食料援助',
[r'']), #未完成
('被食料援助',
[r'.+島から\d+㌧の食料援助が行われました。']), #未完成
#銀行コマンド
('出金',
[r'銀行から\d+億円を出金しました。']),
('自島入金',
[r'']), #未完成
('他島へ送金',
[r'.+島の銀行口座へ\d+億円の送金を行いました。']),
('他島から入金',
[r'.+島の銀行口座から\d+億円の入金がありました。']),
#攻撃コマンド
##通常ミサイル
('被通常ミサイル被害なし',
[r'.+島が.+島\(\d+,\d+\)地点に向けてミサイル発射を行いましたが、\(\d+,\d+\)の.+に落ちたので被害がありませんでした。']),
('被通常ミサイル領域外',
[r'.+島が.+島\(\d+,\d+\)地点に向けてミサイル発射を行いましたが、領域外の海に落ちた模様です。']),
('被通常ミサイル被害あり',
[r'.+島が.+島\(\d+,\d+\)地点に向けてミサイル発射を行い、.+?。']),
('被通常ミサイル空中爆発',
[r'.+島が.+島\(\d+,\d+\)地点に向けてミサイル発射を行いましたが、\(\d+,\d+\)地点上空にて力場に捉えられ、空中爆発しました。']),
('通常ミサイル成果なし',
[r'.+島\(\d+,\d+\)地点に向けてミサイル発射を行いましたが、\(\d+,\d+\)の.+に落ちたので被害がありませんでした。']),
('通常ミサイル領域外',
[r'.+島\(\d+,\d+\)地点に向けてミサイル発射を行いましたが、領域外の海に落ちた模様です。']),
('通常ミサイル成果あり',
[r'.+島\(\d+,\d+\)地点に向けてミサイル発射を行い、.+?。']),
('通常ミサイル空中爆発',
[r'.+島\(\d+,\d+\)地点に向けてミサイル発射を行いましたが、\(\d+,\d+\)地点上空にて力場に捉えられ、空中爆発しました。']),
##PPミサイル
('被PP被害なし',
[r'.+島が.+島\(\d+,\d+\)地点に向けてPPミサイル発射を行いましたが、\(\d+,\d+\)の.+に落ちたので被害がありませんでした。']),
('被PP領域外',
[r'.+島が.+島\(\d+,\d+\)地点に向けてPPミサイル発射を行いましたが、領域外の海に落ちた模様です。']),
('被PP被害あり',
[r'.+島が.+島\(\d+,\d+\)地点に向けてPPミサイル発射を行い、.+?。']),
('被PP空中爆発',
[r'.+島が.+島\(\d+,\d+\)地点に向けてPPミサイル発射を行いましたが、\(\d+,\d+\)地点上空にて力場に捉えられ、空中爆発しました。']),
('PP成果なし',
[r'.+島\(\d+,\d+\)地点に向けてPPミサイル発射を行いましたが、\(\d+,\d+\)の.+に落ちたので被害がありませんでした。']),
('PP領域外',
[r'.+島\(\d+,\d+\)地点に向けてPPミサイル発射を行いましたが、領域外の海に落ちた模様です。']),
('PP成果あり',
[r'.+島\(\d+,\d+\)地点に向けてPPミサイル発射を行い、.+?。']),
('PP空中爆発',
[r'.+島\(\d+,\d+\)地点に向けてPPミサイル発射を行いましたが、\(\d+,\d+\)地点上空にて力場に捉えられ、空中爆発しました。']),
##陸地破壊弾
('被陸破被害なし',
[r'.+島が.+島\(\d+,\d+\)地点に向けて陸地破壊弾発射を行いましたが、\(\d+,\d+\)の海に落ちたので被害がありませんでした。']),
('被陸破領域外',
[r'.+島が.+島\(\d+,\d+\)地点に向けて陸地破壊弾発射を行いましたが、領域外の海に落ちた模様です。']),
('被陸破被害あり',
[r'.+島が.+島\(\d+,\d+\)地点に向けて陸地破壊弾発射を行い、.+?。']),
('被陸破空中爆発',
[r'.+島が.+島\(\d+,\d+\)地点に向けて陸地破壊弾発射を行いましたが、\(\d+,\d+\)地点上空にて力場に捉えられ、空中爆発しました。']),
('陸破成果なし',
[r'.+島\(\d+,\d+\)地点に向けて陸地破壊弾発射を行いましたが、\(\d+,\d+\)の海に落ちたので被害がありませんでした。']),
('陸破領域外',
[r'.+島\(\d+,\d+\)地点に向けて陸地破壊弾発射を行いましたが、領域外の海に落ちた模様です。']),
('陸破成果あり',
[r'.+島\(\d+,\d+\)地点に向けて陸地破壊弾発射を行い、.+。?']),
('陸破空中爆発',
[r'.+島\(\d+,\d+\)地点に向けて陸地破壊弾発射を行いましたが、\(\d+,\d+\)地点上空にて力場に捉えられ、空中爆発しました。']),
##難民
('難民',
[r'.+島にどこからともなく\d+人もの難民が漂着しました。.+島は快く受け入れたようです。']),
#他島コマンド #未完成
('植林/ミサイル基地建設',
[r'こころなしか森が増えたようです。']),
('海底基地建設',
[r'\(\?,\?\)で海底基地建設が行われました。']),
#災害コマンド #未完成
('火災',
[r'\(\d+,\d+\)の.+が火災により壊滅しました。']),
('台風上陸',
[r'台風上陸!!']),
('台風被害',
[r'\(\d+,\d+\)の農場は台風で飛ばされました。']),
('地震発生',
[r'大規模な地震が発生!!']),
('地震被害',
[r'\(\d+,\d+\)の都市は地震により壊滅しました。']),
('津波発生',
[r'津波が発生しました!']),
('津波被害',
[r'\(\d+,\d+\)の.+は津波により崩壊しました。']),
('噴火',
[r'\(\d+,\d+\)で火山が噴火、山が出来ました。']),
('噴火で浅瀬=>陸地',
[r'\(\d+,\d+\)の浅瀬は噴火の影響で陸地になりました。']),
('噴火で海=>浅瀬',
[r'\(\d+,\d+\)の海は噴火の影響で海底が隆起、浅瀬になりました。']),
('噴火で森=>荒地',
[r'\(\d+,\d+\)の森は噴火の影響で壊滅しました。']),
('海に隕石落下',
[r'\(\d+,\d+\)の海に隕石が落下しました。']),
('隕石落下水没',
[r'\(\d+,\d+\)の.+に隕石が落下、一帯が水没しました。']),
('隕石落下山消滅',
[r'\(\d+,\d+\)の山に隕石が落下、山は消し飛びました。']),
('荒地=>浅瀬',
[r'\(\d+,\d+\)の荒地は水没しました。']),
('森=>荒地',
[r'\(\d+,\d\)の森は一瞬にして荒地と化しました。']),
#怪獣
('いのら出現',
[r'怪獣いのら出現!!\(\d+,\d+\)の.+が踏み荒らされました。']),
('いのら蹂躙',
[r'\(\d+,\d+\)の.+が怪獣いのらに踏み荒らされました。']),
('いのらvs防衛施設',
[r'怪獣いのらが\(\d+,\d+\)の防衛施設に到達、防衛施設の自爆装置が作動!!']),
('いのら水没',
[r'\(\d+,\d+\)の陸地は怪獣いのらもろとも水没しました。']),
('いのら隕石死',
[r'怪獣いのらがいた\(\d+,\d+\)に隕石が落下、陸地は怪獣いのらもろとも水没しました。']),
('いのら残骸売却',
[r'怪獣いのらの残骸には、400億円の値が付きました。']),
##レッドいのら
('レッドいのら出現',
[r'怪獣レッドいのら出現!!\(\d+,\d+\)の.+が踏み荒らされました。']),
('レッドいのら蹂躙',
[r'\(\d+,\d+\)の.+が怪獣レッドいのらに踏み荒らされました。']),
('レッドいのらvs防衛施設',
[r'怪獣レッドいのらが\(\d+,\d+\)の防衛施設に到達、防衛施設の自爆装置が作動!!']),
('レッドいのら水没',
[r'\(\d+,\d+\)の陸地は怪獣レッドいのらもろとも水没しました。']),
('レッドいのら隕石死',
[r'怪獣レッドいのらがいた\(\d+,\d+\)に隕石が落下、陸地は怪獣レッドいのらもろとも水没しました。']),
##ダークいのら
('ダークいのら出現',
[r'怪獣ダークいのら出現!!\(\d+,\d+\)の.+が踏み荒らされました。']),
('ダークいのら蹂躙',
[r'\(\d+,\d+\)の.+が怪獣ダークいのらに踏み荒らされました。']),
('ダークいのらvs防衛施設',
[r'怪獣ダークいのらが\(\d+,\d+\)の防衛施設に到達、防衛施設の自爆装置が作動!!']),
('ダークいのら水没',
[r'\(\d+,\d+\)の陸地は怪獣ダークいのらもろとも水没しました。']),
('ダークいのら隕石死',
[r'怪獣ダークいのらがいた\(\d+,\d+\)に隕石が落下、陸地は怪獣ダークいのらもろとも水没しました。']),
##いのらゴースト
('いのらゴースト出現',
[r'怪獣いのらゴースト出現!!\(\d+,\d+\)の.+が踏み荒らされました。']),
('いのらゴースト蹂躙',
[r'\(\d+,\d+\)の.+が怪獣いのらゴーストに踏み荒らされました。']),
('いのらゴーストvs防衛施設',
[r'怪獣いのらゴーストが\(\d+,\d+\)の防衛施設に到達、防衛施設の自爆装置が作動!!']),
('いのらゴースト水没',
[r'\(\d+,\d+\)の陸地は怪獣いのらゴーストもろとも水没しました。']),
('いのらゴースト隕石死',
[r'怪獣いのらゴーストがいた\(\d+,\d+\)に隕石が落下、陸地は怪獣いのらゴーストもろとも水没しました。']),
##キングいのら
('キングいのら出現',
[r'怪獣キングいのら出現!!\(\d+,\d+\)の.+が踏み荒らされました。']),
('キングいのら蹂躙',
[r'\(\d+,\d+\)の.+が怪獣キングいのらに踏み荒らされました。']),
('キングいのらvs防衛施設',
[r'怪獣キングいのらが\(\d+,\d+\)の防衛施設に到達、防衛施設の自爆装置が作動!!']),
('キングいのら水没',
[r'\(\d+,\d+\)の陸地は怪獣キングいのらもろとも水没しました。']),
('キングいのら隕石死',
[r'怪獣キングいのらがいた\(\d+,\d+\)に隕石が落下、陸地は怪獣キングいのらもろとも水没しました。']),
##サンジラ
('サンジラ出現',
[r'怪獣サンジラ出現!!\(\d+,\d+\)の.+が踏み荒らされました。']),
('サンジラ蹂躙',
[r'\(\d+,\d+\)の.+が怪獣サンジラに踏み荒らされました。']),
('サンジラvs防衛施設',
[r'怪獣サンジラが\(\d+,\d+\)の防衛施設に到達、防衛施設の自爆装置が作動!!']),
('サンジラ水没',
[r'\(\d+,\d+\)の陸地は怪獣サンジラもろとも水没しました。']),
('サンジラ隕石死',
[r'怪獣サンジラがいた\(\d+,\d+\)に隕石が落下、陸地は怪獣サンジラもろとも水没しました。']),
##クジラ
('クジラ出現',
[r'怪獣クジラ出現!!\(\d+,\d+\)の.+が踏み荒らされました。']),
('クジラ蹂躙',
[r'\(\d+,\d+\)の.+が怪獣クジラに踏み荒らされました。']),
('クジラvs防衛施設',
[r'怪獣クジラが\(\d+,\d+\)の防衛施設に到達、防衛施設の自爆装置が作動!!']),
('クジラ水没',
[r'\(\d+,\d+\)の陸地は怪獣クジラもろとも水没しました。']),
('クジラ隕石死',
[r'怪獣クジラがいた\(\d+,\d+\)に隕石が落下、陸地は怪獣クジラもろとも水没しました。']),
##メカいのら
('メカいのら出現',
[r'怪獣メカいのら出現!!\(\d+,\d+\)の.+が踏み荒らされました。']),
('メカいのら蹂躙',
[r'\(\d+,\d+\)の.+が怪獣メカいのらに踏み荒らされました。']),
('メカいのらvs防衛施設',
[r'怪獣メカいのらが\(\d+,\d+\)の防衛施設に到達、防衛施設の自爆装置が作動!!']),
('メカいのら水没',
[r'\(\d+,\d+\)の陸地は怪獣メカいのらもろとも水没しました。']),
('メカいのら隕石死',
[r'怪獣メカいのらがいた\(\d+,\d+\)に隕石が落下、陸地は怪獣メカいのらもろとも水没しました。']),
#海戦ログ
##海戦戦闘ログ
('潜水艦雷撃',
[r'於:.+?島','攻撃\(雷撃\):.+?島所属 潜水艦\(\d+,\d+\)','目標:.+島所属 .+\(\d+,\d+\)','戦果:\d+のダメージ!\(経験値:\+\d+\)'])
])
eChunkTemplate = namedtuple('eChunkTemplate', 'startLog contentLog endLog')
#eChunkの種類の辞書です。キーにはeChunkの種類、値にはeChunkの正規表現があります。
_eChunkAddDict = OrderedDict([
('油田運用', eChunkTemplate(
startLog = ['油田収益'],
contentLog = ['油田収益','油田枯渇',],
endLog = []
)),
('被通常ミサイル', eChunkTemplate(
startLog = ['被通常ミサイル被害なし','被通常ミサイル領域外','被通常ミサイル被害あり','被通常ミサイル空中爆発',],
contentLog = ['被通常ミサイル被害なし','被通常ミサイル領域外','被通常ミサイル被害あり','被通常ミサイル空中爆発',],
endLog = []
)),
('被PP', eChunkTemplate(
startLog = ['被PP被害なし','被PP領域外','被PP被害あり','被PP空中爆発',],
contentLog = [],
endLog = []
)),
('被陸破', eChunkTemplate(
startLog = ['被陸破被害なし','被陸破領域外','被陸破被害あり','被陸破空中爆発',],
contentLog = ['被陸破被害なし','被陸破領域外','被陸破被害あり','被陸破空中爆発',],
endLog = []
)),
('通常ミサイル', eChunkTemplate(
startLog = ['通常ミサイル成果なし','通常ミサイル領域外','通常ミサイル成果あり','通常ミサイル空中爆発',],
contentLog = ['通常ミサイル成果なし','通常ミサイル領域外','通常ミサイル成果あり','通常ミサイル空中爆発',],
endLog = ['難民']
)),
('PP', eChunkTemplate(
startLog = ['PP成果なし','PP領域外','PP成果あり','PP空中爆発',],
contentLog = ['PP成果なし','PP領域外','PP成果あり','PP空中爆発',],
endLog = ['難民']
)),
('陸破', eChunkTemplate(
startLog = ['陸破成果なし','陸破領域外','陸破成果あり','陸破空中爆発',],
contentLog = ['陸破成果なし','陸破領域外','陸破成果あり','陸破空中爆発',],
endLog = []
)),
('台風災害', eChunkTemplate(
startLog = ['台風上陸'],
contentLog = ['台風被害'],
endLog = []
)),
('地震災害', eChunkTemplate(
startLog = ['地震発生'],
contentLog = ['地震被害'],
endLog = []
)),
('津波災害', eChunkTemplate(
startLog = ['津波発生'],
contentLog = ['津波被害'],
endLog = []
)),
('火山噴火', eChunkTemplate(
startLog = ['噴火'],
contentLog = [ '噴火で浅瀬=>陸地','噴火で海=>浅瀬','噴火で森=>荒地',],
endLog = []
)),
('一括地ならし', eChunkTemplate(
startLog = ['一括地ならし'],
contentLog = ['一括地ならし'],
endLog = []
)),
('いのらvs防衛施設', eChunkTemplate(
startLog = ['いのらvs防衛施設'],
contentLog = ['いのら水没','荒地=>浅瀬','森=>荒地',],
endLog = []
)),
('レッドいのらvs防衛施設', eChunkTemplate(
startLog = ['レッドいのらvs防衛施設'],
contentLog = ['レッドいのら水没','荒地=>浅瀬','森=>荒地',],
endLog = []
)),
('ダークいのらvs防衛施設', eChunkTemplate(
startLog = ['ダークいのらvs防衛施設'],
contentLog = ['ダークいのら水没','荒地=>浅瀬','森=>荒地',],
endLog = []
)),
('キングいのらvs防衛施設', eChunkTemplate(
startLog = ['キングいのらvs防衛施設'],
contentLog = ['キングいのら水没','荒地=>浅瀬','森=>荒地',],
endLog = []
)),
('いのらゴーストvs防衛施設', eChunkTemplate(
startLog = ['いのらゴーストvs防衛施設'],
contentLog = ['いのらゴースト水没','荒地=>浅瀬','森=>荒地',],
endLog = []
)),
('サンジラvs防衛施設', eChunkTemplate(
startLog = ['サンジラvs防衛施設'],
contentLog = ['サンジラ水没','荒地=>浅瀬','森=>荒地',],
endLog = []
)),
('クジラvs防衛施設', eChunkTemplate(
startLog = ['クジラvs防衛施設'],
contentLog = ['クジラ水没','荒地=>浅瀬','森=>荒地',],
endLog = []
)),
('メカいのらvs防衛施設', eChunkTemplate(
startLog = ['メカいのらvs防衛施設'],
contentLog = ['メカいのら水没','荒地=>浅瀬','森=>荒地',],
endLog = []
)),
])
_eChunkExclude = [log for key in _eChunkAddDict for log in _eChunkAddDict[key].startLog]
eChunkDict = OrderedDict([(key, eChunkTemplate(
startLog = [key],
contentLog = [],
endLog = []
)) for key in logDict if key not in _eChunkExclude])
eChunkDict.update(_eChunkAddDict)
notOwnEChunkList = [
'被資金援助',
'被食料援助',
'他島から入金'
'被通常ミサイル',
'被PP',
'被陸破',
]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment