Ruby/クラス

ruby
class Player           # クラス定義
    def walk()
        puts "勇者は、荒野を歩いていた。"
    end

    def attack(enemy)
        puts "勇者は、#{enemy}を攻撃した!"
    end
end


player1 = Player.new()    # オブジェクトを生成
player1.walk()            # オブジェクトのメソッドを呼び出す





class Player
    def initialize(job) # 初期化メソッド
        @job = job
    end

    def walk()
        puts "#{@job}は、荒野を歩いていた。"
    end
end

player1 = Player.new("戦士")
player1.walk()





class Enemy
    attr_accessor :name
    def initialize(name)
        @name = name
    end

    def attack()
        puts "勇者は、#{@name}を攻撃した。"
    end
end

enemies = []
enemies.push(Enemy.new("スライム"))
enemies.push(Enemy.new("モンスター"))
enemies.push(Enemy.new("ドラゴン"))

enemies.each do |enemy|
    enemy.attack()
end




class Item
    @@tax = 1.08

    def initialize(price, quantity)
        @price = price
        @quantity = quantity
    end

    def total()
        (@price * @quantity * @@tax).round
    end
end

apple = Item.new(120, 15)
total = apple.total()
puts "合計金額は#{total}円です。"

orange = Item.new(85, 32)
puts "合計金額は#{orange.total}円です。"






class Player
    @@charactor_count = 0
    
    def initialize(name)
        @name = name
        @@charactor_count += 1
    end
    
    def self.charactor_count()
        @@charactor_count
    end
    
    def attack()
        puts "#{@name}がボスを攻撃した。"
    end
end

players = []
players.push(Player.new("aaa"))
players.push(Player.new("bbb"))
players.push(Player.new("ccc"))

puts "#{Player.charactor_count()}人で、ボスに立ち向かう"

players.each do |player|
    player.attack()
end