teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

2020/03/07 02:39

投稿

masa_mf3
masa_mf3

スコア64

title CHANGED
@@ -1,1 +1,1 @@
1
- コンソーでゲを作る
1
+ ループでアプリを作る
body CHANGED
@@ -1,2 +1,2 @@
1
- コンソーでゲを作る方法を考えております。
1
+ ループでアプリを作る方法を考えております。
2
2
  いつもありがとうございます。

1

事情により内容だけ削除させていただきました。とても感謝しております。

2020/03/07 02:38

投稿

masa_mf3
masa_mf3

スコア64

title CHANGED
@@ -1,1 +1,1 @@
1
- Rubyでタミナ上の簡単なゲームを作りたい
1
+ コンソールゲームを作
body CHANGED
@@ -1,66 +1,2 @@
1
- 現在、Rubyを使ってゲームを作ております。
1
+ コンソールでゲームを作る方法を考えております。
2
- インスタンスの**モンスターを2匹**作り、自動で戦わせたいと思っています。
3
-
4
- 長時間考えた結果、かなり無理やりですが、以下のコードで上手く動かすことができました。
5
- しかし、**ループや初期値をクラスの中に入れ込む,無駄を減らす**など、現状よりシンプルにするためにはどのようにすればよろしいでしょうか。ご教示お願い致します。
6
-
7
- **仕様**
8
- - モンスターは2匹おり
9
- - 順番に攻撃しますが、power(攻撃力)の大きい方が攻撃できます
10
- - HP0になったら終了します
2
+ いつもありとうございます
11
-
12
-
13
- ```Ruby
14
- class Monster
15
-
16
- @@count = 0
17
-
18
- attr_accessor :info
19
-
20
- def initialize(name)
21
- @name = name
22
- end
23
-
24
- def attack
25
-
26
- @@count += 1
27
-
28
- #powerの大きい方が攻撃できる
29
- if self.info[0][:power] > self.info[1][:power]
30
- self.info[0][:hp] -= self.info[1][:power]
31
- else
32
- self.info[1][:hp] -= self.info[0][:power]
33
- end
34
-
35
- puts "------"
36
- puts "第#{@@count}戦"
37
- puts "------"
38
- puts "モンスター1の残りHP #{ self.info[0][:hp] }"
39
- puts "モンスター2の残りHP #{ self.info[1][:hp] }"
40
- end
41
- end
42
-
43
- #インスタンス化
44
- mon1 = Monster.new("モンスター1")
45
- mon2 = Monster.new("モンスター2")
46
-
47
- #初期値(非常に無理やりで、ダブらせてしまった)
48
- mon1.info = [{power: 40, hp: 200}, {power: 20, hp: 100}]
49
- mon2.info = [{power: 40, hp: 200}, {power: 20, hp: 100}]
50
-
51
- loop do
52
-
53
- if mon1.info[0][:power] > mon2.info[1][:power]
54
- mon1.attack
55
-
56
- else
57
- mon2attack
58
-
59
- end
60
-
61
- #HPが0になったら終了
62
- if mon1.info[0][:hp] <= 0 || mon2.info[1][:hp] <= 0
63
- break
64
- end
65
- end
66
- ```