CALENDAR
Sun Mon Tue Wed Thu Fri Sat
    123
45678910
11121314151617
18192021222324
252627282930 
<< November 2018 >>
本家STORY FACTサイト
NEW ENTRIES
CATEGORIES
RECENT COMMENTS
  •  『マネーショート』を観た!
    萬太郎 (10/03)
  • GB解析 -NG- 邪聖剣ネクロマンサー イシュメリアの悪夢 やったことあるんだよね・・・
    hikali (05/08)
  • GB解析 -NG- 邪聖剣ネクロマンサー イシュメリアの悪夢 やったことあるんだよね・・・
    マイケル村田 (05/04)
  • GB解析 -NG- ウィザードリィ3 ダイヤモンドの騎士 橋爪さんですね・・・
    hikali (03/29)
  • GB解析 -NG- ウィザードリィ3 ダイヤモンドの騎士 橋爪さんですね・・・
    マイケル村田 (03/25)
  • GB解析 -NG- ルパン三世/暁の第三帝国 良作なエンターテイメント
    hikali (01/09)
  • GB解析 -NG- ルパン三世/暁の第三帝国 良作なエンターテイメント
    マイケル村田 (01/06)
  • GB解析 -NG- 邪聖剣ネクロマンサー イシュメリアの悪夢 やったことあるんだよね・・・
    hikali (11/24)
  • GB解析 -NG- 邪聖剣ネクロマンサー イシュメリアの悪夢 やったことあるんだよね・・・
    マイケル村田 (11/21)
  • GB解析 -NG- 新・鬼ヶ島 暗黒の化身を討て! 成功した理由が良く分かりました。
    hikali (06/27)
RECENT TRACKBACK
ARCHIVES
MOBILE
qrcode
LINKS
PROFILE
OTHERS
無料ブログ作成サービス JUGEM
 
管理人hikaliの開発の日々の備忘録です。
本家はこちら。
http://plaza.rakuten.co.jp/hikali/
[Pythonゲーム修行]テスト2 --こうなったら、オラ、ぜってい、microsoft倒すダ。



 えーと、テスト中です。
 8Mぐらいログを作っております。

 とりあえずフォーチュン1000から、戦士たちを選抜、こいつらを使って、現在のところの最強戦士、microsoftをぶっ倒そう! やるぞ! 倒すぞ! えいえい、おー! とかなり頭の悪い感じですが、これはだいたいのシステムバランスを把握して、このラウンドフレーム制の基礎は固めてしまおうというもくろみです。

 ■目下最強のmicrosoft

microsoft 5f532a3fc4f1ea403f37070f59a7a53a
大きさ 10 + 3
速さ 3 + 1
強さ 15 + 4
耐久 12 + 5
武器 バスタードソード 6.5 ダメージ期待値
防具 プレートメイル 8 ap
盾 ヴァイキングラウンド 10 ap
攻撃スキル 86 %
回避スキル 35 %
盾スキル 36 %
受けスキル 10 %
アーキタイプ シド人(男) 都会的な種族
無: 145 回: 35 盾: 46 受: 10

 つ、強いですね・・・。
 いまいちバッソ(バスタードソードのこと)が弱いかな、2H武器の方が強いのではないかと思っていたのですが、思いの外、バッソは強いことがわかり始めてきた・・・。
 これって1d10+1なんですよね・・・。
 ハルバードなんて、3d6ですよ。

 まあいいや。
 とりあえず、250ぐらいの戦士を召還したので、おもしろいところだけピックアップしてお送りしよう。



[ General Motors ] vs [ Ford Motor ]

[ Citigroup ] vs [ Bank of America Corp. ]

[ Berkshire Hathaway ] vs [ J.P. Morgan Chase & Co. ]


 おお、いきなりJ.P. Morgan Chase & Co. が強そうですね。

J.P. Morgan Chase & Co. d4b5a73691dedfcc75a6f1827591b188
大きさ 7 + 2
速さ 3 + 1
強さ 6 + 2
耐久 9 + 4
武器 グレートアクス 9 ダメージ期待値
防具 チェインメイル 7 ap
盾 なし 0 ap
攻撃スキル 82 %
回避スキル 45 %
盾スキル 68 %
受けスキル 58 %
アーキタイプ エスト人 祭司的騎士道的種族

microsoft の状態
{'suu': 3, 'sok': 4, 'hin': 0, 'kei': 1, 'juu': 0}
J.P. Morgan Chase & Co. の状態
{'suu': 3, 'sok': 4, 'hin': 0, 'kei': 1, 'juu': 1}

 ぐ、ぐは・・・。
 僅差で負けた・・・。
 案外2Hでも戦えるなあ・・・。


[ Goldman Sachs Group ] vs [ Goldman Sachs Group ]

[ Verizon Communications ] vs [ AT&T ]

[ Hewlett-Packard ] vs [ Dell ]

[ Valero Energy ] vs [ Exxon Mobil ]


 あれ、Valero Energyもいい感じ。

Valero Energy acf1f0b352c3d2ffa1fc9dc5408d1085
大きさ 0 + 0
速さ 11 + 3
強さ 3 + 1
耐久 5 + 3
武器 ハルバード 10.5 ダメージ期待値
防具 チェインメイル 7 ap
盾 なし 0 ap
攻撃スキル 82 %
回避スキル 19 %
盾スキル 80 %
受けスキル 70 %
アーキタイプ シド辺境蛮族(男) 都会化された蛮族

 どうよ、この男っぷり!

microsoft の状態
{'suu': 3, 'sok': 3, 'hin': 0, 'kei': 1, 'juu': 0}
Valero Energy の状態
{'suu': 3, 'sok': 7, 'hin': 0, 'kei': 0, 'juu': 0}

 ぐ、ぐは・・・。


[ Home Depot ] vs [ Wal-Mart Stores ]

[ Chevron ] vs [ ConocoPhillips ]

[ General Electric ] vs [ International Business Machines ]

[ McKesson ] vs [ Cardinal Health ]

[ Kroger ] vs [ CVS Caremark ]

[ AmerisourceBergen ] vs [ Costco Wholesale ]


 およ? なんだこれは?

AmerisourceBergen の状態
{'suu': 3, 'sok': 9, 'hin': 1, 'kei': 1, 'juu': 1}
Costco Wholesale の状態
{'suu': 3, 'sok': 4, 'hin': 0, 'kei': 0, 'juu': 0}

 9回も殺していやがる。Costco Wholesaleは何者?

AmerisourceBergen 4a87a02c83db61627c2c052e25e2ac1c
大きさ 0 + 0
速さ 2 + 1
強さ 12 + 3
耐久 8 + 4
武器 ブロードソード 5.5 ダメージ期待値
防具 チェインメイル 7 ap
盾 なし 0 ap
攻撃スキル 54 %
回避スキル 17 %
盾スキル 44 %
受けスキル 18 %
アーキタイプ 帝国南方辺境人 開拓者的人々
無: 133.0 回: 17 盾: 0 受: 18

Costco Wholesale c1d6f98fec60f594944b8db3fffe24c3
大きさ 9 + 2
速さ 8 + 2
強さ 15 + 4
耐久 14 + 6
武器 ロングスピア 6.5 ダメージ期待値
防具 胸当て 4 ap
盾 なし 0 ap
攻撃スキル 90 %
回避スキル 25 %
盾スキル 56 %
受けスキル 26 %
アーキタイプ システィア人 楽天的な冒険家

 相手、チェーンメイルだぞよ。
 それをロングスピアで?

Costco Wholesale の、達成値 5 の攻撃! 2 ( 40 %)
AmerisourceBergen は回避できない。( 17 %)
軽妙な軌跡を描き、ロングスピアはAmerisourceBergenに襲い掛かる。 30 の攻撃!
チェインメイルを破り、瀕死の一撃を負わせた。激しく血が吹き出す。

 うははwww
 これは死ねるwww

 システィア人のリスクテイクと、攻撃スキル90%の産物か・・・。
 よっしゃ!
 行け、Costco Wholesale!

microsoft の状態
{'suu': 3, 'sok': 2, 'hin': 1, 'kei': 0, 'juu': 1}
Costco Wholesale の状態
{'suu': 3, 'sok': 5, 'hin': 0, 'kei': 0, 'juu': 0}

 ぐ、ぐは・・・。


[ Johnson & Johnson ] vs [ Procter & Gamble ]

[ Lehman Brothers Holdings ] vs [ Merrill Lynch ]

[ Target ] vs [ WellPoint ]

[ Sears Holdings ] vs [ Macy's ]

[ J.C. Penney ] vs [ Kohl's ]

[ Dollar General ] vs [ Nordstrom ]

[ Dillard's ] vs [ Family Dollar Stores ]


 お、これは、男前。

Dillard's cd83406bf8bfa7c0fcd12ee34d938e8b
大きさ 0 + 0
速さ 6 + 2
強さ 11 + 3
耐久 15 + 6
武器 ウォーハンマー 9 ダメージ期待値
防具 スケイルメイル 6 ap
盾 なし 0 ap
攻撃スキル 70 %
回避スキル 29 %
盾スキル 68 %
受けスキル 10 %
アーキタイプ ザブンデ人 蛮族的騎士道種族
無: 161.0 回: 29 盾: 0 受: 10

 耐久+6がサイコー!
 いけ! 2Hのパワーを見せてやれ!

microsoft の状態
{'suu': 3, 'sok': 3, 'hin': 1, 'kei': 1, 'juu': 0}
Dillard's の状態
{'suu': 3, 'sok': 4, 'hin': 1, 'kei': 1, 'juu': 1}

 ぐ、ぐは・・・。


[ Belk ] vs [ Bon-Ton Stores ]

[ Saks ] vs [ Retail Ventures ]

[ Sunoco ] vs [ Hess ]

[ Tesoro ] vs [ Murphy Oil ]

[ Western Refining ] vs [ Frontier Oil ]

[ Holly ] vs [ CVR Energy ]

[ Johnson Controls ] vs [ Delphi ]

[ Goodyear Tire & Rubber ] vs [ Lear ]

[ Paccar ] vs [ TRW Automotive Holdings ]


 ほほう、これはよい戦士だ。

Paccar 99130cadb1d7b5190cd70880779d318a
大きさ 12 + 3
速さ 10 + 3
強さ 13 + 3
耐久 11 + 5
武器 グレートアクス 9 ダメージ期待値
防具 チェインメイル 7 ap
盾 なし 0 ap
攻撃スキル 74 %
回避スキル 25 %
盾スキル 24 %
受けスキル 46 %
アーキタイプ キュディス人(女) ソ連的人々

 このバランスなら、かならずや、microsoftを!

microsoft の状態
{'suu': 3, 'sok': 3, 'hin': 1, 'kei': 0, 'juu': 1}
Paccar の状態
{'suu': 3, 'sok': 5, 'hin': 0, 'kei': 0, 'juu': 0}

 ぐ、ぐは・・・。

 つ、つえぇぇぇぇぇっぇぇぇぇぇぇ!


[ Visteon ] vs [ Dana Holding ]

[ ArvinMeritor ] vs [ Federal-Mogul ]

[ Autoliv ] vs [ Oshkosh ]

[ Tenneco ] vs [ BorgWarner ]

[ American Axle & Manufacturing ] vs [ Cooper Tire & Rubber ]

[ Exide Technologies ] vs [ Carlisle ]


 おお、彼こそ、最強戦士。

Carlisle f949f6e878e0fae53fb06d4133750e62
大きさ 6 + 2
速さ 14 + 4
強さ 8 + 2
耐久 7 + 4
武器 ウォーハンマー 9 ダメージ期待値
防具 プレートメイル 8 ap
盾 なし 0 ap
攻撃スキル 90 %
回避スキル 35 %
盾スキル 76 %
受けスキル 30 %
アーキタイプ システィア人 楽天的な冒険家
無: 85 回: 35 盾: 0 受: 30

 どうよ、この男前!
 最強システィアですよ!

microsoft の状態
{'suu': 3, 'sok': 3, 'hin': 0, 'kei': 0, 'juu': 1}
Carlisle の状態
{'suu': 3, 'sok': 5, 'hin': 1, 'kei': 0, 'juu': 1}

 ぐ、ぐは・・・。

 うわ・・・、マジ勝てない・・・。
 なんで? うわー・・・。悔しい・・・。


[ Thor Industries ] vs [ Cooper-Standard Holdings ]

[ Affinia Group Intermediate Holdings ] vs [ Hayes Lemmerz ]

[ Quanex ] vs [ Fleetwood Enterprises ]

[ Wachovia Corp. ] vs [ Wells Fargo ]

[ U.S. Bancorp ] vs [ Capital One Financial ]

[ Bank of New York Mellon Corp. ] vs [ SunTrust Banks ]

[ State Street Corp. ] vs [ National City Corp. ]

[ Regions Financial ] vs [ BB&T Corp. ]

[ PNC Financial Services Group ] vs [ Fifth Third Bancorp ]

[ KeyCorp ] vs [ Marshall & Ilsley Corp. ]

[ Northern Trust Corp. ] vs [ Comerica ]

[ M&T Bank Corp. ] vs [ Synovus Financial Corp. ]


 ならば、バッソ最強伝説を踏襲してみよう。

Synovus Financial Corp. 900ce64d74a7c31bbf9fc7a45d417c1a
大きさ 6 + 2
速さ 4 + 1
強さ 13 + 3
耐久 7 + 4
武器 バスタードソード 6.5 ダメージ期待値
防具 スケイルメイル 6 ap
盾 ヴァイキングラウンド 10 ap
攻撃スキル 78 %
回避スキル 21 %
盾スキル 24 %
受けスキル 54 %

 microsoft の状態
{'suu': 3, 'sok': 2, 'hin': 1, 'kei': 1, 'juu': 1}
Synovus Financial Corp. の状態
{'suu': 3, 'sok': 6, 'hin': 0, 'kei': 0, 'juu': 1}

 ぐは・・・。

 な、なんだ、この異常な強さは・・・。

[ Popular ] vs [ Zions Bancorp. ]

[ Sprint Nextel ] vs [ Comcast ]

[ DirecTV Group ] vs [ Qwest Communications ]

[ DISH Network ] vs [ Liberty Global ]

[ Alltel ] vs [ Virgin Media ]

[ Cablevision Systems ] vs [ Embarq ]

[ Charter Communications ] vs [ Telephone & Data Systems ]

[ Level 3 Communications ] vs [ NII Holdings ]

[ Windstream ] vs [ CenturyTel ]

[ Citizens Communications ] vs [ MetroPCS Communications ]

[ IDT ] vs [ Leap Wireless International ]

[ American International Group ] vs [ Allstate ]


 ならば、北方最強の楯、Allstateだ。

Allstate 141fa1642e2dcaedd53333dbd982aef8
大きさ 1 + 0
速さ 6 + 2
強さ 4 + 1
耐久 2 + 3
武器 グラディウス 7 ダメージ期待値
防具 毛皮 1 ap
盾 ホプライト 14 ap
攻撃スキル 78 %
回避スキル 35 %
盾スキル 76 %
受けスキル 62 %
アーキタイプ スカイ河流域人 ダンセイニ的種族

microsoft の状態
{'suu': 3, 'sok': 1, 'hin': 1, 'kei': 0, 'juu': 0}
Allstate の状態
{'suu': 3, 'sok': 6, 'hin': 0, 'kei': 0, 'juu': 0}

 うーん、やっぱ楯ってあんまり強くないのかなあ・・・。
 あ、わすれていた。

 ぐ、ぐは・・・・。


[ Travelers Cos. ] vs [ Liberty Mutual Insurance Group ]

[ Hartford Financial Services ] vs [ Nationwide ]

[ Loews ] vs [ Progressive ]

[ United Services Automobile Assn. ] vs [ Chubb ]

[ American Family Insurance Group ] vs [ Safeco ]


 我が意得たり!

Safeco 80686a3ca1abe87c1f67da2e0b21c981
大きさ 10 + 3
速さ 3 + 1
強さ 12 + 3
耐久 10 + 5
武器 グレートアクス 9 ダメージ期待値
防具 スケイルメイル 6 ap
盾 なし 0 ap
攻撃スキル 86 %
回避スキル 31 %
盾スキル 48 %
受けスキル 58 %
アーキタイプ 帝国南方辺境人 開拓者的人々
無: 119.0 回: 31 盾: 0 受: 58

 これぞ、最強!

microsoft の状態
{'suu': 3, 'sok': 4, 'hin': 0, 'kei': 1, 'juu': 1}
{'suu': 3, 'sok': 3, 'hin': 1, 'kei': 0, 'juu': 0}

 よっしゃーーーーーあああああああああ!
 しかし、僅差だなあ・・・。


[ W.R. Berkley ] vs [ Fidelity National Financial ]

[ Erie Insurance Group ] vs [ American Financial Group ]

[ Cincinnati Financial ] vs [ Old Republic International ]

[ LandAmerica Financial Group ] vs [ FM Global ]

[ Mercury General ] vs [ Unitrin ]

[ Hanover Insurance Group ] vs [ Markel ]

[ HCC Insurance Holdings ] vs [ Stewart Information Services ]

[ Commerce Group ] vs [ Selective Insurance Group ]

[ Unisys ] vs [ BearingPoint ]

[ Perot Systems ] vs [ Cognizant Technology Solutions ]

[ Owens & Minor ] vs [ Henry Schein ]

[ Patterson ] vs [ PSS World Medical ]

[ Bear Stearns ] vs [ Franklin Resources ]

[ Charles Schwab ] vs [ BlackRock ]


 これも強いはず。

BlackRock 98aeda15c6a9f2ff1f7f170584c66e71
大きさ 10 + 3
速さ 1 + 0
強さ 5 + 1
耐久 12 + 5
武器 グレートソード 9 ダメージ期待値
防具 スケイルメイル 6 ap
盾 なし 0 ap
攻撃スキル 90 %
回避スキル 19 %
盾スキル 80 %
受けスキル 70 %
アーキタイプ 帝国人 唐王朝的人々

 うーん、アーキタイプがなあ・・・。

microsoft の状態
{'suu': 3, 'sok': 3, 'hin': 0, 'kei': 0, 'juu': 1}
BlackRock の状態
{'suu': 3, 'sok': 6, 'hin': 0, 'kei': 1, 'juu': 0}

 ぐ、ぐは・・・。
 なんで、こんな圧倒的な差が・・・。


[ International Assets Holding ] vs [ Legg Mason ]

[ NYSE Euronext ] vs [ A.G. Edwards ]

[ Raymond James Financial ] vs [ Jefferies Group ]

[ TD Ameritrade ] vs [ Nasdaq OMX Group ]

[ T. Rowe Price ] vs [ E*Trade Financial ]

[ Interactive Brokers Group ] vs [ CME Group ]

[ Lowe's ] vs [ Best Buy ]

[ Staples ] vs [ TJX ]

[ Gap ] vs [ Office Depot ]

[ Toys 'R' Us ] vs [ Circuit City Stores ]

[ Limited Brands ] vs [ OfficeMax ]

[ BJ's Wholesale Club ] vs [ GameStop ]


 これぞ、戦士。

GameStop 919fede932e0a517a4c36c838a85e321
大きさ 13 + 3
速さ 14 + 4
強さ 9 + 2
耐久 3 + 3
武器 ハルバード 10.5 ダメージ期待値
防具 プレートメイル 8 ap
盾 なし 0 ap
攻撃スキル 70 %
回避スキル 25 %
盾スキル 24 %
受けスキル 38 %
アーキタイプ システィア人 楽天的な冒険家

 だめかな・・・。

microsoft の状態
{'suu': 3, 'sok': 2, 'hin': 1, 'kei': 1, 'juu': 1}
GameStop の状態
{'suu': 3, 'sok': 6, 'hin': 0, 'kei': 1, 'juu': 1}

 ぐ、ぐは・・・。


[ Bed Bath & Beyond ] vs [ AutoZone ]

[ TravelCenters of America ] vs [ Pantry ]

[ Ross Stores ] vs [ Blockbuster ]

[ Foot Locker ] vs [ Barnes & Noble ]

[ Advance Auto Parts ] vs [ PetSmart ]

[ Big Lots ] vs [ Neiman Marcus ]

[ RadioShack ] vs [ Dollar Tree ]

[ Borders Group ] vs [ Williams-Sonoma ]


 まあ、やってみなさい。

Borders Group 1ee666e8f1cfbf9cf136af7abcabcb02
大きさ 6 + 2
速さ 14 + 4
強さ 8 + 2
耐久 15 + 6
武器 グレートアクス 9 ダメージ期待値
防具 チェインメイル 7 ap
盾 なし 0 ap
攻撃スキル 74 %
回避スキル 45 %
盾スキル 56 %
受けスキル 58 %
アーキタイプ ザブンデ人 蛮族的騎士道種族

microsoft の状態
{'suu': 3, 'sok': 4, 'hin': 0, 'kei': 1, 'juu': 1}
Borders Group の状態
{'suu': 3, 'sok': 5, 'hin': 0, 'kei': 1, 'juu': 0}

 ぐ、ぐは・・・。

 死闘すぎ・・・。


[ Dick's Sporting Goods ] vs [ Michaels Stores ]


 連チャンで、グラディウス最強伝説。

Dick's Sporting Goods f51beea72e93c6af1c61200e29c63b4f
大きさ 14 + 4
速さ 10 + 3
強さ 7 + 2
耐久 2 + 3
武器 グラディウス 7 ダメージ期待値
防具 リングメイル 5 ap
盾 ターゲットシールド 10 ap
攻撃スキル 78 %
回避スキル 27 %
盾スキル 60 %
受けスキル 70 %
アーキタイプ シド辺境蛮族(男) 都会化された蛮族

microsoft の状態
{'suu': 3, 'sok': 2, 'hin': 1, 'kei': 1, 'juu': 0}
Dick's Sporting Goods の状態
{'suu': 3, 'sok': 5, 'hin': 0, 'kei': 1, 'juu': 1}

 ぐ、ぐは・・・。

 あれー・・・。なんで勝てないんだろう・・・。

[ Abercrombie & Fitch ] vs [ Casey's General Stores ]

[ Burlington Coat Factory ] vs [ American Eagle Outfitters ]

[ Collective Brands ] vs [ Charming Shoppes ]

[ Tiffany ] vs [ Rent A Center ]

[ Linens Holding ] vs [ Systemax ]

[ Tractor Supply ] vs [ Coach ]

[ Regis ] vs [ Susser Holdings ]

[ O'Reilly Automotive ] vs [ Sally Beauty Holdings ]

[ Zale ] vs [ AnnTaylor Stores ]

[ Brown Shoe ] vs [ Cabela's ]

[ Building Materials Holding ] vs [ Pep Boys-Manny, Moe & Jack ]

[ Children's Place Retail Stores ] vs [ Men's Wearhouse ]

[ Fastenal ] vs [ CSK Auto ]


 我が意得たり!

Fastenal 50660a822ab2e47648b72750d4256f7b
大きさ 10 + 3
速さ 8 + 2
強さ 2 + 1
耐久 2 + 3
武器 モール 7.5 ダメージ期待値
防具 スケイルメイル 6 ap
盾 なし 0 ap
攻撃スキル 86 %
回避スキル 23 %
盾スキル 48 %
受けスキル 34 %
アーキタイプ シド人(女) 都会的な種族

 いくぜ!

microsoft の状態
{'suu': 3, 'sok': 3, 'hin': 0, 'kei': 1, 'juu': 1}
Fastenal の状態
{'suu': 3, 'sok': 5, 'hin': 0, 'kei': 0, 'juu': 1}

 ぐは・・・。

[ Jo Ann Stores ] vs [ PC Connection ]



 というわけで、ずいぶん長い乱取りでしたが、うーん、まあ一回勝ったからいいか。
 ちなみに、これは初戦の結果のみでやっているけど、実は結構振れ幅があるシステムだったりする。
 10回の戦闘結果はこんな感じ。

microsoft の状態
{'suu': 3, 'sok': 4, 'hin': 0, 'kei': 1, 'juu': 1}
Safeco の状態
{'suu': 3, 'sok': 4, 'hin': 0, 'kei': 0, 'juu': 0}

microsoft の状態
{'suu': 3, 'sok': 4, 'hin': 0, 'kei': 1, 'juu': 0}
Safeco の状態
{'suu': 3, 'sok': 4, 'hin': 0, 'kei': 0, 'juu': 1}

microsoft の状態
{'suu': 3, 'sok': 4, 'hin': 0, 'kei': 0, 'juu': 0}
Safeco の状態
{'suu': 3, 'sok': 4, 'hin': 1, 'kei': 0, 'juu': 0}

 あれ、あんまりぶれないなあ(笑)

microsoft の状態
{'suu': 3, 'sok': 4, 'hin': 1, 'kei': 0, 'juu': 1}
Safeco の状態
{'suu': 3, 'sok': 3, 'hin': 1, 'kei': 0, 'juu': 1}

microsoft の状態
{'suu': 3, 'sok': 3, 'hin': 1, 'kei': 0, 'juu': 0}
Safeco の状態
{'suu': 3, 'sok': 3, 'hin': 0, 'kei': 1, 'juu': 0}

microsoft の状態
{'suu': 3, 'sok': 4, 'hin': 0, 'kei': 0, 'juu': 1}
Safeco の状態
{'suu': 3, 'sok': 4, 'hin': 0, 'kei': 0, 'juu': 0}

 ぶれませんねえ・・・。

microsoft の状態
{'suu': 3, 'sok': 4, 'hin': 1, 'kei': 1, 'juu': 0}
Safeco の状態
{'suu': 3, 'sok': 3, 'hin': 0, 'kei': 1, 'juu': 1}


microsoft の状態
{'suu': 3, 'sok': 6, 'hin': 1, 'kei': 1, 'juu': 1}
Safeco の状態
{'suu': 3, 'sok': 4, 'hin': 1, 'kei': 0, 'juu': 0}

 おっと、ぶれた。

microsoft の状態
{'suu': 3, 'sok': 4, 'hin': 0, 'kei': 0, 'juu': 0}
Safeco の状態
{'suu': 3, 'sok': 3, 'hin': 1, 'kei': 0, 'juu': 1}

microsoft の状態
{'suu': 3, 'sok': 3, 'hin': 1, 'kei': 0, 'juu': 0}
Safeco の状態
{'suu': 3, 'sok': 4, 'hin': 1, 'kei': 0, 'juu': 1}

 うーん。

microsoft 2勝 8勝 Safeco

 ですか。

 まあ、この辺は研究課題ということで。


| pythonゲーム修行 | 23:16 | comments(0) | trackbacks(0) | 昨年の記事
[Pythonゲーム修行] 仕様策定、連鎖ファンブル
 えーと、福田首相の辞任で、はてなハイクで盛り上がってしまった・・・。
 ちゃくちゃくと、バックヤードでは作業が進んでいますが、エントリーとしてあげることができる粒度のものがなかなかない・・・。

 ちょっといろいろ重なって、見たり読まなければならないものが結構あって、それに忙殺されている感じ。結構、仕様策定の材料集め期間みたいなところもあり、寝かせている状況というのもあるかも。

 まー、ぶっちゃけ、pythonでプログラミングが出来る能力を習得できればおkというかなり気楽モードで、開発しておりますので、あんまりここで出てくるアウトプットはどうでもいいのですが、結構きれいに開発が進んでしまっている・・・。

 とりあえずテストを続行しつつ(まあ、単に大量のテストデータを流してみているだけなのだが)、バランス調整をしつつ、次の実装仕様も考えているというな感じ。とりあえず、出せる粒度のあるのがこのネタしかなかったので、次回以降の仕様策定について考えた議事録(?)みたいなもの。

 どうも、この中で考えている「連鎖ファンブル」の概念が、かなりエポックになりそうな予感。思いついてみると、当たり前すぎて、なんでこんなのも誰も思いつけなかったのだろうと、思ってしまう。これを見たあと、ルーンクエストを見ると、うんざりする。なんてセンスがないんだろう・・・。


 積み残し案件

・アーキタイプ別の台詞を導入
 →これは外部ファイル問題なのでもくもくとやる。
 →マッチメーカーも研究しておく

・行動ルールをどうするか
 →これは実は地形問題にも発展する。
 →現状舞台はノーアイデアなので、煮詰める必要がある。



 とりあえず、今残っているのはこれ。
 ちょっと、もうちょっと細かい仕様を詰めるか。



・舞台データの仕様策定
 →現在、システムに舞台データを導入していない。
 →ここは、結構でかい部分なので、ラウンドフレームの導入と同じぐらいの手間になりそうな予感である。
 →これ、タイミング的にどのタイミングでやるかなあ・・・。
 →ここの仕様は、かなり重要なので、慎重に。

・無愛想な状況陳述のテキスト化。
 →外部ファイル問題。
  →とにかくここは手間が掛かる。
 →平行して、プログラム内のテキスト置換アルゴリズムの策定。
  →これは、大して手間が掛からない。
 →現在、無駄な状況陳述が多すぎる。
  →これは効率化できるのだろうか。
   →アイデアはあるが、この部分は優先順位低い。

・舞台間の移動
 →これは、このシステムの最大のウリ。
  →ぶっちゃけ、ここは、舞台データの仕様策定ができないと動けない。
  →ラウンドフレーム制はこれの為にあったりする。

・シナリオデータの、戦闘シーンへの導入
 →これも、ウリか。
  →通常の戦闘テキストを走らせながら、そこに、シナリオテーブルから状況を差し込むシステム。
   →これ、上手くいくんだろうか・・・。
   →やってみないとわからないかなあ・・・。
   →どちらにしても絶対に劣化する。それはまちがいない。
    →ただ、それをどこまで劣化を阻止できるかの問題。
     →書き手の能力問題、つまりわたしの能力しだい。
 →アーキタイプ別の台詞と同時にやる。
  →実験的にショートストーリーを作ってみる。
   →その際に、一緒にキャラクターを作るので、その際に台詞は作る。

・ファンブル表・効果的成功
 →ファンブル表は非常に大きな問題。
  →なぜなら、ラウンドフレームの中で取りうる行動に直結するから。
 →効果的成功は書いてもいいけど、ファンブルと同時にやる。
  →というか、効果的成功、あんまり必要なさそうなんだけど・・・。
   →これは、現状でずいぶんシステムの触れ幅が大きいから。
    →リスク選択型下方ロールがすさまじく効いている。
   →どっちかといと、ファンブルが重要。
    →ファンブルは数ラウンド持たせたい。
     →これ、どう実装するか。
     →適当に考える。
 →ファンブルは、昔作った連鎖ファンブルで実装予定。
  →というか、今作ってるシステムって、昔自分で作ったアナログルールを、ばりばりコンパチしているだけなんだよね・・・。


 回避移動 → 相手をすり抜けていく、前進に近い運動
 防御移動 → 相手から遠ざかる、後退に近い運動(横移動も)
        →防御移動には、飛び移るといったような運動もある。

 ■連鎖ファンブル
  → 基本的に自作の「ソードワールド用キャラクター作成追加ルール」を踏襲。
   → ダイスを降って該当する項目に、連鎖条件が記載されている。
    ex. 「見知らぬ出会い」 0-30で「幼馴染」に連鎖 31-60で「ライバル出現」に連鎖
     → 「幼馴染」にも同じように連鎖条件が記載されている。
  → 従来のファンブルは5%とかの確率で発生する特別事項
   → ゲームに波乱をもたらすシステムとして、あまりにも非力。
  → 基本的に、1/4ぐらいの確率で、ファンブルが発生する。
   → ただし、はじめの項目は「よろめく」「一瞬戸惑う」みたいな些細なファンブル。
    → ここからパーセンテージで、どんどんファンブルが連鎖していく。
     → 1フレームごとに、悪化して行く。この間、正常行動は取れず。
  → 目的は、ゲームに意外性を持ち込むこと。
   → ゲームの95%に意外性がないというのはありえない。
    → これは、現在主流のゲームデザインも同じか・・・。
     → ファンブルが重要なのは、それがドラマ性だからなんだけど、まあいいや。

 というわけで、これは、パチンコの確変とかにヒントを得ている。
 まあ、プレイヤーとしては、一番退屈なのは変化がないことなわけで、なんで、こういう実装ってこれまで試されてこなかったのだろうと思ってしまう。
 連鎖という概念があんまり試されてこなかった実装である点と、はじめのファンブルをほとんど意味のないほど些細なファンブルにするという発想が、たぶんできなかったのだろうと、そう思う以外ないのだが。

 硬 直 化 で す よ !

 頭を、もっと柔らかくしてやらないと。
 世界の99%は未発掘の大地なのですよぉ!
 せめて、鋤を握って耕さなければ。
 世界は壮大な時代遅れで出来ていて、それを全否定することから、徐々に学んでいく謙虚さが生まれると信じなければ。生意気な学生のように、不承不承、頭の固い教授たちに一泡吹かせてやろうという気概を持たねば。
 反抗しないやつには魅力はない。

 わたしは、そういう挑戦は大好きだし、わたしも挑戦したい。
 秀才でありながら、跳ねっかえり。

 まあ、いいや・・・。
 勉強しよう・・・(笑)。

 勉強してますよ(笑)。

| pythonゲーム修行 | 00:43 | comments(0) | trackbacks(0) | 昨年の記事
[Pythonゲーム修行]テスト中 ラウンドフレーム -- microsoftを倒せ!

 えーと、本日は先日作った、オンラインゲームブック用の自動戦闘システムの実地テストです。ラウンドフレーム制(というかシステム)の検証です。

 >>開発の様子はこちら

 先日発見したバグは修正済みで、さらにバランスがおかしそうなところを発見するのが目的です。
 といっても、乱取り気味に戦わせて、能力値と比較しておかしな行動を取っていないか見るだけなのですが・・・。

 というわけで本日は、google vs microsoft から。
 まずはデータ。

google c822c1b63853ed273b89687ac505f9fa
大きさ 1 + 0
速さ 11 + 3
強さ 6 + 2
耐久 3 + 3
武器 ウォーハンマー 9 ダメージ期待値
防具 革鎧 3 ap
盾 なし 0 ap
攻撃スキル 86 %
回避スキル 41 %
盾スキル 28 %
受けスキル 38 %
アーキタイプ シド辺境蛮族(男) 都会化された蛮族
9.0 0 38 41

microsoft 5f532a3fc4f1ea403f37070f59a7a53a
大きさ 10 + 3
速さ 3 + 1
強さ 15 + 4
耐久 12 + 5
武器 バスタードソード 6.5 ダメージ期待値
防具 プレートメイル 8 ap
盾 ヴァイキングラウンド 8 ap
攻撃スキル 86 %
回避スキル 35 %
盾スキル 36 %
受けスキル 10 %
アーキタイプ シド人(男) 都会的な種族
105 6 10 35

 ウォーハンマーを振り回す蛮族googleと、かなり洗練された騎士であるmicrosoft。
 googleは装甲が薄いのが気になる。回避スキルが高いのがましか。
 microsoftはいやみなぐらい隙がない。
 では、バトル!

 >>実際の戦闘ログはこちら

google の状態
{'suu': 3, 'sok': 5, 'hin': 0, 'kei': 0, 'juu': 0}
microsoft の状態
{'suu': 3, 'sok': 2, 'hin': 0, 'kei': 0, 'juu': 1}

 うわー、ぼこぼこwww
 これは24ラウンド戦った結果で、googleはその間に5回死んでいる。
 sokが即死、hinが瀕死、keiが軽傷、juuが重傷。
 これが、柔道の効果、有効、技あり、一本みたいな感じで、二つ取られると、上のポイントに上がっていくシステム。suuはゲーム上使っているステータス値なので、とりあえずは関係ない。

 うーん、24ラウンドで7回死ぬのか・・・。
 大体、4ラウンドぐらいで勝負がついている計算になる。
 なるほど。

 見た感じ、変な行動は取っていない。googleは耐久値が+3で、しかも装甲が薄いから、バスタードソードの+1攻撃で重傷攻撃を食らってるので、こんなに死んでるんだなあ・・・。googleもウォーハンマーで+2の17攻撃とかしてるけど、これで軽傷か・・・。これは勝てない。
 お、22ラウンドで、google怒涛のウォーハンマー三連打。
 「軽傷」「軽傷」「軽傷」
 地道に削ってる・・・。

 なるほど。
 しかし、microsoftは強すぎる・・・。
 こんなのに勝てるやついるのか?

 というわけで、

 勇者を探せ! microsoftをぶっ倒せ!

 という企画で、乱取りをしながら強いやつを探してみることにしましょう!


 まずは、Intel vs AMD。

Intel ff97a9fdede09eaf6e1c8ec9f6a61dd5
大きさ 9 + 2
速さ 15 + 4
強さ 13 + 3
耐久 14 + 6
武器 レイピア 4.5 ダメージ期待値
防具 プレートメイル 8 ap
盾 なし 0 ap
攻撃スキル 66 %
回避スキル 43 %
盾スキル 60 %
受けスキル 70 %
アーキタイプ システィア人 楽天的な冒険家
207.0 0 70 43

AMD 48af4341f745163f945fa838eeabb062
大きさ 3 + 1
速さ 4 + 1
強さ 1 + 0
耐久 15 + 6
武器 ダガー 4.5 ダメージ期待値
防具 革鎧 3 ap
盾 ターゲットシールド 8 ap
攻撃スキル 34 %
回避スキル 27 %
盾スキル 32 %
受けスキル 70 %
アーキタイプ ボルニア人 典型的な蛮族
123.0 47.0 70 27

 おっとシスティアvsボルニアですね。
 双方とも武器がだめだめすぎ・・・。
 しかもIntelはプレートメイルですか・・・。無防備指数が200って何だwww
 これは勝てないなあ・・・。

 >>実際の戦闘ログはこちら

Intel の状態
{'suu': 1, 'sok': 0, 'hin': 0, 'kei': 0, 'juu': 1}
AMD の状態
{'suu': 3, 'sok': 3, 'hin': 1, 'kei': 0, 'juu': 0}

 ちょwww
 Intel、ほぼノーダメージ。AMD攻撃スキルも低いしねえ・・・。

 おっと、バ グ 発 見 !

 6ラウンドでIntelが外したはずなのに、そのまま盾で受ける流れにいってしまい、攻撃が入ってしまってますな・・・。これはあとで直そう。
 おっと、10ラウンドでも同様のバグ。
 AMDが攻撃を外したのちに、盾で受けるのフローへ流れてしまっている。AMDがダメージを与えられたのは、バグのお蔭か・・・。
 22ラウンドでもIntelが持ってない盾で受けようとしてしまっている。
 うーむ・・・。


 続いて、Xbox 360 vs PS3。

Xbox 360 31cccb6b2d551d96218068b4be8d9032
大きさ 11 + 3
速さ 6 + 2
強さ 11 + 3
耐久 2 + 3
武器 レイピア 4.5 ダメージ期待値
防具 革鎧 3 ap
盾 カイトシールド 14 ap
攻撃スキル 34 %
回避スキル 41 %
盾スキル 56 %
受けスキル 34 %
アーキタイプ ボルニア人 典型的な蛮族
29.0 121.0 34 41

PS3 bf2aed0e93e0880bb2a174e757657eb1
大きさ 13 + 3
速さ 0 + 0
強さ 14 + 4
耐久 9 + 4
武器 ブロードソード 5.5 ダメージ期待値
防具 プレートメイル 8 ap
盾 ヴァイキングラウンド 8 ap
攻撃スキル 62 %
回避スキル 31 %
盾スキル 20 %
受けスキル 54 %
アーキタイプ システィア人 楽天的な冒険家
179.0 35.0 54 31

 おっと、PS3は案外強いなあ。

 >>実際の戦闘ログはこちら

Xbox 360 の状態
{'suu': 3, 'sok': 2, 'hin': 1, 'kei': 0, 'juu': 1}
PS3 の状態
{'suu': 3, 'sok': 2, 'hin': 0, 'kei': 0, 'juu': 0}

 あれ、結構好ゲーム。
 Xbox 360は盾が最強に近いカイトシールドなので、これで薄い装甲をカバーしたのかな? 盾指数が、121とかめちゃくちゃ有り得ない数字になっている。

 5ラウンドすげーwww。
 Xbox 360の必死の盾防御www。

 おっと、バ グ 発 見 !

 8ラウンド。
 Xbox 360の-4攻撃で、19のダメージが出てるなあ。
 これ、なんだろうな。
 9ラウンドでは-5攻撃で、5ダメージとか、ここは正常だ。
 11ラウンドも変だな・・・。

 うむ。
 順調にバグ出しが進んでいる(笑)。


 続いて、PSP vs nintendo DS。

PSP 0e9c9bb3639ba35c67b2492f04a34d99
大きさ 11 + 3
速さ 11 + 3
強さ 3 + 1
耐久 6 + 4
武器 ブロードソード 5.5 ダメージ期待値
防具 リングメイル 5 ap
盾 なし 0 ap
攻撃スキル 70 %
回避スキル 21 %
盾スキル 40 %
受けスキル 58 %
アーキタイプ 帝国南方辺境人 開拓者的人々
69.0 0 58 21

nintendo DS 6fcc894e0ab44de817504912ea0c78c8
大きさ 9 + 2
速さ 4 + 1
強さ 14 + 4
耐久 0 + 2
武器 モール 7.5 ダメージ期待値
防具 スケイルメイル 6 ap
盾 ターゲットシールド 8 ap
攻撃スキル 46 %
回避スキル 41 %
盾スキル 76 %
受けスキル 42 %
アーキタイプ シド辺境蛮族(女) 都会化させた蛮族
69.0 81.0 42 41

 あり? なんで、DSは2Hのモール持ってんのに、シールド持ってるんだろう??
 あ、遅れた。

 おっと、バ グ 発 見 !

 まあ、よい。
 ほかには見るところはないかなあ・・・。

 >>実際の戦闘ログはこちら

PSP の状態
{'suu': 3, 'sok': 6, 'hin': 0, 'kei': 1, 'juu': 1}
nintendo DS の状態
{'suu': 3, 'sok': 2, 'hin': 1, 'kei': 0, 'juu': 0}

 うぉ?
 なんで、こんな圧倒的な差が出るんだ???
 うーん、たしかに、DSは防御系のスキルが高いうえに、イレギュラーの盾もってるからか?

 ちょwww
 1ラウンドから、猛烈な盾防御www
 猛烈すぎwww

 おっと、また攻撃を外して、そこから変な攻撃のところへいっているな。
 第2ラウンド。これはさっきのバグと同じバグだ。

 しかし、DSはかなり保守的なアーキタイプなので、ほんとにオール防御とかが発生するなあ。これどうなのかな・・・。


 続いて、blu-ray vs HD DVD。


blu-ray 648fa5cbf0a3bb2a2f4798ac85adb021
大きさ 5 + 1
速さ 12 + 3
強さ 11 + 3
耐久 15 + 6
武器 バトルアクス 6.5 ダメージ期待値
防具 スケイルメイル 6 ap
盾 カイトシールド 14 ap
攻撃スキル 74 %
回避スキル 37 %
盾スキル 28 %
受けスキル 50 %
アーキタイプ シド辺境蛮族(男) 都会化された蛮族
153.0 93.0 50 37

HD DVD 9c227ecc691ca7bbae62193b68063bf4
大きさ 14 + 4
速さ 12 + 3
強さ 12 + 3
耐久 6 + 4
武器 メイス 5.5 ダメージ期待値
防具 服 0 ap
盾 カイトシールド 14 ap
攻撃スキル 70 %
回避スキル 29 %
盾スキル 64 %
受けスキル 54 %
アーキタイプ ぺネス人 狩猟的種族
0 119.0 54 29

 おっと、blu-rayは結構バランスがいいですね。
 指数が総じて高いということは防御系が優秀ということなので。
 ひるがえって、HD DVDはカイトシールド頼みか・・・。
 というか、服着たまま戦うなよ・・・。

 >>実際の戦闘ログはこちら

blu-ray の状態
{'suu': 3, 'sok': 1, 'hin': 1, 'kei': 1, 'juu': 1}
HD DVD の状態
{'suu': 3, 'sok': 3, 'hin': 1, 'kei': 1, 'juu': 1}

 んー、まあ、まあまあ。

 おっと、HD DVDはどうやってダメージを与えているのかと思ったら、ぺネス人がかなりアグレッシブな攻撃をするアーキタイプなので、それでうまくいっているのか・・・。
 ここは機能しているのだなあ。

 5ラウンドは既知のバグ。
 16ラウンドすげwww。
 怒涛の盾防御www

 およ?

 おっと、バ グ 発 見 !

 これ、盾防御が全部成功している!
 これか!
 なるほど。

 24ラウンドも、受けが全部成功している気がしてきた・・・。


 続いて、au vs willcom。

au 8bcc25c96aa5a71f7a76309077753e67
大きさ 5 + 1
速さ 12 + 3
強さ 9 + 2
耐久 6 + 4
武器 モール 7.5 ダメージ期待値
防具 スケイルメイル 6 ap
盾 なし 0 ap
攻撃スキル 70 %
回避スキル 29 %
盾スキル 24 %
受けスキル 70 %
アーキタイプ ボルニア人 典型的な蛮族
141.0 0 70 29

willcom 08158d2bbd0e18e6712c8423cbfb227b
大きさ 13 + 3
速さ 2 + 1
強さ 11 + 3
耐久 11 + 5
武器 レイピア 4.5 ダメージ期待値
防具 服 0 ap
盾 なし 0 ap
攻撃スキル 34 %
回避スキル 31 %
盾スキル 76 %
受けスキル 34 %
アーキタイプ エスト人 祭司的騎士道的種族
0 0 34 31

 うん。見るとこなし。

 >>実際の戦闘ログはこちら

au の状態
{'suu': 3, 'sok': 2, 'hin': 1, 'kei': 0, 'juu': 0}
willcom の状態
{'suu': 3, 'sok': 3, 'hin': 0, 'kei': 0, 'juu': 0}

 ん? なんで、willcomはこんなに死なないんだ?
 おっと、耐久値が高いからか。
 でも、相手はモールだしなあ・・・。

 6ラウンド。

 おっと、バ グ 発 見 !

 達成値-5のペナルティーが利いてないなあ。
 あー、いんだ。無防備攻撃なので、回避できないんだな。そうか。これはOK。
 バグじゃない。
 おっと、でも、一緒にダメージのほうのペナルティーも利いていない様だ。
 これはバグだ。



 続いて、softbank vs docomo。

softbank 5e6b3e7c4ac796fe4d710ac4e0faa07d
大きさ 14 + 4
速さ 7 + 2
強さ 12 + 3
耐久 4 + 3
武器 モール 7.5 ダメージ期待値
防具 チェインメイル 7 ap
盾 バックラー 6 ap
攻撃スキル 66 %
回避スキル 27 %
盾スキル 80 %
受けスキル 66 %
アーキタイプ キュディス人(女) ソ連的人々
93 50 66 27

docomo bb51e1a8beb2c02105a47f5607d301ec
大きさ 1 + 0
速さ 10 + 3
強さ 8 + 2
耐久 11 + 5
武器 グラディウス 7 ダメージ期待値
防具 スケイルメイル 6 ap
盾 ヒーターシールド 10 ap
攻撃スキル 78 %
回避スキル 15 %
盾スキル 28 %
受けスキル 14 %
アーキタイプ シド人(女) 都会的な種族
115.0 33.0 14 15


 うーん、このバックラー意味ないなあ・・・。
 そして、domocoはこのシステム最強の武器グラディウス!
 なんと! すばらしく完璧に近い装備ですね。しかし、スキルが・・・。

 >>実際の戦闘ログはこちら

softbank の状態
{'suu': 3, 'sok': 2, 'hin': 1, 'kei': 0, 'juu': 1}
docomo の状態
{'suu': 3, 'sok': 4, 'hin': 0, 'kei': 0, 'juu': 1}

 おわ。圧倒的大敗・・・。
 やはり、防御系スキルは結構重要なのか。

 softbankは13とか14の攻撃で、確実にdocomoに軽傷を負わせているのだなあ。


 続いて、sony vs panasonic。

sony 33561003f44d374c719506bef4faeba4
大きさ 0 + 0
速さ 0 + 0
強さ 3 + 1
耐久 15 + 6
武器 バスタードソード 6.5 ダメージ期待値
防具 革鎧 3 ap
盾 なし 0 ap
攻撃スキル 42 %
回避スキル 29 %
盾スキル 36 %
受けスキル 58 %
アーキタイプ スカイ河流域人 ダンセイニ的種族
81.0 0 58 29

panasonic 5dac1b5914537a1bcd5ac55b181e8512
大きさ 11 + 3
速さ 5 + 1
強さ 9 + 2
耐久 1 + 2
武器 バスタードソード 6.5 ダメージ期待値
防具 革鎧 3 ap
盾 バックラー 6 ap
攻撃スキル 58 %
回避スキル 35 %
盾スキル 24 %
受けスキル 54 %
アーキタイプ シド辺境蛮族(男) 都会化された蛮族
0 0 54 35

 お互いあんまりつよくないなあ。

 >>実際の戦闘ログはこちら

sony の状態
{'suu': 3, 'sok': 2, 'hin': 0, 'kei': 1, 'juu': 1}
panasonic の状態
{'suu': 3, 'sok': 4, 'hin': 0, 'kei': 0, 'juu': 0}

 うーん、お互い殺しあった模様。
 sonyの被害が大きくないのは、単純に耐久値がマックスの+6だから。
 ほかに見るところはあるかな・・・。

 うーん、この組合せは面白くないwww。
 あれー、なんで面白くないのだろう・・・。
 まあいいや。


 続いて、hatena vs mixi。

hatena d836c5db4b58bd9bf0d896d44413d853
大きさ 5 + 1
速さ 13 + 3
強さ 11 + 3
耐久 4 + 3
武器 ショートスピア 5.5 ダメージ期待値
防具 革鎧 3 ap
盾 なし 0 ap
攻撃スキル 74 %
回避スキル 41 %
盾スキル 56 %
受けスキル 54 %
アーキタイプ トラン人 ナチス的人々
0 0 54 41

mixi f7640620ca04c30908a415fc6ed985e6
大きさ 6 + 2
速さ 2 + 1
強さ 0 + 0
耐久 12 + 5
武器 モール 7.5 ダメージ期待値
防具 服 0 ap
盾 ヒーターシールド 10 ap
攻撃スキル 78 %
回避スキル 21 %
盾スキル 20 %
受けスキル 46 %
アーキタイプ シド辺境蛮族(女) 都会化させた蛮族
29.0 45.0 46 21

 うーん、バグで、mixiがヒーターシールドを持ってしまっている・・・。

 >>実際の戦闘ログはこちら

hatena の状態
{'suu': 3, 'sok': 2, 'hin': 0, 'kei': 1, 'juu': 1}
mixi の状態
{'suu': 3, 'sok': 2, 'hin': 1, 'kei': 1, 'juu': 1}

 おや、なかなか勝負がいいなあ。
 おっと、hatenaは受けと回避以外にまともな防御がないので、この高いところに集中させているので強いのか・・・。

 第四ラウンド。
 おっとmixiが全力盾防御! というか、おまえ盾スキル低いだろwww


 続いて、Facebook vs MySpace。

Facebook d85544fce402c7a2a96a48078edaf203
大きさ 4 + 1
速さ 15 + 4
強さ 12 + 3
耐久 14 + 6
武器 バスタードソード 6.5 ダメージ期待値
防具 服 0 ap
盾 カイトシールド 14 ap
攻撃スキル 78 %
回避スキル 29 %
盾スキル 60 %
受けスキル 18 %
アーキタイプ シド人(女) 都会的な種族
61.0 135.0 18 29

MySpace 7190973a87c52f3f7fa3925f5b03c555
大きさ 7 + 2
速さ 3 + 1
強さ 10 + 3
耐久 8 + 4
武器 ダガー 4.5 ダメージ期待値
防具 チェインメイル 7 ap
盾 なし 0 ap
攻撃スキル 38 %
回避スキル 45 %
盾スキル 32 %
受けスキル 70 %
アーキタイプ ボルニア人 典型的な蛮族
105.0 0 70 45

 うーん、MySpaceの異常な受け・・・。

 >>実際の戦闘ログはこちら

Facebook の状態
{'suu': 3, 'sok': 1, 'hin': 1, 'kei': 0, 'juu': 1}
MySpace の状態
{'suu': 3, 'sok': 1, 'hin': 1, 'kei': 1, 'juu': 0}

 ほう・・・。
 これは、Facebookは盾に絞ったのか?
 おっと、MySpaceは攻撃スキルが低いのか・・・。

 うーんFacebookはがちがちに守って時折攻撃で、MySpaceはせめていくが、ダガーなんでいかんせんという感じのようだ・・・。



 というわけで、とりあえず10戦やって、バグの或る箇所もだいたいわかったので、勇者を決定しますか。

 microsoftに挑むのは、

 softbankで!

 イレギュラーに盾を持っているsoftbankならやってくれるでしょう。
 というわけで行ってみましょう!

 microsoft vs softbank


microsoft 5f532a3fc4f1ea403f37070f59a7a53a
大きさ 10 + 3
速さ 3 + 1
強さ 15 + 4
耐久 12 + 5
武器 バスタードソード 6.5 ダメージ期待値
防具 プレートメイル 8 ap
盾 ヴァイキングラウンド 8 ap
攻撃スキル 86 %
回避スキル 35 %
盾スキル 36 %
受けスキル 10 %
アーキタイプ シド人(男) 都会的な種族
135.0 21.0 10 35

softbank 5e6b3e7c4ac796fe4d710ac4e0faa07d
大きさ 14 + 4
速さ 7 + 2
強さ 12 + 3
耐久 4 + 3
武器 モール 7.5 ダメージ期待値
防具 チェインメイル 7 ap
盾 バックラー 6 ap
攻撃スキル 66 %
回避スキル 27 %
盾スキル 80 %
受けスキル 66 %
アーキタイプ キュディス人(女) ソ連的人々
103.0 55.0 66 27

 ちょwww
 改めてみると、microsoftつえぇぇぇぇぇwww

 結果は、

 >>実際の戦闘ログはこちら

microsoft の状態
{'suu': 3, 'sok': 4, 'hin': 0, 'kei': 0, 'juu': 0}
softbank の状態
{'suu': 3, 'sok': 4, 'hin': 0, 'kei': 0, 'juu': 0}

 うはwww
 死闘過ぎwww

 というわけで、死闘の続きは、バランス調整&バグ取りののちにしましょう。


 しかし、11本の乱取りのテキストデータをサーバにアップしてみたらなんと、全部のファイル容量が400kもあった・・・。
 大体、原稿用紙800枚ぐらい。
 わたしは、日速20枚ぐらいの書き手なので、わたしが自分で書いたら40日ぐらい掛かる分量です。もちろん人が書いたものに比べてかなり力量が落ちるのは当たり前なのですが、それを全部自動化すれば、たぶん5分ぐらいで吐き出してしまう。この文章を吐き出す作業自体も20分ぐらいしかかかっていない。

 なんというか、ある程度ゲームデザインがしっかりしていれば、こういう自動バトルでもそれなりに戦っているように見えることがわかった。
 なので、わたしがせこせこ戦闘シーンを書くよりは、かなり劣化するけど、これはこれでうまく面白く作れるのかなあ・・・。

 まあ、さすがにコンピュータで自動で書いている戦闘シーンに負けないのだが、密度の濃い文章は、かなり読み手に負荷をかけるので、あんまりオススメできないんだよなあ・・・。

 まあ、いいや。
 うだうだいうより、とりあえずバグを直そう。




 
| pythonゲーム修行 | 21:57 | comments(0) | trackbacks(0) |
 [Pythonゲーム修行]ラウンドフレーム制の仕様と解説


 昨日、状況報告とばか長いサンプルログのみを残して、寝てしまったラウンドフレーム制導入後の実装ですが、

 ・わたしは開発メモを延々と残すたちなので、
 ・個人的にここに全部残しておくと、後々わたしが確認しやすいので、
 ・あと、誰かの役に立つかもしれないので、

 本日は長々と、開発メモをぺたぺた貼りながら、解説も加えて書いておきます。

 >>仕様策定のようすはこちらのエントリー
 >>テストのようすはこちらのエントリー


 1.名称変更 改良ストライクランク → ラウンドフレーム制

 これは、馬鹿っぽくメモを残してある。


 しかし、一応ネタ元とはいえ、実際には全くの別物なので、ストライクランクという名前は変えないとなあ。ぜんぜんストライクランクじゃないじゃんとつっこみを受けそうである。
 どっちかというと、FLASHのタイムラインの考え方に近い。
 なので、ストライク・ラインとかいう名前にしようか・・・。
 なんか、まんまだな・・・。
 基本的には、1ラウンドを20のフレームに分割して、1ラウンドが終わると、シャッフルするというのがだいたいのコンセプト。

 なので、名称としては、「ラウンド」「フレーム」という用語があるわけだ。
 「第1ラウンド、第15フレーム」という呼称で呼ばれるわけだ。
 「1R 1F」という表記か・・・。
 なんか、わかりにくいので、2文字にしよう。

 AF アクション・フレームとか・・・。なんかフラッシュと混同する。
 BF バトル・フレームかな? BF団っていたなあ。なんだっけ?
 CF センターフレーム? コンパクトフラッシュと混同するから却下。
 DF ディフェンダー・・・。
 EF 
 FF ファイティング・フレーム ここはちょっと競合が多すぎる・・・。
 GF ん・・・。
 HF 
 IF イフ?
 JF 

 KF 
 LF 
 MF ミッドフィルダー・・・。
 NF 
 OF 
 PF
 QF
 RF ラウンドフレーム! これはわかりやすいね。
 SF すこしふしぎ
 TF タイムフレーム

 UF ユナイテッド・フレーム
 VF ビクトリーフレーム
 WF ワンダーフレーム
 XF おもいつかない・・・。
 YF
 ZF

 まあ、いいか。RFで。ラウンドフレーム。
 というわけで、ラウンドフレームの導入ということで。
 それだけのために、こんな検討をしていたわけか・・・(笑)。



 なんか、堂々巡りをした結果、すさまじく無難なところに落ちたという感じ。


 2.仕様の詳細の詰め − アクション・オーダーの仕様設定

 実際にラウンドフレームの仕様を眺めて、どうも行動予定表みたいなものの提出のところの実装が肝であると思い、まずこの行動予定表(のちにアクション・オーダーの名称に変更)の仕様を策定。

 行動予定表

 26桁の数値。
 1桁目 → 緊急回避をするかどうか。 する e/せず f
 2桁目 → 各行動。
       0:移動
       1:回避
       2:盾
       3:二度目以降の盾
       4:受け
       5:二度目以降の受け
       6:攻撃 遠
       7:攻撃 中
       8:攻撃 近
       9:二度目以降の攻撃 遠
       a:二度目以降の攻撃 中
       b:二度目以降の攻撃 近

 ex. f00000666444999999000
       

 処理用行動予定表

 26桁の数値。

 1桁目 → 緊急回避をするかどうか。 する e/せず f
 2桁目 → 各行動。
       0:移動
       1:回避
       2:盾
       3:受け
       4:攻撃
       5:アタックポイント

 ex. f00000544333444544000

 1. SR修正部
 1-1 大きさ修正 移動0なら関係なし 8以上であれば、SR-1
 1-2 速さロール 移動0なら関係なし randint(0,15)で敏捷値以下ならば、SR-1



 25フレーム分の行動を入力できるようにしているのは、単純に「受け」が成功すると、受け動作が省略されて次の行動にスキップできるという仕様が存在するから。

(超どうでもいいが、この仕様はストリートファイターの「キャンセル」の仕様をぱくっているのだな。あー、「キャンセル」といよりは「ブロッキング」か・・・。なので、もし「受け」を食らったら、「くそー、ガードキャンセル昇竜拳だと!?」と叫ぶと、一部の人にウケがいいはず<ほんとに、超どうでもいいはなしだ・・・。というかこのラウンドフレームはルーンクエストと格ゲーのコンパチだな・・・、仕様策定でもコンボとか言ってるし)

 あと、処理用に行動予定表を書き直しているのは、のちのち、一般行動(立ち上がるなど)を追加するときのために余裕を持たせるため。
 どうでもいいが、この仕様を書いているときはまだラウンドフレームの名称ではなかった。なので、SRとか言っている。コードにも残ってるなあ・・・、別にどうでもいいのだが。


 3.CUPのアクション・オーダー作成アルゴリズム(前編)

 ここから、アクション・オーダーを作成するアルゴリズムを考え始める。


 ラウンドフレーム制 CPUアルゴリズム 仕様策定

 1.攻撃目標目標値(ark_pat)のデータを使用。
 2.相手の武器のダメージ期待値(wep_dp)と防具の状況を見て決定。
  # 強み要素
  1)装甲値(arm_ap)が相手のダメージ期待値(wep_dp)以上 → 無防備優先
  2)シールド装甲値(shld_ap)が、wep_dp + 4 以上 → 盾優先
  3)どっちもだめ → 受け優先。回避優先
  これらに、それぞれのスキルを掛けたものが、強気防御係数 #要調整
  うー、わかりにくくなってきたコードを書く

print u"無防備係数",(equ[i]["am_ap"] - equ[j]["wp_dp"])*20 + 100-man[i]["df_s"]
print u"盾係数",(equ[i]["sh_ap"] - equ[j]["wp_dp"] -2)*10 + man[i]["sh_s"]
print u"受け係数",man[i]["pr_s"]
print u"回避係数",man[i]["df_s"]

  んー、いろいろ調整してこうなった。
  大体こんな感じ出てくる。


  無防備係数 45.0
  盾係数 41.0
  受け係数 58
  回避係数 45

  無防備係数 97.0
  盾係数 57.0
  受け係数 42
  回避係数 33

  これに、リスクテイクをする 0 ←→ 6 リスクテイクしない
  を元に、どれを選びやすくなるかを決める。
  あー、で、係数が10以下の方法は選択しない。

  無防備係数 97.0   -10*リスク係数-2
  盾係数 57.0     +10*リスク係数-2
  受け係数 42     -5*リスク係数-2
  回避係数 33     +5*リスク係数-2

  で、どんな感じになるか書いてみるか

0123456
無 65
盾 21
受 68
回 35
無 55
盾 31
受 63
回 40
無 45
盾 41
受 58
回 45
無 35
盾 51
受 53
回 50
無 25
盾 61
受 48
回 55
無 15
盾 71
受 43
回 60
無 5
盾 81
受 38
回 65


 とのこと。まあ、いいんじゃないだろうか。
 で、この合計で割って、パーセンテージにしたのが、実際に選択する行動ということにしよう。


 この辺は地道な作業。数字をちょっとずついじって微妙なバランスを作っている。
 ただ、まあこの辺はもうちょっと調整が必要。

 ただこうやって作ってみると、プログラムが書けないコンピュータゲームデザイナーとか有り得ないわwww
 これはわかった。
 シド・マイヤーは正しかった。仕様考えながら、どうやってコードに落とすかとか考えないと、ちょっとめちゃくちゃなコードになる。現在でもかなりごちゃごちゃしたコードだけど・・・。


 4.CUPのアクション・オーダー作成アルゴリズム(前編)

 続いて並び順の話。
 

 で、続いて、攻撃回数を決める。
 ラウンドフレームは全部で20ある。
 で、移動で、0-6消費する。
 またボーナスで0-2消費を削減できる。

 で、攻撃三回は、3+6+6 = 15 の消費。
 攻撃二回は、3+6 = 9 の消費。

 距離が決まったときに、自動的に、いくつ消費できるかが決まる。
 これを、どーしようか(笑)。

 えーい、面倒だ(笑い)。

 とりあえず、
 0-2 :強気 フル攻撃
 3-4 :中間 1/3の確率でフル攻撃 通常二回攻撃
 5-6 :弱気 1/3の確率で攻撃一回のみ 通常二回攻撃

 まず、実際のところ0を選択しているアーキタイプってないので、実質上、1-2が強気。 で、やっぱり一回攻撃の選択肢も残したいので、
 フル攻撃4/3、二回攻撃4/3、一回攻撃1/3
 というバランスにしてみた。
 ここはよい。

 で、実際には無防備があるので、これは=攻撃。
 で、あとは、どういう順番で行動を選択するかだな。
 これは、攻撃回数が決定すると、自動的に回避/受け/盾の回数も決まるので、あとは順番だけ。これはランダムでいいかなあ・・・。
 うーん、いろいろ考えたけど、アルゴリズムはいつでも変えられるので、ここはイージーな実装にしておこう。

 よし、じゃあ、コード書くか。



 といきなり書き始めているなあ・・・。


 5.コードの整理

 続いて、コードのクリーンアップ。

 変数規則仕様

 ■存在する変数
  -- 固定値
 ・能力値      man[1]["size"]など
 ・能力値ボーナス  b[1]["siz"]など
 ・ステイタス    s[1]["kei"]など
 ・武器名      wepon[1]など
 ・武器のSR     wep[1]など
 ・鎧名       armour[1]など
 ・アーマーポイント arm_ap[1]など
 ・アーキタイプ   ark_type[1]など
 ・攻撃パターン   ark_pat[1]など

 ややこしすぎる・・・。
 → 能力値系、所持品等、ステイタス系に統一。

 ・すべて辞書型 アルファベット3字の名称に

 man[] 能力値変数
  → ハッシュからそのまま抜き出したもの 一次能力値 →アルファベット4字
  → 修正値や、ボーナス 二次能力値 →アルファベット3字
  → スキルなどの%系 → at_s のようなアルファベット2字 + _s

 man[] が持つ値
  ・一次能力値
  "size" "spee" "powe" "cons" "wepo" "armr" "arkt" "atsk" "dfsk"
  ・二次能力値(ボーナス系)
  "siz" "spe" "pow" "con" //"suu"
  ・二次能力値(スキル系)
  "at_s" "df_s"

  追加予定

  シールドスキル(一次・二次)
  受けスキル(一次・二次)


 equ[] 装備等変数
  → 名称 → アルファベット5文字
  → 装甲値など → アルファベット2文字 + _sr等

 sta[] ステイタス変数


 とりあえず、ここまで完了。



 関数整理

# 以下、実装済み

// def atd():     # ダメージ決定関数
// def serif_selec(): # メッセージ選択関数(汎用)
// def at_hit():    # 命中処理関数
//           # (要改良)

// def attak():    # 攻撃関数(元) ←これが大本の関数


# 以下、未実装

 def dm_cont():   # ダメージ悪化関数 ← 現在、for文で実装してある。
/ def rd_frame():   # ラウンドフレーム制の実装関数(未実装)



# 構成

/def rod():
/ def rod_frame():

// def at_hit():
// def attak():
// def atd():
// def serif_selec():

def dm_cont():



 これは本当に作業メモですね・・・。
 スラッシュが入っているのは、

 // → 作業完了
 /  → 作業中
   → 未着手

 という意味。
 このあたりで、コードを全部書き直すみたいな世界になっている。

 というわけでコードになる。

 >>現在のコードはこちら

 実際この段階から完成まで、6日経っている。
 大本の仕様策定から13日もかかっている。
 うーん、このラウンドフレームを導入するのに、2週間も掛かっているのか・・・。
 もちろん、フルタイムでやっているわけではもちろんないのと、わたしがへっぽこプログラマーであるのもあるのだけど、数週間でゲームのプロトタイプ作るとか言っていたシド・マイヤーすげ・・・。
 しかし、もう既に25kありますか・・・。
 これじゃあ100kとかあっという間だ・・・。
 まあ、へぼコードなので膨らんでいるということも否定できないけれど・・・。


 以上。


 さて、雑感。
 この作業を通して、
「あーわたしは、デザインパターンを勉強しないと、これはだめだな」
 と感じた。

 もう圧倒的に、脳みそが忙殺される。
 改装している間は、テストもできないので、ほんとに動くかどうかわからない状況で、コード書くってのはつらい。
 アクション・オーダーのコードは120行ぐらいあって、1日で書いたのだけど、なんか書いている最中にもう怖くなってきて、コードでゲシュタルト崩壊しそうになるぐらい、あれ? 何を書いているだっけとか、これどういう意味だったけとか。
 今見るとたいしたコードではないのだけど、開発メモとか残しておかないと、わたしには絶対にこれを書くのは無理。

 ちなみに、実際には、20箇所ぐらいイージーミスをしているだけで、全体のロジックの流れは間違っていないよう。まあ、ただ、意図したとおりに動いていないところもあるのだけど、これは、これから修正して行く次第。

 しかし、Pythonのコードは簡潔で美しいですね・・・。(<洗脳され中)
 あまりにも簡潔なので、ほんとかみそりみたいにロジックが刺さってくる。
 だーって書いていると、それに刺されるのですよ。

 まあ、いいや。
 おつかれ!

| pythonゲーム修行 | 21:28 | comments(0) | trackbacks(0) | 昨年の記事
[pythonゲーム修行]できた・・・。
 秩父山中の山篭りから帰ってまいりました(嘘)。
 できた・・・。
 とりあえず、ラウンドフレーム制を導入した・・・。
 目標のマッチメーカーレベルには、「システム的には」達した。

 うーん、死にそうだ(笑)。
 このレベルのプログラミングには脳みそがついていかないっぽい。
 ただ、まあ、テキスト系自動戦闘の分野(<んなもんあるのか!(笑))では、最強でしょう。あー、マッチメーカーがいるか。まあ、光速でぶち抜き中なので、この辺はどうでもいい。
 とりあえず、ここは0.1合目なので、ゆっくり休むことにします。
 これは小説の戦闘シーンっぽく見えるようになる予定。(<これはあんまり重要ではないが)
 とりあえず、システム的なめどをつけた。

 詳細は明日。 < つ、つかれた・・・。
 コードとかもめんどいので、明日。
 Pythonすげー。これ、phpで書いたら、2000行とか行くよ・・・。
 現在630行。
 へぼいわたしが書いて600行なのだから、もっと圧縮できるんだな・・・。
 

 とりあえず、戦闘ログをはっておく。


google c822c1b63853ed273b89687ac505f9fa
大きさ 1 + 0
速さ 11 + 3
強さ 6 + 2
耐久 3 + 3
武器 ウォーハンマー 9 ダメージ期待値
防具 革鎧 3 ap
盾 なし 0 ap
攻撃スキル 86 %
回避スキル 41 %
盾スキル 28 %
受けスキル 38 %
アーキタイプ シド辺境蛮族(男) 都会化された蛮族

microsoft 5f532a3fc4f1ea403f37070f59a7a53a
大きさ 10 + 3
速さ 3 + 1
強さ 15 + 4
耐久 12 + 5
武器 バスタードソード 6.5 ダメージ期待値
防具 プレートメイル 8 ap
盾 ヴァイキングラウンド 8 ap
攻撃スキル 86 %
回避スキル 35 %
盾スキル 36 %
受けスキル 10 %
アーキタイプ シド人(男) 都会的な種族



【第 1 ラウンド】

距離 2
e000333333333544111333333 -- google
f00222222222454000454111 -- microsoft
[156, 54, 70, 70, 82]
### フレーム 1
google は移動を開始する
microsoft は移動を開始する
### フレーム 2
microsoft は近寄る
### フレーム 3
google は近寄る
### フレーム 4
### フレーム 5
### フレーム 6
### フレーム 7
### フレーム 8
### フレーム 9
### フレーム 10
### フレーム 11
microsoft は盾を構えた
### フレーム 12
google は受け流そうとした
### フレーム 13
google は達成値 2 の攻撃を試みたが外した。( 66 %)

microsoft の、達成値 2 の攻撃! 2 ( 66 %)
google は無防備攻撃を受けた。( 41 %)
microsoftはバスタードソードを振り上げ、力の限りに斬りつけた。 9 の攻撃!
革鎧を破り、重傷を負わせた。傷口から血が吹き出した。

### フレーム 14
### フレーム 15
### フレーム 16
### フレーム 17
microsoft は近寄る
### フレーム 18
google は回避行動を取った
### フレーム 19
microsoft の、達成値 4 の攻撃! 1 ( 46 %)
google は受け流した。( 15.5648 %)

### フレーム 20
google の状態
{'suu': 1, 'sok': 0, 'hin': 0, 'kei': 0, 'juu': 1}
microsoft の状態
{'suu': 0, 'sok': 0, 'hin': 0, 'kei': 0, 'juu': 0}


【第 2 ラウンド】

距離 0
e544333333333000544000544111 -- google
f454000454000454222000454000454 -- microsoft
[156, 48, 71, 71, 80]
### フレーム 1
google の、達成値 1 の攻撃! 1 ( 76 %)
microsoft は無防備攻撃を受けた。( 35 %)
うなるウォーハンマーがmicrosoftに襲い掛かる。 6 の攻撃!
厚いプレートメイルの装甲にその攻撃は妨げられる。

### フレーム 2
microsoft は達成値 1 の攻撃を試みたが外した。( 76 %)

### フレーム 3
### フレーム 4
### フレーム 5
### フレーム 6
microsoft は近寄る
### フレーム 7
### フレーム 8
microsoft の、達成値 5 の攻撃! 2 ( 36 %)
google は受け流した。( 38 %)

### フレーム 9
### フレーム 10
### フレーム 11
### フレーム 12
microsoft は近寄る
google は受け流そうとした
### フレーム 13
### フレーム 14
microsoft の、達成値 0 の攻撃! 2 ( 86 %)
google は回避できない。( 41 %)
microsoftはバスタードソードを振り上げ、力の限りに斬りつけた。 15 の攻撃!
革鎧を破り、瀕死の一撃を負わせた。激しく血が吹き出す。

### フレーム 15
google は近寄る
### フレーム 16
google は達成値 4 の攻撃を試みたが外した。( 46 %)

### フレーム 17
### フレーム 18
microsoft は盾を構えた
### フレーム 19
### フレーム 20
google の状態
{'suu': 2, 'sok': 0, 'hin': 1, 'kei': 0, 'juu': 1}
microsoft の状態
{'suu': 0, 'sok': 0, 'hin': 0, 'kei': 0, 'juu': 0}


【第 3 ラウンド】

距離 1
e00333544000544333333333333 -- google
e111454222000454000454111 -- microsoft
[156, 48, 71, 71, 80]
### フレーム 1
google は移動を開始する
### フレーム 2
google は近寄る
### フレーム 3
microsoft は回避行動を取った
### フレーム 4
### フレーム 5
microsoft は達成値 1 の攻撃を試みたが外した。( 76 %)

google は受け流そうとした
### フレーム 6
google は達成値 2 の攻撃を試みたが外した。( 66 %)

### フレーム 7
### フレーム 8
### フレーム 9
microsoft は盾を構えた
### フレーム 10
### フレーム 11
google は近寄る
### フレーム 12
microsoft は近寄る
google の、達成値 1 の攻撃! 2 ( 76 %)
microsoft は攻撃を回避した。( 35 %)

### フレーム 13
### フレーム 14
microsoft の、達成値 2 の攻撃! 1 ( 66 %)
google は回避できない。( 26.24 %)
隙を見てmicrosoftはバスタードソードを突きつけた。 10 の攻撃!
革鎧を破り、重傷を負わせた。傷口から血が吹き出した。

### フレーム 15
### フレーム 16
### フレーム 17
### フレーム 18
microsoft は近寄る
### フレーム 19
### フレーム 20
microsoft の、達成値 1 の攻撃! 1 ( 76 %)
google は受け流せない。( 30.4 %)
バスタードソードは致命的な一撃をgoogleに与えた。 15 の攻撃!
革鎧を破り、瀕死の一撃を負わせた。激しく血が吹き出す。

致命的なほどに血が溢れる。googleの重傷は瀕死の傷に悪化した。
身体が動かない。googleはそれに気付くのに時間がかかった。googleは死んでいた。
google の状態
{'suu': 3, 'sok': 1, 'hin': 0, 'kei': 0, 'juu': 0}
microsoft の状態
{'suu': 0, 'sok': 0, 'hin': 0, 'kei': 0, 'juu': 0}


【第 4 ラウンド】

距離 3
e000000333544000544333333333333 -- google
f00000454000454000454000454 -- microsoft
[156, 54, 70, 70, 82]
### フレーム 1
google は移動を開始する
microsoft は移動を開始する
### フレーム 2
### フレーム 3
### フレーム 4
### フレーム 5
microsoft は近寄る
### フレーム 6
google は近寄る
### フレーム 7
microsoft の、達成値 2 の攻撃! 2 ( 66 %)
google は受け流した。( 38 %)

### フレーム 8
### フレーム 9
google は受け流そうとした
### フレーム 10
google は達成値 3 の攻撃を試みたが外した。( 56 %)

### フレーム 11
microsoft は近寄る
### フレーム 12
### フレーム 13
microsoft は達成値 4 の攻撃を試みたが外した。( 46 %)

### フレーム 14
### フレーム 15
google は近寄る
### フレーム 16
google の、達成値 4 の攻撃! 1 ( 46 %)
microsoft は無防備攻撃を受けた。( 35 %)
ウォーハンマーは致命的な一撃をmicrosoftに与えた。 6 の攻撃!
プレートメイルが弾き返す。

### フレーム 17
microsoft は近寄る
### フレーム 18
### フレーム 19
microsoft の、達成値 1 の攻撃! 1 ( 76 %)
google は受け流せない。( 30.4 %)
隙を見てmicrosoftはバスタードソードを突きつけた。 10 の攻撃!
microsoftの攻撃はgoogleの顔を激痛で歪ませる。重傷のようだ。

### フレーム 20
google の状態
{'suu': 3, 'sok': 1, 'hin': 0, 'kei': 0, 'juu': 1}
microsoft の状態
{'suu': 0, 'sok': 0, 'hin': 0, 'kei': 0, 'juu': 0}


【第 5 ラウンド】

距離 2
e0000333544000544333333333333 -- google
e000454000454000454111111 -- microsoft
[156, 73, 73, 82, 92]
### フレーム 1
google は移動を開始する
microsoft は移動を開始する
### フレーム 2
### フレーム 3
microsoft は近寄る
### フレーム 4
google は近寄る
### フレーム 5
microsoft は達成値 5 の攻撃を試みたが外した。( 36 %)

### フレーム 6
### フレーム 7
google は受け流そうとした
### フレーム 8
google は達成値 4 の攻撃を試みたが外した。( 46 %)

### フレーム 9
microsoft は近寄る
### フレーム 10
### フレーム 11
microsoft の、達成値 0 の攻撃! 1 ( 86 %)
google は回避できない。( 41.0 %)
うなるバスタードソードがgoogleに襲い掛かる。 14 の攻撃!
革鎧を破り、重傷を負わせた。傷口から血が吹き出した。

### フレーム 12
### フレーム 13
google は近寄る
### フレーム 14
google の、達成値 2 の攻撃! 2 ( 66 %)
microsoft は攻撃を回避した。( 35 %)

### フレーム 15
microsoft は近寄る
### フレーム 16
### フレーム 17
microsoft の、達成値 1 の攻撃! 2 ( 76 %)
google は受け流せない。( 38 %)
うなるバスタードソードがgoogleに襲い掛かる。 13 の攻撃!
革鎧を破り、重傷を負わせた。傷口から血が吹き出した。

### フレーム 18
### フレーム 19
### フレーム 20
致命的なほどに血が溢れる。googleの重傷は瀕死の傷に悪化した。
google の状態
{'suu': 3, 'sok': 1, 'hin': 1, 'kei': 0, 'juu': 0}
microsoft の状態
{'suu': 0, 'sok': 0, 'hin': 0, 'kei': 0, 'juu': 0}


【第 6 ラウンド】

距離 3
e00000544000544000544333111 -- google
e0000111454000454000454000454 -- microsoft
[156, 54, 70, 70, 82]
### フレーム 1
google は移動を開始する
microsoft は移動を開始する
### フレーム 2
### フレーム 3
### フレーム 4
microsoft は近寄る
### フレーム 5
google は近寄る
### フレーム 6
google の、達成値 1 の攻撃! 1 ( 76 %)
microsoft は回避できない。( 28.0 %)
googleは豪快にウォーハンマーを振り上げ、それをただ振り下ろした。 10 の攻撃!
プレートメイルを破り、軽傷を負わせた。傷口から血が染み出す。

### フレーム 7
microsoft は回避行動を取った
### フレーム 8
### フレーム 9
microsoft は達成値 2 の攻撃を試みたが外した。( 66 %)

### フレーム 10
### フレーム 11
google は近寄る
### フレーム 12
google の、達成値 4 の攻撃! 1 ( 46 %)
microsoft は回避できない。( 14.336 %)
うなるウォーハンマーがmicrosoftに襲い掛かる。 8 の攻撃!
googleの攻撃はmicrosoftの顔を苦痛で歪ませる。軽傷のようだ。

### フレーム 13
microsoft は近寄る
### フレーム 14
### フレーム 15
microsoft の、達成値 1 の攻撃! 1 ( 76 %)
google は攻撃を回避した。( 32.8 %)

### フレーム 16
### フレーム 17
google は近寄る
### フレーム 18
google の、達成値 2 の攻撃! 1 ( 66 %)
microsoft は回避できない。( 22.4 %)
googleはウォーハンマーでなぎ払う。 14 の攻撃!
プレートメイルを破り、軽傷を負わせた。傷口から血が染み出す。

### フレーム 19
microsoft は近寄る
### フレーム 20
google の状態
{'suu': 3, 'sok': 1, 'hin': 1, 'kei': 0, 'juu': 0}
microsoftが受けた軽傷は、この一撃で重傷へと悪化した。傷口が広がり血がどくどくと溢れる。
microsoft の状態
{'suu': 1, 'sok': 0, 'hin': 0, 'kei': 0, 'juu': 1}


【第 7 ラウンド】

距離 1
e00333544333333333333000544 -- google
e454000454000454000454000454 -- microsoft
[156, 54, 70, 70, 82]
### フレーム 1
google は移動を開始する
### フレーム 2
google は近寄る
microsoft の、達成値 2 の攻撃! 1 ( 66 %)
google は攻撃を回避した。( 26.24 %)

### フレーム 3
### フレーム 4
### フレーム 5
google は受け流そうとした
### フレーム 6
microsoft は近寄る
google の、達成値 1 の攻撃! 1 ( 76 %)
microsoft は攻撃を回避した。( 28.0 %)

### フレーム 7
### フレーム 8
microsoft は達成値 4 の攻撃を試みたが外した。( 46 %)

### フレーム 9
### フレーム 10
### フレーム 11
### フレーム 12
microsoft は近寄る
### フレーム 13
### フレーム 14
microsoft は達成値 1 の攻撃を試みたが外した。( 76 %)

### フレーム 15
### フレーム 16
### フレーム 17
### フレーム 18
microsoft は近寄る
### フレーム 19
### フレーム 20
microsoft は達成値 5 の攻撃を試みたが外した。( 36 %)

google は受け流そうとした
google の状態
{'suu': 3, 'sok': 1, 'hin': 1, 'kei': 0, 'juu': 0}
microsoft の状態
{'suu': 1, 'sok': 0, 'hin': 0, 'kei': 0, 'juu': 1}


【第 8 ラウンド】

距離 1
e00544333000544000544000544 -- google
e454000454000454000454000454 -- microsoft
[156, 41, 70, 70, 76]
### フレーム 1
google は移動を開始する
### フレーム 2
google は近寄る
microsoft は達成値 0 の攻撃を試みたが外した。( 86 %)

### フレーム 3
google の、達成値 3 の攻撃! 1 ( 56 %)
microsoft は回避できない。( 17.92 %)
ウォーハンマーは致命的な一撃をmicrosoftに与えた。 16 の攻撃!
プレートメイルはその攻撃のほとんどを阻んだが、microsoftも無傷というわけではない。軽傷を負った。

### フレーム 4
### フレーム 5
### フレーム 6
microsoft は近寄る
### フレーム 7
### フレーム 8
microsoft の、達成値 1 の攻撃! 1 ( 76 %)
google は受け流せない。( 30.4 %)
microsoftがバスタードソードを一閃させると、その太刀筋はgoogleに襲い掛かる。 14 の攻撃!
革鎧を破り、重傷を負わせた。傷口から血が吹き出した。

google は受け流そうとした
### フレーム 9
### フレーム 10
### フレーム 11
google は近寄る
### フレーム 12
microsoft は近寄る
google は達成値 4 の攻撃を試みたが外した。( 46 %)

### フレーム 13
### フレーム 14
microsoft の、達成値 2 の攻撃! 1 ( 66 %)
google は攻撃を回避した。( 26.24 %)

### フレーム 15
### フレーム 16
### フレーム 17
google は近寄る
### フレーム 18
microsoft は近寄る
google は達成値 4 の攻撃を試みたが外した。( 46 %)

### フレーム 19
### フレーム 20
microsoft の、達成値 1 の攻撃! 1 ( 76 %)
google は攻撃を回避した。( 32.8 %)

google の状態
{'suu': 3, 'sok': 1, 'hin': 1, 'kei': 0, 'juu': 1}
microsoft の状態
{'suu': 1, 'sok': 0, 'hin': 0, 'kei': 1, 'juu': 1}


【第 9 ラウンド】

距離 2
e000544333000544111000544 -- google
f00454111000454000454000454 -- microsoft
[156, 54, 70, 70, 82]
### フレーム 1
google は移動を開始する
microsoft は移動を開始する
### フレーム 2
microsoft は近寄る
### フレーム 3
google は近寄る
### フレーム 4
google の、達成値 2 の攻撃! 1 ( 66 %)
microsoft は無防備攻撃を受けた。( 35 %)
googleは両腕の力をこめて、ウォーハンマーを叩き付けた。 16 の攻撃!
プレートメイルはその攻撃のほとんどを阻んだが、microsoftも無傷というわけではない。軽傷を負った。

microsoft は達成値 2 の攻撃を試みたが外した。( 66 %)

### フレーム 5
### フレーム 6
### フレーム 7
### フレーム 8
microsoft は回避行動を取った
### フレーム 9
google は受け流そうとした
### フレーム 10
### フレーム 11
microsoft は近寄る
### フレーム 12
google は近寄る
### フレーム 13
google の、達成値 1 の攻撃! 1 ( 76 %)
microsoft は無防備攻撃を受けた。( 35 %)
googleは豪快にウォーハンマーを振り上げ、それをただ振り下ろした。 14 の攻撃!
googleの攻撃はmicrosoftの顔を苦痛で歪ませる。軽傷のようだ。

microsoft の、達成値 4 の攻撃! 1 ( 46 %)
google は無防備攻撃を受けた。( 41 %)
microsoftがバスタードソードを一閃させると、その太刀筋はgoogleに襲い掛かる。 13 の攻撃!
microsoftの攻撃はgoogleの顔を激痛で歪ませる。重傷のようだ。

### フレーム 14
### フレーム 15
### フレーム 16
### フレーム 17
microsoft は近寄る
### フレーム 18
google は回避行動を取った
### フレーム 19
microsoft の、達成値 1 の攻撃! 1 ( 76 %)
google は回避できない。( 32.8 %)
バスタードソードは致命的な一撃をgoogleに与えた。 11 の攻撃!
革鎧を破り、重傷を負わせた。傷口から血が吹き出した。

### フレーム 20
先ほどの重傷に再度受けた一撃は、googleの傷を瀕死の傷へ悪化させた。一瞬意識が飛ぶ。
血が溢れ、意識が遠のく。走馬灯のように過去がよぎり、googleは死んだ。
google の状態
{'suu': 3, 'sok': 2, 'hin': 0, 'kei': 0, 'juu': 0}
激しい激痛がmicrosoftに傷が悪化したことを知らせる。これは重傷だ。
先ほどの重傷に再度受けた一撃は、microsoftの傷を瀕死の傷へ悪化させた。一瞬意識が飛ぶ。
microsoft の状態
{'suu': 2, 'sok': 0, 'hin': 1, 'kei': 0, 'juu': 0}


【第 10 ラウンド】

距離 2
e000544333000544000544000544 -- google
f00454000454000454333000454 -- microsoft
[156, 73, 73, 82, 92]
### フレーム 1
google は移動を開始する
microsoft は移動を開始する
### フレーム 2
microsoft は近寄る
### フレーム 3
google は近寄る
### フレーム 4
google の、達成値 4 の攻撃! 1 ( 46 %)
microsoft は無防備攻撃を受けた。( 35 %)
googleは両腕の力をこめて、ウォーハンマーを叩き付けた。 12 の攻撃!
プレートメイルを破り、軽傷を負わせた。傷口から血が染み出す。

microsoft の、達成値 5 の攻撃! 1 ( 36 %)
google は無防備攻撃を受けた。( 41 %)
microsoftがバスタードソードを一閃させると、その太刀筋はgoogleに襲い掛かる。 11 の攻撃!
microsoftの攻撃はgoogleの顔を激痛で歪ませる。重傷のようだ。

### フレーム 5
### フレーム 6
### フレーム 7
### フレーム 8
microsoft は近寄る
### フレーム 9
google は受け流そうとした
### フレーム 10
microsoft は達成値 0 の攻撃を試みたが外した。( 86 %)

### フレーム 11
### フレーム 12
google は近寄る
### フレーム 13
google の、達成値 2 の攻撃! 1 ( 66 %)
microsoft は無防備攻撃を受けた。( 35 %)
googleは両腕の力をこめて、ウォーハンマーを叩き付けた。 6 の攻撃!
プレートメイルが弾き返す。

### フレーム 14
microsoft は近寄る
### フレーム 15
### フレーム 16
microsoft の、達成値 1 の攻撃! 1 ( 76 %)
google は攻撃を回避した。( 32.8 %)

### フレーム 17
### フレーム 18
google は近寄る
### フレーム 19
google の、達成値 1 の攻撃! 2 ( 76 %)
microsoft は受け流せない。( 10 %)
うなるウォーハンマーがmicrosoftに襲い掛かる。 19 の攻撃!
プレートメイルを破り、重傷を負わせた。傷口から血が吹き出した。

### フレーム 20
microsoft は受け流そうとした
google の状態
{'suu': 3, 'sok': 2, 'hin': 0, 'kei': 0, 'juu': 1}
microsoft の状態
{'suu': 2, 'sok': 0, 'hin': 1, 'kei': 1, 'juu': 1}


【第 11 ラウンド】

距離 2
e0000333333333544333333333333 -- google
e00454111000454000454111 -- microsoft
[156, 54, 70, 70, 82]
### フレーム 1
google は移動を開始する
microsoft は移動を開始する
### フレーム 2
microsoft は近寄る
### フレーム 3
### フレーム 4
google は近寄る
microsoft の、達成値 2 の攻撃! 2 ( 66 %)
google は回避できない。( 41 %)
microsoftはバスタードソードを振り上げ、力の限りに斬りつけた。 8 の攻撃!
革鎧はその攻撃のほとんどを阻んだが、googleも無傷というわけではない。軽傷を負った。

### フレーム 5
### フレーム 6
### フレーム 7
### フレーム 8
microsoft は回避行動を取った
### フレーム 9
### フレーム 10
### フレーム 11
microsoft は近寄る
### フレーム 12
### フレーム 13
microsoft は達成値 1 の攻撃を試みたが外した。( 76 %)

google は受け流そうとした
### フレーム 14
google は達成値 3 の攻撃を試みたが外した。( 56 %)

### フレーム 15
### フレーム 16
### フレーム 17
microsoft は近寄る
### フレーム 18
### フレーム 19
microsoft の、達成値 2 の攻撃! 2 ( 66 %)
google は受け流した。( 38 %)

### フレーム 20
google の状態
{'suu': 3, 'sok': 2, 'hin': 0, 'kei': 1, 'juu': 1}
microsoft の状態
{'suu': 2, 'sok': 0, 'hin': 1, 'kei': 1, 'juu': 1}


【第 12 ラウンド】

距離 0
e544333000544000544333333333333 -- google
e454000454000454000454000454 -- microsoft
[156, 67, 67, 67, 89]
### フレーム 1
google は達成値 4 の攻撃を試みたが外した。( 46 %)

### フレーム 2
microsoft は達成値 4 の攻撃を試みたが外した。( 46 %)

### フレーム 3
### フレーム 4
### フレーム 5
### フレーム 6
microsoft は近寄る
google は受け流そうとした
### フレーム 7
### フレーム 8
microsoft の、達成値 1 の攻撃! 1 ( 76 %)
google は回避できない。( 32.8 %)
左右にフェイントを入れ、googleの隙にバスタードソードで襲い掛かる。 6 の攻撃!
革鎧はその攻撃のほとんどを阻んだが、googleも無傷というわけではない。軽傷を負った。

### フレーム 9
google は近寄る
### フレーム 10
google は達成値 4 の攻撃を試みたが外した。( 46 %)

### フレーム 11
### フレーム 12
microsoft は近寄る
### フレーム 13
### フレーム 14
microsoft は達成値 5 の攻撃を試みたが外した。( 36 %)

### フレーム 15
google は近寄る
### フレーム 16
google は達成値 2 の攻撃を試みたが外した。( 66 %)

### フレーム 17
### フレーム 18
microsoft は近寄る
### フレーム 19
### フレーム 20
microsoft の、達成値 0 の攻撃! 1 ( 86 %)
google は受け流せない。( 38.0 %)
うなるバスタードソードがgoogleに襲い掛かる。 15 の攻撃!
microsoftの攻撃はgoogleに致命的な一撃を与える。瀕死の傷のようだ。

傷口から鮮血が噴きだす。googleの軽傷は重傷に悪化した。
先ほどの重傷に再度受けた一撃は、googleの傷を瀕死の傷へ悪化させた。一瞬意識が飛ぶ。
先ほどの瀕死の傷に再度受けた一撃は、googleの機能を停止させた。googleは死んだ。
google の状態
{'suu': 3, 'sok': 3, 'hin': 0, 'kei': 0, 'juu': 0}
microsoft の状態
{'suu': 2, 'sok': 0, 'hin': 1, 'kei': 1, 'juu': 1}


【第 13 ラウンド】

距離 1
e00333111544333333000544000544 -- google
e0454111111000454000454000454 -- microsoft
[156, 48, 71, 71, 80]
### フレーム 1
google は移動を開始する
microsoft は移動を開始する
### フレーム 2
google は近寄る
### フレーム 3
microsoft の、達成値 1 の攻撃! 1 ( 76 %)
google は受け流せない。( 30.4 %)
うなるバスタードソードがgoogleに襲い掛かる。 13 の攻撃!
革鎧を破り、重傷を負わせた。傷口から血が吹き出した。

### フレーム 4
### フレーム 5
google は受け流そうとした
### フレーム 6
### フレーム 7
### フレーム 8
google は回避行動を取った
### フレーム 9
google の、達成値 1 の攻撃! 2 ( 76 %)
microsoft は攻撃を回避した。( 35 %)

### フレーム 10
microsoft は回避行動を取った
### フレーム 11
### フレーム 12
### フレーム 13
microsoft は近寄る
### フレーム 14
### フレーム 15
microsoft の、達成値 2 の攻撃! 1 ( 66 %)
google は受け流せない。( 24.32 %)
うなるバスタードソードがgoogleに襲い掛かる。 7 の攻撃!
microsoftの攻撃は、googleの肉体にわずかに達した。軽傷。

### フレーム 16
### フレーム 17
google は受け流そうとした
### フレーム 18
### フレーム 19
microsoft は近寄る
### フレーム 20
google は近寄る
google の状態
{'suu': 3, 'sok': 3, 'hin': 0, 'kei': 1, 'juu': 1}
microsoft の状態
{'suu': 2, 'sok': 0, 'hin': 1, 'kei': 1, 'juu': 1}


【第 14 ラウンド】

距離 3
e000000544333333333333333000544 -- google
f00000454222000454111000454 -- microsoft
[156, 48, 71, 71, 80]
### フレーム 1
google は移動を開始する
microsoft は移動を開始する
### フレーム 2
### フレーム 3
### フレーム 4
### フレーム 5
microsoft は近寄る
### フレーム 6
google は近寄る
### フレーム 7
google は達成値 4 の攻撃を試みたが外した。( 46 %)

microsoft は達成値 1 の攻撃を試みたが外した。( 76 %)

### フレーム 8
### フレーム 9
### フレーム 10
### フレーム 11
microsoft は盾を構えた
### フレーム 12
### フレーム 13
### フレーム 14
microsoft は近寄る
### フレーム 15
### フレーム 16
microsoft は達成値 2 の攻撃を試みたが外した。( 66 %)

### フレーム 17
### フレーム 18
### フレーム 19
### フレーム 20
microsoft は回避行動を取った
google の状態
{'suu': 3, 'sok': 3, 'hin': 0, 'kei': 1, 'juu': 1}
microsoft の状態
{'suu': 2, 'sok': 0, 'hin': 1, 'kei': 1, 'juu': 1}


【第 15 ラウンド】

距離 1
e0333333333544000544333333 -- google
f0111454000454111000454000454 -- microsoft
[156, 67, 67, 67, 89]
### フレーム 1
google は移動を開始する
microsoft は移動を開始する
### フレーム 2
### フレーム 3
### フレーム 4
microsoft は回避行動を取った
### フレーム 5
### フレーム 6
microsoft の、達成値 4 の攻撃! 1 ( 46 %)
google は受け流した。( 15.5648 %)

### フレーム 7
### フレーム 8
### フレーム 9
### フレーム 10
microsoft は近寄る
google は受け流そうとした
### フレーム 11
google の、達成値 2 の攻撃! 2 ( 66 %)
microsoft は無防備攻撃を受けた。( 35 %)
ウォーハンマーは致命的な一撃をmicrosoftに与えた。 10 の攻撃!
プレートメイルを破り、軽傷を負わせた。傷口から血が染み出す。

### フレーム 12
microsoft の、達成値 1 の攻撃! 1 ( 76 %)
google は回避できない。( 32.8 %)
隙を見てmicrosoftはバスタードソードを突きつけた。 15 の攻撃!
microsoftの攻撃は、googleの肉体に激しく傷つけた。瀕死の傷。

### フレーム 13
### フレーム 14
### フレーム 15
### フレーム 16
google は近寄る
microsoft は回避行動を取った
### フレーム 17
google は達成値 1 の攻撃を試みたが外した。( 76 %)

### フレーム 18
### フレーム 19
microsoft は近寄る
### フレーム 20
google の状態
{'suu': 3, 'sok': 3, 'hin': 1, 'kei': 1, 'juu': 1}
microsoftが受けた軽傷は、この一撃で重傷へと悪化した。傷口が広がり血がどくどくと溢れる。
致命的なほどに血が溢れる。microsoftの重傷は瀕死の傷に悪化した。
身体が動かない。microsoftはそれに気付くのに時間がかかった。microsoftは死んでいた。
microsoft の状態
{'suu': 3, 'sok': 1, 'hin': 0, 'kei': 0, 'juu': 0}


【第 16 ラウンド】

距離 1
e00544000544000544000544333 -- google
f333454333333000454333333 -- microsoft
[156, 73, 73, 82, 92]
### フレーム 1
google は移動を開始する
### フレーム 2
google は近寄る
### フレーム 3
google の、達成値 3 の攻撃! 1 ( 56 %)
microsoft は受け流した。( 5.12 %)

microsoft は受け流そうとした
### フレーム 4
### フレーム 5
microsoft は達成値 5 の攻撃を試みたが外した。( 36 %)

### フレーム 6
### フレーム 7
### フレーム 8
google は近寄る
### フレーム 9
google は達成値 4 の攻撃を試みたが外した。( 46 %)

### フレーム 10
### フレーム 11
### フレーム 12
microsoft は受け流そうとした
### フレーム 13
### フレーム 14
google は近寄る
### フレーム 15
microsoft は近寄る
google は達成値 4 の攻撃を試みたが外した。( 46 %)

### フレーム 16
### フレーム 17
microsoft の、達成値 0 の攻撃! 1 ( 86 %)
google は攻撃を回避した。( 41.0 %)

### フレーム 18
### フレーム 19
### フレーム 20
google は近寄る
google の状態
{'suu': 3, 'sok': 3, 'hin': 1, 'kei': 1, 'juu': 1}
microsoft の状態
{'suu': 3, 'sok': 1, 'hin': 0, 'kei': 0, 'juu': 0}


【第 17 ラウンド】

距離 2
e0000544333111000544000544 -- google
e00222454000454111000454 -- microsoft
[156, 48, 71, 71, 80]
### フレーム 1
google は移動を開始する
microsoft は移動を開始する
### フレーム 2
microsoft は近寄る
### フレーム 3
### フレーム 4
google は近寄る
### フレーム 5
google の、達成値 2 の攻撃! 2 ( 66 %)
microsoft は盾で受け止める。( 36 %)

うなるウォーハンマーがmicrosoftに襲い掛かる。 12 の攻撃!
microsoft は軽傷を受けた

microsoft は盾を構えた
### フレーム 6
### フレーム 7
microsoft の、達成値 1 の攻撃! 2 ( 76 %)
google は攻撃を回避した。( 41 %)

### フレーム 8
### フレーム 9
### フレーム 10
google は受け流そうとした
### フレーム 11
microsoft は近寄る
### フレーム 12
### フレーム 13
microsoft の、達成値 2 の攻撃! 2 ( 66 %)
google は攻撃を回避した。( 41 %)

google は回避行動を取った
### フレーム 14
### フレーム 15
### フレーム 16
google は近寄る
### フレーム 17
google の、達成値 1 の攻撃! 1 ( 76 %)
microsoft は回避できない。( 28.0 %)
うなるウォーハンマーがmicrosoftに襲い掛かる。 8 の攻撃!
プレートメイルを破り、軽傷を負わせた。傷口から血が染み出す。

microsoft は回避行動を取った
### フレーム 18
### フレーム 19
### フレーム 20
microsoft は近寄る
google の状態
{'suu': 3, 'sok': 3, 'hin': 1, 'kei': 1, 'juu': 1}
先ほどの軽傷に再度受けた一撃は、microsoftの傷を重傷へ悪化させた。激痛が走る。
microsoft の状態
{'suu': 3, 'sok': 1, 'hin': 0, 'kei': 0, 'juu': 1}


【第 18 ラウンド】

距離 1
e00333544333333000544333333 -- google
e454000454000454000454000454 -- microsoft
[156, 48, 71, 71, 80]
### フレーム 1
google は移動を開始する
### フレーム 2
google は近寄る
microsoft は達成値 1 の攻撃を試みたが外した。( 76 %)

### フレーム 3
### フレーム 4
### フレーム 5
google は受け流そうとした
### フレーム 6
microsoft は近寄る
google は達成値 4 の攻撃を試みたが外した。( 46 %)

### フレーム 7
### フレーム 8
microsoft の、達成値 2 の攻撃! 2 ( 66 %)
google は攻撃を回避した。( 41 %)

### フレーム 9
### フレーム 10
### フレーム 11
### フレーム 12
microsoft は近寄る
### フレーム 13
### フレーム 14
microsoft は達成値 4 の攻撃を試みたが外した。( 46 %)

google は受け流そうとした
### フレーム 15
### フレーム 16
### フレーム 17
google は近寄る
### フレーム 18
microsoft は近寄る
google の、達成値 2 の攻撃! 1 ( 66 %)
microsoft は回避できない。( 22.4 %)
googleはウォーハンマーでなぎ払う。 16 の攻撃!
プレートメイルを破り、軽傷を負わせた。傷口から血が染み出す。

### フレーム 19
### フレーム 20
microsoft の、達成値 1 の攻撃! 1 ( 76 %)
google は回避できない。( 32.8 %)
隙を見てmicrosoftはバスタードソードを突きつけた。 8 の攻撃!
革鎧を破り、軽傷を負わせた。傷口から血が染み出す。

激しい激痛がgoogleに傷が悪化したことを知らせる。これは重傷だ。
叫びたくなるほどの激痛がgoogleに傷が悪化したことを知らせる。これは瀕死の傷だ。
身体が動かない。googleはそれに気付くのに時間がかかった。googleは死んでいた。
google の状態
{'suu': 3, 'sok': 4, 'hin': 0, 'kei': 0, 'juu': 0}
microsoft の状態
{'suu': 3, 'sok': 1, 'hin': 0, 'kei': 1, 'juu': 1}


【第 19 ラウンド】

距離 0
e544111000544333000544000544 -- google
f454000454000454000454000454 -- microsoft
[156, 73, 73, 82, 92]
### フレーム 1
google の、達成値 1 の攻撃! 1 ( 76 %)
microsoft は無防備攻撃を受けた。( 35 %)
googleは豪快にウォーハンマーを振り上げ、それをただ振り下ろした。 10 の攻撃!
googleの攻撃はmicrosoftの顔を苦痛で歪ませる。軽傷のようだ。

### フレーム 2
microsoft の、達成値 5 の攻撃! 1 ( 36 %)
google は回避できない。( 13.43488 %)
microsoftがバスタードソードを一閃させると、その太刀筋はgoogleに襲い掛かる。 10 の攻撃!
革鎧を破り、重傷を負わせた。傷口から血が吹き出した。

### フレーム 3
### フレーム 4
### フレーム 5
### フレーム 6
microsoft は近寄る
google は回避行動を取った
### フレーム 7
### フレーム 8
microsoft の、達成値 0 の攻撃! 1 ( 86 %)
google は回避できない。( 41.0 %)
バスタードソードは致命的な一撃をgoogleに与えた。 7 の攻撃!
革鎧を破り、軽傷を負わせた。傷口から血が染み出す。

### フレーム 9
google は近寄る
### フレーム 10
google は達成値 3 の攻撃を試みたが外した。( 56 %)

### フレーム 11
### フレーム 12
microsoft は近寄る
### フレーム 13
### フレーム 14
microsoft の、達成値 1 の攻撃! 1 ( 76 %)
google は受け流した。( 30.4 %)

### フレーム 15
google は受け流そうとした
### フレーム 16
### フレーム 17
### フレーム 18
google は近寄る
microsoft は近寄る
### フレーム 19
google は達成値 4 の攻撃を試みたが外した。( 46 %)

### フレーム 20
microsoft は達成値 2 の攻撃を試みたが外した。( 66 %)

google の状態
{'suu': 3, 'sok': 4, 'hin': 0, 'kei': 1, 'juu': 1}
先ほどの軽傷に再度受けた一撃は、microsoftの傷を重傷へ悪化させた。激痛が走る。
致命的なほどに血が溢れる。microsoftの重傷は瀕死の傷に悪化した。
microsoft の状態
{'suu': 3, 'sok': 1, 'hin': 1, 'kei': 0, 'juu': 0}


【第 20 ラウンド】

距離 0
e333544000544333333333333000544 -- google
f454222000454111000454000454 -- microsoft
[156, 48, 71, 71, 80]
### フレーム 1
### フレーム 2
microsoft の、達成値 1 の攻撃! 1 ( 76 %)
google は受け流した。( 30.4 %)

### フレーム 3
google は受け流そうとした
### フレーム 4
google は達成値 4 の攻撃を試みたが外した。( 46 %)

### フレーム 5
### フレーム 6
microsoft は盾を構えた
### フレーム 7
### フレーム 8
### フレーム 9
google は近寄る
microsoft は近寄る
### フレーム 10
google の、達成値 2 の攻撃! 1 ( 66 %)
microsoft は無防備攻撃を受けた。( 35 %)
うなるウォーハンマーがmicrosoftに襲い掛かる。 8 の攻撃!
プレートメイルを破り、軽傷を負わせた。傷口から血が染み出す。

### フレーム 11
microsoft の、達成値 2 の攻撃! 1 ( 66 %)
google は攻撃を回避した。( 26.24 %)

### フレーム 12
### フレーム 13
### フレーム 14
### フレーム 15
microsoft は回避行動を取った
### フレーム 16
### フレーム 17
### フレーム 18
microsoft は近寄る
### フレーム 19
### フレーム 20
microsoft の、達成値 4 の攻撃! 1 ( 46 %)
google は受け流した。( 15.5648 %)

google の状態
{'suu': 3, 'sok': 4, 'hin': 0, 'kei': 1, 'juu': 1}
microsoft の状態
{'suu': 3, 'sok': 1, 'hin': 1, 'kei': 1, 'juu': 0}


【第 21 ラウンド】

距離 2
e0000333544333333000544000544 -- google
f00454000454000454222111 -- microsoft
[156, 48, 71, 71, 80]
### フレーム 1
google は移動を開始する
microsoft は移動を開始する
### フレーム 2
microsoft は近寄る
### フレーム 3
### フレーム 4
google は近寄る
microsoft の、達成値 1 の攻撃! 1 ( 76 %)
google は回避できない。( 32.8 %)
うなるバスタードソードがgoogleに襲い掛かる。 11 の攻撃!
革鎧を破り、重傷を負わせた。傷口から血が吹き出した。

### フレーム 5
### フレーム 6
### フレーム 7
google は受け流そうとした
### フレーム 8
microsoft は近寄る
google の、達成値 1 の攻撃! 1 ( 76 %)
microsoft は無防備攻撃を受けた。( 35 %)
googleは両腕の力をこめて、ウォーハンマーを叩き付けた。 8 の攻撃!
プレートメイルはその攻撃のほとんどを阻んだが、microsoftも無傷というわけではない。軽傷を負った。

### フレーム 9
### フレーム 10
microsoft は達成値 5 の攻撃を試みたが外した。( 36 %)

### フレーム 11
### フレーム 12
### フレーム 13
### フレーム 14
microsoft は近寄る
### フレーム 15
### フレーム 16
microsoft の、達成値 0 の攻撃! 1 ( 86 %)
google は受け流せない。( 38.0 %)
microsoftはバスタードソードを振り上げ、力の限りに斬りつけた。 13 の攻撃!
革鎧を破り、重傷を負わせた。傷口から血が吹き出した。

google は受け流そうとした
### フレーム 17
### フレーム 18
### フレーム 19
google は近寄る
### フレーム 20
google は達成値 4 の攻撃を試みたが外した。( 46 %)

microsoft は盾を構えた
先ほどの重傷に再度受けた一撃は、googleの傷を瀕死の傷へ悪化させた。一瞬意識が飛ぶ。
google の状態
{'suu': 3, 'sok': 4, 'hin': 1, 'kei': 1, 'juu': 0}
microsoftが受けた軽傷は、この一撃で重傷へと悪化した。傷口が広がり血がどくどくと溢れる。
microsoft の状態
{'suu': 3, 'sok': 1, 'hin': 1, 'kei': 0, 'juu': 1}


【第 22 ラウンド】

距離 0
e544000544000544333000544333333 -- google
f454000454000454000454222000454 -- microsoft
[156, 48, 71, 71, 80]
### フレーム 1
google の、達成値 2 の攻撃! 1 ( 66 %)
microsoft は無防備攻撃を受けた。( 35 %)
googleは両腕の力をこめて、ウォーハンマーを叩き付けた。 6 の攻撃!
プレートメイルが弾き返す。

### フレーム 2
microsoft の、達成値 1 の攻撃! 1 ( 76 %)
google は回避できない。( 32.8 %)
うなるバスタードソードがgoogleに襲い掛かる。 15 の攻撃!
革鎧を破り、瀕死の一撃を負わせた。激しく血が吹き出す。

### フレーム 3
### フレーム 4
### フレーム 5
### フレーム 6
google は近寄る
microsoft は近寄る
### フレーム 7
google の、達成値 1 の攻撃! 2 ( 76 %)
microsoft は無防備攻撃を受けた。( 35 %)
googleは両腕の力をこめて、ウォーハンマーを叩き付けた。 14 の攻撃!
プレートメイルを破り、軽傷を負わせた。傷口から血が染み出す。

### フレーム 8
microsoft の、達成値 2 の攻撃! 1 ( 66 %)
google は攻撃を回避した。( 26.24 %)

### フレーム 9
### フレーム 10
### フレーム 11
### フレーム 12
google は近寄る
microsoft は近寄る
### フレーム 13
google の、達成値 3 の攻撃! 2 ( 56 %)
microsoft は無防備攻撃を受けた。( 35 %)
うなるウォーハンマーがmicrosoftに襲い掛かる。 12 の攻撃!
プレートメイルはその攻撃のほとんどを阻んだが、microsoftも無傷というわけではない。軽傷を負った。

### フレーム 14
microsoft の、達成値 1 の攻撃! 1 ( 76 %)
google は回避できない。( 32.8 %)
バスタードソードは致命的な一撃をgoogleに与えた。 7 の攻撃!
革鎧はその攻撃のほとんどを阻んだが、googleも無傷というわけではない。軽傷を負った。

### フレーム 15
### フレーム 16
### フレーム 17
### フレーム 18
microsoft は近寄る
google は受け流そうとした
### フレーム 19
### フレーム 20
microsoft の、達成値 2 の攻撃! 1 ( 66 %)
google は攻撃を回避した。( 26.24 %)

googleが受けた軽傷は、この一撃で重傷へと悪化した。傷口が広がり血がどくどくと溢れる。
身体が動かない。googleはそれに気付くのに時間がかかった。googleは死んでいた。
google の状態
{'suu': 3, 'sok': 5, 'hin': 0, 'kei': 0, 'juu': 1}
microsoftが受けた軽傷は、この一撃で重傷へと悪化した。傷口が広がり血がどくどくと溢れる。
先ほどの重傷に再度受けた一撃は、microsoftの傷を瀕死の傷へ悪化させた。一瞬意識が飛ぶ。
microsoftが受けた瀕死の傷は、この一撃でmicrosoftに止めを刺した。microsoftは死んだ。
microsoft の状態
{'suu': 3, 'sok': 2, 'hin': 0, 'kei': 0, 'juu': 0}


【第 23 ラウンド】

距離 0
e544000544000544333333333000544 -- google
e454000454111000454000454000454 -- microsoft
[156, 67, 67, 67, 89]
### フレーム 1
google の、達成値 4 の攻撃! 2 ( 46 %)
microsoft は攻撃を回避した。( 35 %)

### フレーム 2
microsoft の、達成値 4 の攻撃! 1 ( 46 %)
google は回避できない。( 16.7936 %)
microsoftはバスタードソードを振り上げ、力の限りに斬りつけた。 12 の攻撃!
革鎧を破り、重傷を負わせた。傷口から血が吹き出した。

### フレーム 3
### フレーム 4
### フレーム 5
### フレーム 6
google は近寄る
microsoft は近寄る
### フレーム 7
google の、達成値 4 の攻撃! 1 ( 46 %)
microsoft は回避できない。( 14.336 %)
ウォーハンマーは致命的な一撃をmicrosoftに与えた。 8 の攻撃!
プレートメイルを破り、軽傷を負わせた。傷口から血が染み出す。

### フレーム 8
microsoft の、達成値 1 の攻撃! 1 ( 76 %)
google は回避できない。( 32.8 %)
microsoftはバスタードソードを振り上げ、力の限りに斬りつけた。 14 の攻撃!
革鎧を破り、重傷を負わせた。傷口から血が吹き出した。

### フレーム 9
### フレーム 10
### フレーム 11
### フレーム 12
google は近寄る
microsoft は回避行動を取った
### フレーム 13
google は達成値 2 の攻撃を試みたが外した。( 66 %)

### フレーム 14
### フレーム 15
microsoft は近寄る
### フレーム 16
### フレーム 17
microsoft は達成値 5 の攻撃を試みたが外した。( 36 %)

### フレーム 18
### フレーム 19
### フレーム 20
先ほどの重傷に再度受けた一撃は、googleの傷を瀕死の傷へ悪化させた。一瞬意識が飛ぶ。
google の状態
{'suu': 3, 'sok': 5, 'hin': 1, 'kei': 0, 'juu': 0}
microsoft の状態
{'suu': 3, 'sok': 2, 'hin': 0, 'kei': 1, 'juu': 0}


【第 24 ラウンド】

距離 3
e000000333544000544000544333333 -- google
e0000222111111454000454000454 -- microsoft
[156, 41, 70, 70, 76]
### フレーム 1
google は移動を開始する
microsoft は移動を開始する
### フレーム 2
### フレーム 3
### フレーム 4
microsoft は近寄る
### フレーム 5
### フレーム 6
google は近寄る
### フレーム 7
microsoft は盾を構えた
### フレーム 8
### フレーム 9
google は受け流そうとした
### フレーム 10
google の、達成値 1 の攻撃! 1 ( 76 %)
microsoft は回避できない。( 28.0 %)
googleはウォーハンマーでなぎ払う。 14 の攻撃!
プレートメイルを破り、軽傷を負わせた。傷口から血が染み出す。

### フレーム 11
### フレーム 12
### フレーム 13
microsoft は回避行動を取った
### フレーム 14
### フレーム 15
google は近寄る
microsoft の、達成値 0 の攻撃! 1 ( 86 %)
google は攻撃を回避した。( 41.0 %)

### フレーム 16
google の、達成値 4 の攻撃! 1 ( 46 %)
microsoft は回避できない。( 14.336 %)
googleはウォーハンマーでなぎ払う。 16 の攻撃!
プレートメイルを破り、軽傷を負わせた。傷口から血が染み出す。

### フレーム 17
### フレーム 18
### フレーム 19
microsoft は近寄る
### フレーム 20
google の状態
{'suu': 3, 'sok': 5, 'hin': 1, 'kei': 0, 'juu': 0}
傷口から鮮血が噴きだす。microsoftの軽傷は重傷に悪化した。
microsoft の状態
{'suu': 3, 'sok': 2, 'hin': 0, 'kei': 0, 'juu': 1}

>>>
| pythonゲーム修行 | 02:42 | comments(0) | trackbacks(0) | 昨年の記事
[pythonゲーム修行]テスト中

えーと、本日はテストで検証です(^_^;
 とりあえず作ったシステムに穴がないかを検証します。


 というわけで、いきなり、「terapad」vs「word」。

terapad 381be00ed8f3d49da3b7455e189aad60
大きさ 0 + 0
速さ 0 + 0
強さ 14 + 4
耐久 13 + 4
武器 ウォーハンマー
防具 プレートメイル
攻撃スキル 82 %
回避スキル 23 %
アーキタイプ シド辺境蛮族(男) 都会化された蛮族

word c47d187067c6cf953245f128b5fde62a
大きさ 8 + 2
速さ 7 + 2
強さ 0 + 0
耐久 6 + 3
武器 ダガー
防具 チェインメイル
攻撃スキル 78 %
回避スキル 45 %
アーキタイプ キュディス人(男) ソ連的人々


 terapadは速さロールで0が出たら、SR-1。
 wordは速さロールで7以下が出たら、SR-1、大きさでSR-1

 ですね。


「terapad」vs「word」 【距離0】


 まずは距離0から。この場合は修正は一切なし。

 terapadはプレートでがちがちで、相手がダガーなので、守る意味はなし。なので、ストレートに攻めまくる。

                   
1011121314151617181920
-- terapad


 これに、wordが対抗するには・・・。

                 
1011121314151617181920
-- word


 こ、これしかないのか・・・。
 これだとwordは二回の盾に成功させれば、無防備攻撃を2回できると。
 当然、これに、terapadが対抗してくるので、

               
1011121314151617181920
-- terapad


 いきなり受けを入れて、はじめの盾をかわす組み合わせにくるわけだ。
 こうなると、互いに2回ずつの無防備攻撃と、terapadは盾越しの攻撃ができるということになる。wordがこれを避けるのはどうなるんだ?

               
1011121314151617181920
-- word


 こうか・・・。マニアックだな・・・。
 まず、一番初めの受けを何度でも使える回避で埋める。
 続いて、攻撃を受けて、反撃を狙う。
 これが成功すると、受けたところで即反撃になるので・・・。

                   
                   
               
1011121314151617181920
-- word


 こうなると・・・。

               
1011121314151617181920
-- terapad


 2回無防備攻撃ができて、1回の無防備攻撃と2回の受け攻撃を受けると。
 しかし、これはつらいなあ(笑)


「terapad」vs「word」 【距離1】


 続いて、距離1。
 terapadは修正ないし、速さも0なので、ほぼ3SRからの攻撃

                 
1011121314151617181920
-- terapad


 逆に、wordは大きさ修正で-1、速さは半々で-1になる。
 遅れた場合で考えてみると、

           
1011121314151617181920
-- word


 おっと、これは遅れても遅れなくても関係ないなあ。
 盾で防ぐのが賢いか。
 こうなると、2盾攻1無攻を受けるのに対し、2回の無防備攻撃ができる。


「terapad」vs「word」 【距離2】

 続いて、距離2。

               
1011121314151617181920
-- terapad


 terapadの戦略は変わらない(笑)。
 おっと、これは、wordは、最後の攻撃が外に出てしまうので、受けで短縮を狙うしかないのかな?

           
1011121314151617181920
-- word


 おっと、盾で回避を後ろにつけていくコンボもあり。

     
1011121314151617181920
-- word


 んー、こっちでも可。
 けっこうバリエーションは出るもんだねえ・・・。
 まあ、とりあえずのところはコンピュータ同士がもっともらしく戦っているように見えればいいので、こんなに詰め将棋っぽいことにはならないと思う。
 また、実際にPCがどっちかをやるにしても、この組合せは極端に固定的なので、実際に対面したときは、単純な読み合いになるという感じだと思う。ただまあ、理詰めでやろうと思えばやれるけど、運も結構重要というバランス。

 ・・・ただいま妄想中・・・。

 んー、結構バランスいいですね!
 さすが、シャリア・ブル(笑)。
 腕は鈍っちゃいない!(笑)
 ちょっと、プレイヤー負荷は高そうな気がするのだが・・・。
 距離3もやっておきますか。


「terapad」vs「word」 【距離3】


                   
1011121314151617181920
-- terapad


 おっと、攻撃が一回無効になるなあ・・・。
 このように6SR必要な攻撃が、20SRに収まらない場合は、無効な攻撃になる仕様です。
 なので、受けか回避をどこかに入いれることになるかなあ。
 でも、受けるべき攻撃はない(というのがterapadの基本戦術)ので、このままか。

 この状態で、wordの戦術を考えて見ますか。

         
1011121314151617181920
-- word


 wordはこうですかねえ・・・。
 ほー、なるほど。

 ちなみに、このhtmlはpythonで自動生成している。
 (超どうでもいい話だが・・・)
 直前のwordの攻撃は、00000444888111bbbbbb となる。
 まあ、このゲームを書いている目的は、pythonに慣れることなので、こういう小さいスクリプトをじゃんじゃん書くのは、よい練習になって、よい。

 さて、乱取り気味に、適当に戦士たちを生成して、どんな戦い方が可能かを検証してみよう。
 ちなみに、乱数はpythonのインタラクティブ・シェルで生成している。

 inport random
def d(dn):
print random.randint(0,dn)


 と入力して、
 あとは、d(3)と入力すると、d4的な乱数を発生させる。
 こんなの、python使いにしてみれば当たり前すぎることなのだけど(^_^; 案外こういう、めちゃくちゃ簡単なところの情報が不足していて、障壁になっている気がするので、念のために書いておく。
 しかし、改めて眺めてみると、本当にpythonは簡潔だ・・・。
 なんか、こんだけでいいの? という気になってしまう・・・。
 まあ、pythonはマルチバイトの処理がネックで、こっちの方はうんざりなのだけど・・・。

 ちなみに、htmlや戦士たちのデータはPython Scripter(PyScripter)にプログラムを読み込み、RUNさせて、python Interpreterに表示させたものを、コピペしている。htmlの整形にDreamWeaverを使っているのは秘密(笑)<つまりプログラムが完璧ではない。
 しかし、この戦士の情報を表示するために、いちいち戦い始めるのはなんとかならんのか・・・(笑)。

 さて、まずは、「microsoft」vs「google」

microsoft 5f532a3fc4f1ea403f37070f59a7a53a
大きさ 10 + 3
速さ 3 + 1
強さ 15 + 4
耐久 12 + 4
武器 バスタードソード
防具 プレートメイル
攻撃スキル 86 %
回避スキル 35 %
アーキタイプ シド人(男) 都会的な種族

google c822c1b63853ed273b89687ac505f9fa
大きさ 1 + 0
速さ 11 + 3
強さ 6 + 2
耐久 3 + 2
武器 ウォーハンマー
防具 革鎧
攻撃スキル 86 %
回避スキル 41 %
アーキタイプ シド辺境蛮族(男) 都会化された蛮族


 24ラウンド戦った結果は、

microsoft の状態
{'sok': 2, 'hin': 0, 'kei': 1, 'juu': 0}
google の状態
{'sok': 3, 'hin': 1, 'kei': 1, 'juu': 1}


 sokは即死。つまり、googleは24ラウンドで3回死んでいる。
 hinは瀕死。juuが重傷。keiが軽傷。
 これが柔道の効果・有効・技あり・一本みたいに、二つ重なると上の症状に発展する。
(まあ、つまり、このシステムは柔道をパクッているのだが)

 順番が、sok、hin、juu、keiの順がわたしが意図したとおりになっていないのは、なぜだか知らん(笑)。これは何順になってるのかなあ・・・。ちなみにプログラム上のこの辞書型変数の定義自体は、

s = ["",{"kei":0,"juu":0,"hin":0,"sok":0},
{"kei":0,"juu":0,"hin":0,"sok":0}]


 なので、わたしのせいではなく、pythonの仕様上の都合のせい。
 まあ、ちゃんと出力系を書け馬鹿、そのまま変数をprintするんじゃない、と言われれば、あー、まー、そうですねえ・・・、なのですが・・・。


 えーと、なんだっけ?
 おお、microsoft vs google。

 データを見るかぎり、お互い結構強い。
 googleの防具が革鎧というのが、ちょっときついかなぁ。ただ、ウォーハンマーなので、状況は改善できるか。googleは速いが、microsoftはでかい。
 ちなみにこのステータスはMD5で自動的に出しているだけなので、あしからず。
 googleは蛮族ですかwww これは面白い。
 microsoftのこの隙のなさはある種のいやみですね(笑)。


microsoft 5f532a3fc4f1ea403f37070f59a7a53a
大きさ 10 + 3
速さ 3 + 1
強さ 15 + 4
耐久 12 + 4
武器 バスタードソード
防具 プレートメイル
攻撃スキル 86 %
回避スキル 35 %
アーキタイプ シド人(男) 都会的な種族

google c822c1b63853ed273b89687ac505f9fa
大きさ 1 + 0
速さ 11 + 3
強さ 6 + 2
耐久 3 + 2
武器 ウォーハンマー
防具 革鎧
攻撃スキル 86 %
回避スキル 41 %
アーキタイプ シド辺境蛮族(男) 都会化された蛮族



 まずは距離決め。
 ダイスを振ったところ、距離は1。

 まず、マイクロソフトの行動から決めておきますか。
 マイクロソフトとしては、googleの皮鎧が紙なので、当たれば重傷。
 ちなみに、マイクロソフトは1H(片手武器)で盾持ち。
 グーグルは2H(両手持ち)で盾はない。
 なので、グーグルは受けと回避でバスタードソードをかわすしかない。
 グーグルは結局、受けに賭けるしかないのか。
 いかに、グーグルの受けをかわすかになるんだな。


           
1011121314151617181920
-- microsoft


 これで、受けのファーストSRに攻撃があれば、攻撃を三発浴びせられる。
 さて、グーグルの攻撃はどうするか。

                   
1011121314151617181920
-- google


 これはterapadの攻撃パターンなのだけど、こうなると、最後の攻撃が無駄になる。
 googleはどこかで、受けたい。
 一発目の攻撃のあとか、二発目の攻撃のあとか。二発目のあとにしてみるか。

             
1011121314151617181920
-- google


 これでどうなるか。

           
1011121314151617181920
-- microsoft


 マイクロソフトは1回の無防備攻撃、1回の回避越しの攻撃ができると。
 グーグルは1回の無防備攻撃、2回の回避越しの攻撃ができる。

 このぶつかり合いでは、グーグルが優勢だ。
 ほー、なるほど。

 続いて、TOYOTA vs HONDA。

TOYOTA fbfd374fefb20f79be44cbadc6b792bd
大きさ 7 + 2
速さ 4 + 1
強さ 15 + 4
耐久 14 + 5
武器 鎖鎌
防具 スケイルメイル
攻撃スキル 30 %
回避スキル 45 %
アーキタイプ シド人(女) 都会的な種族

HONDA 344359f34a7ecd2bd4a3d0cbb7aa697c
大きさ 9 + 2
速さ 15 + 4
強さ 3 + 1
耐久 4 + 2
武器 モール
防具 胸当て
攻撃スキル 78 %
回避スキル 41 %
アーキタイプ エスト人 祭司的騎士道的種族


 24ラウンド経過後の結果は、

TOYOTA の状態
{'sok': 0, 'hin': 1, 'kei': 0, 'juu': 0}
HONDA の状態
{'sok': 0, 'hin': 0, 'kei': 1, 'juu': 0}


 死なねえ・・・(笑)。
 TOYOTAの攻撃スキルが低すぎて、当てるために、-5の攻撃とかをしているからなのだが、そうすると、

 HONDA は攻撃を回避した。( 125.122070313 %)


 という感じで、125%で回避とか、

 鎖をHONDAに投げつけ、揺らいだ隙に鎌で一閃する。 2 の攻撃!
胸当てが弾き返す。


 とか、それは意味ねえだろうwwwという攻撃を繰り返しているのがまずいんだな・・・。しかも、シド人(女)はかなり保守的な攻撃パターンのアーキタイプ。
 唯一ダメージを与えたのは、この攻撃。

TOYOTA が遅れて襲い掛かる
TOYOTA の、達成値 -4 の攻撃! 2 ( 70 %)
HONDA は回避できない。( 41 %)
鎖をHONDAに投げつけ、揺らいだ隙に鎌で一閃する。 4 の攻撃!
TOYOTAの攻撃は、HONDAの肉体にわずかに達した。軽傷。


 HONDAがダメージを与えられないのは、モールが1d10+2という弱い武器である上に(標準的ともいえるが・・・)、スケイルメイルが装甲値6で、しかもTOYOTAの耐久が+5もあるからだなあ・・・。
 HONDAの与えられるダメージは、1d10+2 + 強さ+1で、1d10+3。
 最低でも11ポイントダメージが防がれるわけで・・・。
 うわー、これは問題だ(笑)。
 やっぱ、クリティカルヒットというか効果的成功を導入しないと、硬すぎてダメージを食らわせられないのだなあ・・・。
 まあ、いいか。
 あとで改良しよう。

 さて、どう攻撃するかなあ・・・。
 距離は3。

                   
1011121314151617181920
-- TOYOTA


 かなあ・・・。
 どうせ、HONDAの攻撃は弾けるので、あんまり防御しても意味ないと・・・。
 というか、逃げろ馬鹿、とかいうレベルなのだが、敢えて戦うならこうなるか。
 続いてHONDA。
 HONDAは大きさ修正と、速さでほぼ、2SR早く攻撃できる。

               
1011121314151617181920
-- HONDA


 こうなるか。
 タイミング的には受けも回避も盾も意味がない。
 これはHONDAの修正の有利さで、攻撃が三回できるのか。
 お互いに最大の無防備攻撃できると。


 続いて、Ruby vs Python。

Ruby 9916d1fc59fe22cc046a2fe1615bc764
大きさ 1 + 0
速さ 15 + 4
強さ 12 + 3
耐久 5 + 2
武器 メイス
防具 プレートメイル
攻撃スキル 38 %
回避スキル 19 %
アーキタイプ エスト人 祭司的騎士道的種族

Python a7f5f35426b927411fc9231b56382173
大きさ 3 + 1
速さ 5 + 1
強さ 4 + 1
耐久 2 + 2
武器 グレートソード
防具 スケイルメイル
攻撃スキル 38 %
回避スキル 29 %
アーキタイプ 帝国人 唐王朝的人々


 なんだ、この攻撃スキル・・・。

Ruby の状態
{'sok': 1, 'hin': 0, 'kei': 0, 'juu': 1}
Python の状態
{'sok': 0, 'hin': 0, 'kei': 0, 'juu': 1}


 Pythonが強いのは、単にグレートソードが強いから。
 両方硬いから、ダメージも与えにくい。
 攻撃も当たらないしなあ・・・。

 Rubyの戦術としては、グレートソードを受けて、無効化したいなあ・・・。
 距離3。

               
1011121314151617181920
-- Ruby


 とりあえず、当ててみた。
 Rubyは速さロールで、1SR早く攻撃できる。
 ちなみに、移動中に攻撃を食らったら回避扱い。
 おっと、メイスなので、SRは2か。
 とりあえずグレートソードを受ける戦術を取ってみるか。

               
1011121314151617181920
-- Ruby


 こうなると、攻撃が一回無駄になるので、回避をどこかに入れておく。

         
1011121314151617181920
-- Ruby


 と、

         
1011121314151617181920
-- Ruby


 のどっちがいいのだろうなあ・・・。

 Pythonの戦術を考えてみよう。
 Rubyには脅威らしい脅威がないので、普通に攻撃。

                 
1011121314151617181920
-- Python


 と思ったら、攻撃が一回無駄になるのか・・・。
 といわけで、受けをどこかに入れたいが、受けのメリットはないなあ・・・。
 というわけで盾をどこかに入れる。
 おっと、グレートソードは2H(両手武器)だ。
 ということは回避か。
 入れる価値があるのは真ん中だけか。

           
1011121314151617181920
-- Python


 これでぶつけてみるか。

         
1011121314151617181920
-- Ruby


 Rubyは2回の回避越しの攻撃か。
 Pythonは1回の受け越しの攻撃と、1回の回避越しの攻撃。
 Rubyのほうが若干有利。
 もう一方の方はどうか。

           
1011121314151617181920
-- Python


         
1011121314151617181920
-- Ruby


 Rubyは2回の回避越しの攻撃。
 Pythonは、2回の回避越しの攻撃。
 これは有利さは同じ。
 なるほど・・・。

 とりあえず、今日はこれまで。

| pythonゲーム修行 | 22:28 | comments(0) | trackbacks(0) | 昨年の記事
 接敵の問題【仕様策定】改良ストライク・ランク ← ただし、あまりにも別物

 えーと、仕様策定をしました。
 これを書いている現在は仕様策定が、一応完了しています。
 とりあえず、記録として、これを残す。

 これは、
 1.わたしがWeb上でいつでも見れるようにしておきたい
  (非常に大きな理由がこれ)
 2.アリバイというか、わたしが考えたんだという軌跡を残しておきたい。
  (特許人的な思想で、先行文献思想。ここに書かれていることは公共財産である)
 3.もし、ほんのわずかでも誰かの助けになるなら、参考にして欲しい。
  (これはオープンソース思考なのか?)

 といった辺りが、動機で、あとは、わたしが何を考えているかを、すこしでもオープンにしたいというところか。
 基本的に、自分の発想自体があまりにも異質すぎて、誰にも理解できないという悲劇を体験しまくっているくちなので、なんとかうまく説明できないものかという行動の一環でもある。
 こういう成果物だけが、何とか理解できるところかもと思ってしまう。
 どちらにしても、わたし自身の素が、超強烈な暗号なのだなぁ・・・。
 それはみんな、そう思っているかもだけど。


 接敵をどう抽象化するか
 ≒ どう実装するか
 = どういうコードで実装するか
 = それをどうプレイヤーに見せるか
  → UI部(?)テキストで表現
   ≒ 小説表現
    → 正確に言えばハリウッド映画のアクションシーンを小説風に描写する

 接敵とは何か
 → これまでのTRPGでは近接武器の届く範囲に両者が到達
  → この定義で実装してもハリウッド映画のアクションシーンは再現できない
   ex. デッドマンズ・チェストのラストの戦闘
    → たしかに絶対に無理。
   ex. ボーン・アイデンティティの戦闘
    → 無理かも。
     → 実際にはこれは現在のFPSが打ち破ろうとしてる壁。
      → 参考資料 http://blog.livedoor.jp/spikee_rez/archives/51177472.html
      → ここでの実装はFPSの格闘ゲーム化。もしくは、スパイク・アウト。
   ex. スターウォーズの戦闘
    → ここでは、シスの復讐のラストの戦闘を考慮している。
    → 無理かも。
   ∵ ハリウッド映画のアクションシーン
    → ある程度の時間をこのアクションシーンで消化する必要がある。
    → そのため、観客を飽きさせないために、舞台転換を何度も行う必要がある。
     ∵ 人物は替えられないんで(主人公×ラスボス)
      → 道具も替えられない。
      → 舞台を変える以外方法がない。
      → よって、強引なまでに舞台を替えまくる
       → ボーン・アイデンティティの工夫がわかるでしょ(笑)
       → あー、デッドマンズ・チェストもね。
  → ルーンクエストのルールで、ハリウッド映画は実装できるか。
   →【結論】無理。
  → じゃあ、どうするの?
   → その質問は、じつにプアだな。
  → じゃあ、どう実装するの?
   → その質問も、じつに本質を突いていない。
  → どう聞けばいいのだろう?
   → 「接敵とは、なんなのだと思いますか?」

 → 接敵とはTRPGの都合上の概念
  → いまだにミリタリーゲームの概念から脱していない。
   ex. ジークジオン(ガンダムのゲーム)では、格闘攻撃ができる距離
    → つまり、これは概念的には隣接するヘックスを意味。
    → ここからヘックスを取り除いたのが、TRPGの接敵
     → 大戦略に照らせば、戦車が攻撃できる距離
      → 接敵・格闘攻撃
     → 自走砲、ミサイル攻撃ができる距離
      → 射撃武器 ≒ 間接攻撃
  → では、ヘックスという概念を無視してみよう。
   → ついでに言うと、「敵との距離○○m」もアウト
    → ルーンクエストは1SRに3m移動できるというルールがあるため、
      無意識的にヘックスを作ってしまっている。
     → これが嫌いな理由(おまけ(笑))
   ex. 資料にあるボーン・アイデンティティのゲームをどう実装するか。
    → まずはゲームのプレイ画面を鑑賞しましょう(笑)
    Movie1 http://www.nicovideo.jp/watch/sm3712162
     → 部屋というか、リングぐらいのサイズを最小単位にすべきか・・・
     → 窓の外に出た。
      → いちいちワンアクションずつ判定はしない(無意味だから)
     → やはり部屋サイズのスペース
    Movie2 http://www.nicovideo.jp/watch/sm3730800
     → 桟橋も、最小単位と考えたほうがよいか
      → この敵3人をどう表現するか
       → これ、何アクション? 1? 3?
      → 走って殴るは、1アクション
      → 忍び寄る + 2人と戦う + 二人目との戦いが長引く
       → これで3アクションぐらいがてきとうか。
      → このゲームの15秒ぐらいを1アクションにするか。
    Movie3 http://www.nicovideo.jp/watch/sm3731167
     → また、部屋サイズ。
      → 海に落ちれるとかは、舞台データだな。
     → また、部屋サイズ。
    Movie4 http://www.nicovideo.jp/watch/sm3731342
     → 広い部屋。
      → こういうの表現どうするか・・・。
     → 3人との戦い。
      → こういうの難しいなあ・・・。
     → 広場での銃撃戦
      → この辺はFPSマター。
    Movie5 http://www.nicovideo.jp/watch/sm3731412
     → もう、いいかなあ・・・。
    → で、ででで、でででで、ででで、でで。
    →【仕様策定】
     → 最小舞台単位は部屋ぐらいの大きさ。
      → 舞台データ
     → 1ラウンド終了後、部屋の中のどこに居るかはランダム
      → 特別にそこへ行こうとした場合は別。
     → 1ラウンド終了後の、敵との距離もランダム。
      → 特別に条件が発生している場合は任意距離。
     → 敵との距離により、1ラウンドに使用できるSRが可変
      → ちょっと言葉が変だ。
      ex. 敵との距離 0-3  全 20 SR
       → これは移動に掛かる 消費SR/2
        → つまり最大 6SR 移動しないと攻撃できない
        → つまり使用できるSRが 14-20 と可変になる。
         → 距離の問題を消費SRの問題に変換したのだな(なるほど)
     → プレイヤーは、ラウンド頭にどのコンボで攻撃するかを選択。
      ex. 「受け」「攻撃」「盾」
       → この時、
        → 「受け」のSR内に攻撃を受ける
         → SRを消耗することなく「受け」ができる
        → 「攻撃」のSR内に攻撃を受ける
         → 「受け」はできない
        → 「盾」のSR内に攻撃を受ける。
         → 「受け」ではなく、「盾」が発動
        → 移動時などの「受け」「攻撃」「盾」以外の行動時に攻撃を受ける。
         → 例えば3SRを消費して「受け」ができる。
          → バランスは要調整
          → 行動にペナルティ発生
          → その際、そこに3SRが割り込んで、後にずれるため、
            選んだ行動が実行できないなどということもある。
       → つまり、行動順を選択して、ジャンケンゲームみたいになるんだな。
        → カードゲームみたいな感じを想定するとよいかも。
     → 「受け」「攻撃」「盾」は同時に2つまで
      → 「受け」「攻撃」or「攻撃」「盾」or「受け」「盾」前後6パターン
      → ただし、倍のSRを消耗して、再度使用可
       → この際の発動はSRのラスト。
       ex. 移  →受 →攻 →←    攻
         1234567891011121314151617181920
       → 再度使用待ち間に攻撃を受ける
                     攻
                     ↓
       ex. 移  →受 →攻 →←→回 →←   攻
         1234567891011121314151617181920
       → 「受け」の場合は、3SR「回避」+3SR「受け」
       → 「盾」の場合は、6SR「盾」
       → この辺は要調整
     → おっと、「回避」はどうするかなあ・・・。
      → あと、「受け」「盾」「回避」の性格の切り分け
       → 「受け」は通常発動であれば、次のSRに「攻撃」できる
       ex. 移  →受 →攻 →←    攻
         1234567891011121314151617181920
        
              攻
              ↓
       ex. 移  →←受攻 →←    攻
         1234567891011121314151617181920
        → つまり、「受け」が成功すると無防備な敵に攻撃ができるわけだ。
         → 緊急発動時はこういうことはない。
         → 「受け」失敗時もSRは短縮されない。
       → 「盾」は純粋に成功する確率が高い。
       → 「回避」は何度でもできる。
        → ただし成功確率低い。
        → ただし、緊急受け・緊急盾よりも高い。
         → 待った。緊急受け・緊急盾はない。緊急は回避のみ。
        → タイミングをずらすスペーサーみたいな感じで使える。
        → 緊急回避と通常回避に差はない。
        → 緊急回避はしなくてもよい。
         → これはラウンド頭にする/しないを宣言
         → これで、回避せず鎧で弾いてグレートソードぶん回すとかおk
          → バーサーク・プレイとも呼ぶ。
       → 「受け」「盾」「回避」「攻撃」は3SR
        → ただし「受け」は成功すると、余ったSRが短縮される。
     → よし。とりあえず、基本仕様はできた。
      → 結構凝ってるなあ(笑)。
      → いかにも、TRPGでなくて、PCでやりなさいって感じだ(笑)
       → おっと、1H(片手武器)、2H(両手武器)のシミュレーションを
         やってないなあ・・・。この辺はつみ残り。


#
# 休憩中に・・・ → 仕 様 漏 れ ハ ッ ケ ン !
#
# うわー、しまった。本家のSRの仕様をまったく無視していた!!!(笑)
#


 本家の仕様ってなんだったけ?
 → 敏捷・大きさ・武器のリーチでSRが決まる仕様!!!!
  → 敏捷値
   → 本家 敏捷値により、4-2のSR修正(人間の範囲)
    → これはバランスが崩れる。
   → こっちd16で敏捷値以下なら移動に掛かるSR-1
    ex. 6消費を5消費に。4消費を3消費に
    → 同時攻撃の際にも使用。
    → 0距離の場合は関係なし。
  → 大きさ
   → 本家 大きさにより、2-1のSR修正(人間の範囲)
    → これはバランスが崩れる。
   → こっち 大きさ 8以上の場合は、移動に掛かるSR-1
    ex. 移動に6消費するが、リーチが長いので、1SR早く攻撃できる。
   → 0距離のときは関係なし
  → 武器のリーチ
   → 本家 武器のリーチにより 0-3のSR修正
    → これは採用したい。
   → こっち 武器のリーチにより、攻撃位置が変化。
    ex. ウォーハンマー
      攻 →
      123
    ex. ブロードソード
      ←攻→
      123
    ex. ダガー
      ← 攻
      123
    → 武器のSR0はパイクだけなので、これは無視。
    → これはセカンドアッタク時も同様。
     ex. ウォーハンマー
       ←  攻 →
       101112131415
     ex. ブロードソード
       ←   攻→
       101112131415
     ex. ダガー
       ←    攻
       101112131415


 以上。

 こんなもんか。
 なんか、いろいろシミュレーションしてると、アラが出てきそうだな・・・。
 まあ、いいか。



 【おまけ】

 どうでもいいけど、この仕様策定の前に、文章で状況説明しながら、仕様策定しようかなぁ♪ なのりで書いた文章が残っているので、こっちもはっておく。
 途中で挫折しているので、文句は言わないように(笑)
 結局、わたしは、このアウトラインでの検討が合っているんだなあ・・・。
 というか、どう見ても、これはpython構文(笑)
 わたしがpythonを書き始める前から、この構文で思考を出力していたのは、記録があちこちにインターネット上に残っているはず。
 pythonと相性がいいんだなぁと思ってしまったしだい・・・。


 「接敵」の問題


 今、pythonでゲームを作っていて、昔からどうしても解決しない問題を、「また」考える羽目になった。
 「接敵」とはなんぞや、という問題である。
 これは非常に根深いので、考えを広げるためにこれを書いている。

 ゲームデザインの本質は、「いかに抽象化するか」、であるかと思っている。
 TRPGをはじめとして、アナログゲームにしても、デジタルゲームにしても、もちろんかなり完全度が高く現実をシミュレートできるパワフルなゲーム機も存在するが、どちらにしても現実をデータにしなければならない以上、何らかの抽象化は必要である。
 もちろん、アナログゲームであれば、抽象化なしにゲーム化はできない。
 例えば、大戦略で出てくるヘックス。
 例えば、格闘ゲームの体力ゲージ。
(体力ゲージとは何ぞや? 骨折と、打撲と、内臓破裂の総合値?(笑))
 すぐれたゲームデザインには、すぐれた抽象化がある。
 わたしがもっともすぐれたデザインだと思うゲームは、とびきりにエレガントな抽象化がありながら、それがあまりにも自然に思えるデザインをされているゲームだ。
 ゲームデザインは抽象化がすべてで、あとはおまけのようなものだと思ってしまうほどだ。
 ゲームセンスがなければバランスが悪くなるだろうし、どの要素がゲームを面白くする判断に貢献しているかの区別もつかないだろう。
 でも、それは、才能というよりも経験による含蓄みたいなもので、わたしに関して言えば、高校生の頃にPC-98黄金期に、パソコンゲームを鬼のようにやりまくった経験に基づく、嗅覚みたいなものである。
 これは、精度の方の問題なので、精度は時間をかければ必ず改善する。
 その精度向上の速度には個人差はあるだろうけど。

 わたしたちは、先人のすぐれた抽象化方法の遺産を受け継いでおり、普段は、その抽象化をどう使えばいいかを考えればいい。
 たとえば、格闘ゲームの体力ゲージの本質はなにかをプレイヤーが考える必要はない。
 しかし、たった一つだけ、その抽象化したエレガントなデザイナーが見ているゲームデザインを超えなければならない時期がある。
 全く新しいゲームデザインを生み出すときである。
 わたしがヒットポイントという抽象化手段がとてつもなく大嫌いであれば、別の抽象化手段を考えなければならない。

 さて、「接敵」である。
 「接敵」とはなんぞやの話である。

 よくTRPGでは、剣で攻撃できる範囲に相手を捉えた時点を「接敵した」と表現する。
 攻撃と防御のロールが始まり、ダメージを与え合うことになる。
 しかし、どうしても思ってしまうのだが、この「接敵」の距離はいったい何メートルなんだろう?
 矛盾をはらんだ状況を解きほぐす問いだと思う。
 ケースバイケースで考えてみよう。
 例えば、
「スラムでチンピラに絡まれた。腕で引き寄せられ、バタフライナイフで刺される」
 という状況では、「接敵した」は存在しない。
 この場合、敵との距離は0メートルである。
 しかし、この状況下で戦闘ルールでセッションをしているマスターは多くないだろう。
 もちろんプレイヤーから戦闘ルールで行動すると言われれば、さすがに別だが。


| pythonゲーム修行 | 01:19 | comments(0) | trackbacks(0) | 昨年の記事
[pythonゲーム修行]仕様策定中

 さて、ストライク・ランクの大改造だが・・・、これは結構大変である。
 というのは、ここの設計で戦闘ラウンド中に取れる行動をすべて洗い出して、何を実装するか決めなければならないからだ。
 とりあえず、ルーンクエストとジークジオンをコンパチする。

 影響範囲は、
 ・ストライク・ランク
  → 20に拡張
  → ジークジオン改作版の反応機動の概念を導入
 ・受け・盾
  → これは受けのストライク・ランクを決めたいから。
   → あと、受けた後の攻撃の制限、攻撃したあとの受けの制限を決める。
  → 盾はコンビ指定しないと、判定が難しくなる設定にする。
   → これは、受けと盾が強すぎて、しばしばバランスを崩すから。
 ・効果的成功・ファンブル
  → これは、基本的にファンブルはファンブル表を使うのが伝統だから。
   → ファンブルから回復する方法はすべて実装されていないといけない。
    → 武器を落としたとかね。
 ・移動ルール
  → これも、かなり根本に関わる問題。
   → ルンク仕様は避けたい。

#  どうでもいいがPythonのコードを見ているようだwww
#  そーか、わたしはもともとPython素質があったんだ! wwww
#  無駄にコメント記号入れてみたwww
#  あとなんだ・・・? 終わりか? なんかあったらまた足そう。

 まずはルーンクエスト

 ・移動         #1STに3mの移動 ← このルールが嫌いだったりする
 ・不意打ち       #相手より +3STの修正
 ・魔法の使用      #以下魔法は無視
 ・武器の準備      #持ち替え3ST
 ・意図の変更      #3st
 ・戦闘とは関係ない動作 #これはずるいなあ(笑) いやいや、ずるくないのだけど

 ・攻撃
 ・受け
 ・回避         #回避は攻撃・受けのどちらかの代わりに実行可能 へー
 ・ノックバック     #数メートル後によろめき、転倒チェック

 ・移動しながら攻撃
 ・移動中の敵への攻撃
 ・戦闘状態から抜け出す
 ・手わざ        #掴むとか、締め上げるとか
             #この辺は抽象化されているのだな・・・。

# んー、こんなもんか。結構な行為が、マスター裁量になっている。
# 自動化しにくい・・・。

 続いて、ジークジオン改作版 #これはモビルスーツの行動

 ・移動
 ・旋回
 ・衝突
 ・ジャンプ
 ・飛行

 ・反応移動         #これが結構エポックなルールだったりする。
               #追加行動みたいなルール
 ・体当たり

 ・確認

 ・射撃
 ・照準
 ・両手射撃
 ・散布射撃
 ・狙い撃ち
 ・回避
 ・気絶
 ・一斉射撃

 ・格闘
 ・照準
 ・故障           #これはファンブル
 ・突き放し
 ・シールド防御
 ・機動防御         #受けのこと

 ・転倒
 ・墜落
 ・降下
 ・爆撃


 以上か。

 とりあえず、リストアップはしたので、これは揉んでおくことにしておく。
 というわけで、せこせこと外部ファイルの文章を書く作業に専念しよう。プログラムから離れてしまうなあ・・・。
| pythonゲーム修行 | 22:45 | comments(0) | trackbacks(0) |
[pythonゲーム修行]攻撃・回避ルールを導入した。

 絶賛開発中のpythonゲームに、攻撃・回避ルールを実装。
 実装したルールは以下の通り。


 攻撃・回避ルール

 リスク選択型下方パーセンテージロール
 (サイバールールの改作)

 目標値を10%減らす/増やすごとに、+1/−1の達成効果。
 達成値 +1/−1ごとに、1.25倍/0.8倍の効果。

 武器スキル 30 + Rand(15)*4
 回避スキル 30 + Rand(15)*4

 d100で武器スキル以下で攻撃成功
 d100で回避スキル/2以下で回避成功(回避には目標値増減はなし)

 武器スキルの達成値修正は、ダメージ増大/回避率減少のどちらかを選択できる。

 ・アルゴリズム案
  各アーキタイプ毎に独自の攻撃パターン
  8桁の数字でアルゴリズムパターンを表示する。

  例:06462330 (とりあえず0-6までとする)

  この数字は目標目標値(変な言葉である)を表す。
  左からこの順番で攻撃する。ただし、開始位置はランダム。

  0 → 20%が目標(その分、達成値を上げる)
  1 → 30%が目標
   ...
  5 → 70%が目標
  6 → 80%が目標

  で、ダメージを選ぶか、回避率を選ぶかは、その前のネガティブ・データによって決まる。

 直前のノーダメージが回避によるものなら → 回避率を下げる
 直前のノーダメージが防具によるものなら → ダメージを増やす
 で、対応。

 ただし、1/3の確率でランダムで選ぶ。
 達成値をマイナスにしているなら、効果はランダム。



 説明する気、まるでなしの文章だけど、まあ、こんな感じ。
 あと、キャラクターにアーキタイプを導入。
 上記のアルゴリズムにより、リスクをどう取るかのパターンが実装されている。
 実際のデータは、以下の通り。


アーキタイプ

システィア人 楽天的な冒険家 22542361
シド人(男) 都会的な種族 65454251
シド人(女) 都会的な種族 65465241
シド辺境蛮族(男) 都会化された蛮族 45322452
シド辺境蛮族(女) 都会化させた蛮族 45224526
ボルニア人 典型的な蛮族 33152526
キュディス人(男) ソ連的人々 34234234
キュディス人(女) ソ連的人々 54325436
トラン人 ナチス的人々 33633313
帝国人 唐王朝的人々 65534525
帝国西方辺境人 牧歌的人々 64642641
帝国南方辺境人 開拓者的人々 44326326
ぺネス人 狩猟的種族 54541541
スカイ河流域人 ダンセイニ的種族 55532552
エスト人 祭司的騎士道的種族 44424462
ザブンデ人 蛮族的騎士道種族 33452345


 アーキタイプというより、ルーンクエストのカルトに近いか・・・。
 蛮族はよりリスクをとり、保守的な勢力ほど安全策で勝とうとする感じ。

 で、この新システムでの(というか、毎日新システムなのだが・・・)、terapadとwordの戦いはこんな感じ。


terapad 381be00ed8f3d49da3b7455e189aad60
大きさ 0 + 0
速さ 0 + 0
強さ 14 + 4
耐久 13 + 4
武器 ウォーハンマー
防具 プレートメイル
攻撃スキル 82 %
回避スキル 23 %
アーキタイプ シド辺境蛮族(男) 都会化された蛮族

word c47d187067c6cf953245f128b5fde62a
大きさ 8 + 2
速さ 7 + 2
強さ 0 + 0
耐久 6 + 3
武器 ダガー
防具 チェインメイル
攻撃スキル 78 %
回避スキル 45 %
アーキタイプ キュディス人(男) ソ連的人々



 おー、wordはキュディス人か・・・。
 ほぉー。


【第 1 ラウンド】

word が先に襲い掛かる
word の、達成値 2 の攻撃! 1 ( 58 %)
terapad は攻撃を回避した。( 14.72 %)

terapad が遅れて襲い掛かる
terapad の、達成値 3 の攻撃! 2 ( 52 %)
word は回避できない。( 45 %)
terapadは両腕の力をこめて、ウォーハンマーを叩き付けた。 19 の攻撃!
チェインメイルを破り、重傷を負わせた。傷口から血が吹き出した。

terapad の状態
{'sok': 0, 'hin': 0, 'kei': 0, 'juu': 0}
word の状態
{'sok': 0, 'hin': 0, 'kei': 0, 'juu': 1}


【第 2 ラウンド】

word が先に襲い掛かる
word は達成値 1 の攻撃を試みたが外した。( 68 %)

terapad が遅れて襲い掛かる
terapad は達成値 3 の攻撃を試みたが外した。( 52 %)

terapad の状態
{'sok': 0, 'hin': 0, 'kei': 0, 'juu': 0}
word の状態
{'sok': 0, 'hin': 0, 'kei': 0, 'juu': 1}

 (中略)


【第 15 ラウンド】

terapad が先に襲い掛かる
terapad の、達成値 0 の攻撃! 1 ( 82 %)
word は回避できない。( 45.0 %)
うなるウォーハンマーがwordに襲い掛かる。 14 の攻撃!
terapadの攻撃は、wordの肉体にわずかに達した。軽傷。

word が遅れて襲い掛かる
word の、達成値 1 の攻撃! 2 ( 68 %)
terapad は攻撃を回避した。( 23 %)
terapad の状態

{'sok': 0, 'hin': 0, 'kei': 0, 'juu': 0}
wordが受けた軽傷は、この一撃で重傷へと悪化した。傷口が広がり血がどくどくと溢れる。
先ほどの重傷に再度受けた一撃は、wordの傷を瀕死の傷へ悪化させた。一瞬意識が飛ぶ。
先ほどの瀕死の傷に再度受けた一撃は、wordの機能を停止させた。wordは死んだ。
word の状態
{'sok': 1, 'hin': 0, 'kei': 0, 'juu': 0}


>>全文のログはこちら


 んー、このterapadとwordの戦いは、wordの武器が最弱のダガーで、terapadの防具がプレートメイルという時点で、勝ち目がなさそうなのだが(しかも武器はウォーハンマー)、盾とか、受けとかを導入したら何とかなるかなあ・・・。
 というか、terapadはノーダメージだし。

 ただ、何度か別の名前でやってみている感じでは、ゲームデザインとして(いまは自動化しているので、がーっとログ作っているだけだが・・・)なかなか意図したところは出ているような気がする。
 ちょっと満足。

 バグっぽいところもあるので、微修正が必要になりそうかなあ。
 とりあえずのところは、これでよし。

 思いの外、コード書くのに手間取った。
 あと、結構スパゲッティーになってきているので、どこかのタイミングでリファインしたいなあ・・・。変数名の命名規則とか大事だなあと思ってしまった。


 >>現在のコードはこちら。



| pythonゲーム修行 | 01:11 | comments(0) | trackbacks(0) |
[pythonゲーム修行]だいぶ進化してきた・・・。
 pythonゲームに色合いを与えるべく、マッチメーカーライクに、状況説明ファイルを外部化して、表現を多彩にする。
 なんともまあ、取り返しのつかない方向へ・・・。


 むやみやたらに攻撃しあう「terapad」と「word」


 「word」死す。

 こういう外部化ファイルを作ること自体が結構大変だということを学ぶ。何の脈絡もなく、文章を書くって結構つらい・・・。外部ファイルは13kbに既に達しているので、結構書いていることになる。

 とりあえず、ここで一応の区切り。
 うーん、このあとどうしようかなあ・・・。

 現在のコード




 おまけ。

 積み残し実装予定

・ストライクランクの本格導入
 →行動パターンの洗い出し
  →まずは、ルーンクエストを参考
 →ストライクランクルールの改造
  →ジークジオンplusの行動ポイントルールを参考。
  →ストライクランクは10から20に拡張

・盾の導入
 →1Hのプレイヤーは盾で受けることができる。
 →これと平行して、武器による受けも検討
 →この辺はストライクランクのほうと絡む。

・アーキタイプ別の台詞を導入
 →これは外部ファイル問題なのでもくもくとやる。
 →マッチメーカーも研究しておく

・行動ルールをどうするか
 →これは実は地形問題にも発展する。
 →現状舞台はノーアイデアなので、煮詰める必要がある。

・攻撃・回避ルールの実装
 →これはサイバーRPGのリスク選択下方ロールで実装。
  →この際に、リスク選択パターンに、アーキタイプの性格を反映させる。
 →攻撃・回避スキルは16*6で算出。

 ・達成値の基準
 達成値0とは、サイバーフォーミュラー世界で標準的な成功を表します。それ以後、達成値が+1されるごとに、およそ1.25倍の成功を収めた事になります。逆に、−1されるごとにおよそ0.8倍の成功になります。
 以下に、達成値毎の成功の度合いを示します。使いやすいように約しています。

 達成値  −10  −9  −8  −7  −6  
 成功倍率  1/10  1/8 1/6  1/5  1/4

 達成度   −5  −4  −3  −2  −1
 成功倍率 1/3  2/5  1/2  2/3  4/5


 達成値   +1  +2  +3  +4  +5
 成功倍率  1.25倍  1.5倍  2倍  2.5倍  3倍

 達成値   +6  +7  +8  +9 +10
 成功倍率 4倍  5倍  6倍  8倍 10倍


 だそうだ。
 サイバールールはさりげなくセンスがすごいんだよなあ・・・。
 ちょっと読むだけで、背筋がしびれる・・・。

・効果的成功をどうするかを考えなければ・・・。
 →ルーンクエストはどうなっていたかなあ・・・。
  →確か、効果的成功と貫通があった気がするなあ・・・。

 ・効果的成功
 もし、1d20の値がそのキャラクターの幸運判定値以下であった場合は、効果的成功になります。この場合は、目標値と出た目の差を2で割った値(端数切捨)分を達成値に加算する事ができます。つまり、その場しのぎの為の資金調達に乗り出した、オーナースキルレベル5、知性判定値+4、幸運判定値+6のキャラクターが、基本目標値9のまま、達成値0を目指してロールをし、1d20で4の目が出た場合の達成値は、9から4を引いた5を2で割った(端数切捨)値である2を0に加算した値となります。つまり、このキャラクターは+2の達成値で成功した事になるのです。
 また、もしプレイヤーが幸運判定値未満まで目標値を落とし(彼にとっては大ギャンブルのつもりなのでしょう)、見事ロールに成功した場合は、幸運判定値と目標値の差分がそのまま達成値に足されます。つまり、上記の資金調達の例で、目標値を5に落とし、1d20をして同じく4の目が出た場合、そのロールの達成値は、目標値を5に落とした分の+2に、さらに幸運判定値と出目の差分の+2が加えられ、合計で達成値が+4になります。勿論、失敗すれば、そのロールは失敗となり、ゲームに何の影響も与えることが出来ません。


 だそうだ。
 これはどうかなあ・・・。

 攻撃回避ルールをまず実装するか・・・。

| pythonゲーム修行 | 22:52 | comments(0) | trackbacks(0) | 昨年の記事