RubyWarriorをPHPに移植した #phpwarrior
Rubyで作られたRubyWarriorというゲームをPHPに移植しました。
Rubyで実装して2つの塔を攻略していくゲームですが、晴れてPHPでも攻略できるようになりました。 初心者モードと中級者モードに9面づつ、最後までクリアすると同じコードで最初から最後までプレイするepicモードが始まります。
RubyWarriorの場合、プレイヤーの動きを実装するplayer.rbは次のような形です。
class Player
def play_turn(warrior)
# cool code goes here
if warrior.feel.enemy?
warrior.attack!
else
warrior.walk!
end
end
end
一方、PHPでは戦士の挙動を実装するplayer.phpは次のようになりました。 Rubyの!ニュアンスが失われているのがやや心残りですが、ひとまずひと通りのステージクリアできるのは確認できました。
<?php
class Player {
public function play_turn($warrior) {
# add your code here
if ($warrior->feel()->is_captive()) {
$warrior->rescue();
} else {
$warrior->attack();
}
}
}
ちなみにPython移植版の場合は!を_に変えて移植していました。
TravisCIを使ってPHP7での動作も確認しましたが、気軽に遊んでもらえると嬉しいです。 インストールはcomposerから可能です。
composer global require "yandod/php-warrior=*"
export PATH=$HOME/.composer/vendor/bin:$PATH