質問編集履歴

1

ほかのクラスを記入しました

2017/04/23 05:58

投稿

tomagurosu
tomagurosu

スコア37

test CHANGED
File without changes
test CHANGED
@@ -1,5 +1,159 @@
1
1
  ```Java
2
2
 
3
+ public class Hero{
4
+
5
+ String name;
6
+
7
+ int hp;
8
+
9
+ int atk;
10
+
11
+ boolean def; //防御状態かどうか
12
+
13
+ boolean esc; //逃走状態かどうか
14
+
15
+ Hero(){
16
+
17
+ this.hp = 100;
18
+
19
+ this.atk = 15;
20
+
21
+ }
22
+
23
+ void act(){
24
+
25
+ System.out.println("1 攻撃 2防御 3逃走");
26
+
27
+ int commandSelect = new java.util.Scanner(System.in).nextInt(); //コマンドの入力
28
+
29
+ switch (commandSelect){
30
+
31
+ case 1:
32
+
33
+ attack(); //アタックメソッドの呼び出し
34
+
35
+ break;
36
+
37
+ case 2:
38
+
39
+ defence(); //ディフェンスメソッドの呼び出し
40
+
41
+ break;
42
+
43
+ case 3:
44
+
45
+ escape(); //逃走メソッドの呼び出し
46
+
47
+ break;
48
+
49
+ }
50
+
51
+ }
52
+
53
+ void attack(){
54
+
55
+ int damage = (int)((Math.random()+1)*this.atk); //自分の攻撃力×1.0^1.9のダメージを生成
56
+
57
+ e.hp -= damage;
58
+
59
+ System.out.println("あなたは"+e.name+"に"+damage+"ダメージ与えた!!\r\n残りの体力は"+e.hp);
60
+
61
+ }
62
+
63
+ void defence(){
64
+
65
+ def = true;
66
+
67
+ }
68
+
69
+ void escape(){
70
+
71
+ int a = (int)(Math.random()*10); //二分の一で逃げれるかどうか
72
+
73
+ if (a >= 4 ){
74
+
75
+ esc = true;
76
+
77
+ }else{
78
+
79
+ esc = false;
80
+
81
+ }
82
+
83
+ }
84
+
85
+ }
86
+
87
+ ```
88
+
89
+ ```Java
90
+
91
+ public class Enemy{
92
+
93
+ String name;
94
+
95
+ int atk;
96
+
97
+ int hp;
98
+
99
+ Enemy(){
100
+
101
+ this.hp = 200;
102
+
103
+ this.atk = 5;
104
+
105
+ this.name = "スライム";
106
+
107
+ }
108
+
109
+ void act(){
110
+
111
+ int a = new java.util.Random().nextInt(2)++;
112
+
113
+ switch (a){
114
+
115
+ case 1:
116
+
117
+ attack();
118
+
119
+ break;
120
+
121
+ case 2:
122
+
123
+ grin();
124
+
125
+ break;
126
+
127
+ }
128
+
129
+ }
130
+
131
+ void attack(){
132
+
133
+ int damage = (int)((Math.random()+1)*this.atk); //自分の攻撃力×1.0^1.9のダメージを生成
134
+
135
+ h.hp -= damage;
136
+
137
+ if (h.def == true){
138
+
139
+ damage = damage/2;
140
+
141
+ }
142
+
143
+ System.out.println(tihs.name+"の攻撃"+damage+"のダメージを食らった!!");
144
+
145
+ }
146
+
147
+ void grin(){
148
+
149
+ System.out.println(this.name+"はにやにやしている");
150
+
151
+ }
152
+
153
+ }
154
+
155
+ ``````Java
156
+
3
157
  public class BattleSystem{
4
158
 
5
159
  public static void main(String[] args){
@@ -51,3 +205,7 @@
51
205
  簡単なゲームを作っているのですが
52
206
 
53
207
  上記のそれぞれのactメソッドにはswitchでattackメソッドなどコマンド入力で選べるようにしてあるのですがHeroクラスのattackメソッドではEnemyクラスのhpフィールドといったふうにそれぞれがそれぞれのフィールドにアクセスしたいのですがアクセスすることができません。どうすればいいでしょうか?よろしくお願いします
208
+
209
+ 追記 すみませんほかのクラスを記入するの忘れていました、、、
210
+
211
+ 具体的にはHeroクラスのattackメソッドでe.hpを使えない、といった感じです。追加しましたので改めてよろしくお願いします。