2014年11月27日木曜日

[swift]テキストRPGをswiftの練習がてら作ってみようと思った - 3


戦士アルテアに色々させようととりあえず行動を追加してみた
(追記:この文を考えると、行動内容は戦士、何をするかは条件は洞窟というのが自然な気がしますね)

歩くとHPを消費
走るともっと消費
泉の水を飲むと回復

今回は泉の洞窟に変更を加える

public class Cave{
    var name="泉の洞窟"
    var item:String="泉の水"
    var size:Int=20
    var stepCount=0;
    var player:Warrior;
    var direction:Int=1;
    var progress:Bool;

    
    public init(player:Warrior){
        self.stepCount=0
        self.player=player
        self.progress=true;
        print("\(player.name)\(name)の探索を始める\n")
    }
    
    public func step(){
        if(!progress){
            return
        }
        var rand = arc4random()%100
        if(rand>60){
            stepCount+=direction;
            player.hp-=2;
            print("\(player.name)が歩く(HP:\(player.hp))\n")
        }else if(rand>30){
            stepCount+=direction;
            player.hp-=6;
            print("\(player.name)は走った(HP:\(player.hp))\n")
        }else{
            //stepCount+=direction;
            player.hp++;
            print("\(player.name)は少し休んだ(HP:\(player.hp))\n")
        }
        
        if(stepCount==20){
            direction = -1
            stepCount--;
            //満タンとかやるならここは、playerの役割なんだろう
            player.hp=100;
            print("\(player.name)\(item)を手に入れた。泉の水を少しだけ飲むと体の疲れとれたようだ。(HP:\(player.hp))\n")
        }
        if(stepCount<0){
            progress=false;
            print("\(player.name)\(name)から出た\n")
        }
    
    }
    
}


■出力
アルテアは泉の洞窟の探索を始める
アルテアは少し休んだ(HP:101)
アルテアが歩く(HP:99)
アルテアが歩く(HP:97)
アルテアは走った(HP:91)
アルテアは少し休んだ(HP:92)
アルテアが歩く(HP:90)
アルテアが歩く(HP:88)
アルテアは走った(HP:82)
アルテアは少し休んだ(HP:83)
アルテアが歩く(HP:81)
アルテアは走った(HP:75)
アルテアは走った(HP:69)
アルテアが歩く(HP:67)
アルテアは少し休んだ(HP:68)
アルテアが歩く(HP:66)
アルテアが歩く(HP:64)
アルテアが歩く(HP:62)
アルテアは少し休んだ(HP:63)
アルテアは走った(HP:57)
アルテアが歩く(HP:55)
アルテアは少し休んだ(HP:56)
アルテアは少し休んだ(HP:57)
アルテアは走った(HP:51)
アルテアは走った(HP:45)
アルテアは少し休んだ(HP:46)
アルテアは少し休んだ(HP:47)
アルテアは少し休んだ(HP:48)
アルテアは少し休んだ(HP:49)
アルテアが歩く(HP:47)
アルテアは少し休んだ(HP:48)
アルテアは少し休んだ(HP:49)
アルテアが歩く(HP:47)
アルテアは少し休んだ(HP:48)
アルテアが歩く(HP:46)
アルテアが泉の水を手に入れた。泉の水を少しだけ飲むと体の疲れとれたようだ。(HP:100)
アルテアは少し休んだ(HP:101)
アルテアは走った(HP:95)
アルテアは少し休んだ(HP:96)
アルテアが歩く(HP:94)
アルテアは走った(HP:88)
アルテアが歩く(HP:86)
アルテアは少し休んだ(HP:87)
アルテアが歩く(HP:85)
アルテアが歩く(HP:83)
アルテアは走った(HP:77)
アルテアは少し休んだ(HP:78)
アルテアは少し休んだ(HP:79)
アルテアが歩く(HP:77)
アルテアは走った(HP:71)
アルテアが歩く(HP:69)
アルテアは少し休んだ(HP:70)
アルテアは走った(HP:64)
アルテアは走った(HP:58)
アルテアは少し休んだ(HP:59)
アルテアは少し休んだ(HP:60)
アルテアが歩く(HP:58)
アルテアは少し休んだ(HP:59)
アルテアは走った(HP:53)
アルテアは少し休んだ(HP:54)
アルテアは少し休んだ(HP:55)
アルテアが歩く(HP:53)
アルテアは走った(HP:47)
アルテアは走った(HP:41)
アルテアは少し休んだ(HP:42)
アルテアが歩く(HP:40)
アルテアは少し休んだ(HP:41)
アルテアは少し休んだ(HP:42)
アルテアが歩く(HP:40)
アルテアは少し休んだ(HP:41)
アルテアは走った(HP:35)
アルテアは泉の洞窟から出た

気になる点ありありですね。

HPの最大値とかきになるし、ランダムすぎるので元気なのにやすんだり、走り続けすぎるのもどうか。
場所にいろいろと戦士アルテアを動かしてもらったけど、幾つかは、戦士自体が管理するようにした方がよさそうだ。
ランダムで動かしたけど、ロジック(簡易AI)で判断とかもいれたいね。

徐々に見直していこう。

0 件のコメント:

コメントを投稿