回答編集履歴

3

バグ修正

2019/07/11 01:43

投稿

jimbe
jimbe

スコア12632

test CHANGED
@@ -106,7 +106,7 @@
106
106
 
107
107
  //------------------
108
108
 
109
- public static void putStatus(int intel,int hp){
109
+ public void putStatus(int intel,int hp){
110
110
 
111
111
  System.out.println("+++++++++++++++++++++++++++");
112
112
 
@@ -144,7 +144,7 @@
144
144
 
145
145
  case 1:
146
146
 
147
- this.move(Main world); //パラメータ追加
147
+ this.move(world); //パラメータ追加
148
148
 
149
149
  break;
150
150
 
@@ -168,15 +168,15 @@
168
168
 
169
169
  switch(val){
170
170
 
171
- case 1:
171
+ case 1:
172
172
 
173
173
  System.out.println("校舎裏に移動した。");
174
174
 
175
175
  //hanako.upKoukando(); //削除
176
176
 
177
- //場所1(校舎裏)に居るヒロインを得て, 居たら(null で無ければ)好感度アップ
177
+ //その場所に居るヒロインを得て, 居たら(null で無ければ)好感度アップ
178
178
 
179
- Heroine heroine = world.getHeroine(1);
179
+ Heroine heroine = world.getHeroine(val);
180
180
 
181
181
  if(heroine != null) {
182
182
 
@@ -192,7 +192,7 @@
192
192
 
193
193
  break;
194
194
 
195
- //case 2 も上と同様(場所が違うだけ)の為省略
195
+ //case 2 も上と同様の為省略
196
196
 
197
197
  (略)
198
198
 

2

バグ: Main を生成するように修正

2019/07/11 01:43

投稿

jimbe
jimbe

スコア12632

test CHANGED
@@ -18,25 +18,39 @@
18
18
 
19
19
  public class Main{
20
20
 
21
- static int dayCount=1;
21
+ //修正: static を削除, ヒロインを追加
22
22
 
23
- //追加: 登場人物は Main("世界")に常に存在する
23
+ int dayCount=1;
24
24
 
25
- static Taro taro;
25
+ Taro taro;
26
26
 
27
- static Hanako hanako;
27
+ Hanako hanako;
28
28
 
29
- static Yoshiko yoshiko;
29
+ Yoshiko yoshiko;
30
30
 
31
31
 
32
32
 
33
+ //修正: "世界"を生成して起動する.
34
+
33
35
  public static void main(String[] args){
36
+
37
+ Main main = new Main();
38
+
39
+ main.start();
40
+
41
+ }
42
+
43
+
44
+
45
+ //コンストラクタ追加: "世界"もオブジェクトとして扱うため
46
+
47
+ Main() {
34
48
 
35
49
  taro = new Taro();
36
50
 
37
51
  taro.name = "たろう";
38
52
 
39
- //追加: ヒロインも生成
53
+ //ヒロイン追加
40
54
 
41
55
  hanako = new Hanako();
42
56
 
@@ -46,13 +60,21 @@
46
60
 
47
61
  yoshiko.setName("よしこ");
48
62
 
63
+ }
49
64
 
65
+
66
+
67
+ //追加: "世界"は動き出す
68
+
69
+ void start() {
70
+
71
+ dayCount=1;
50
72
 
51
73
  for(int i=1;i<11;i++){
52
74
 
53
75
  putStatus(taro.intelligence,taro.hp);
54
76
 
55
- taro.action();
77
+ taro.action(this);
56
78
 
57
79
  dayCount++;
58
80
 
@@ -60,9 +82,11 @@
60
82
 
61
83
  }
62
84
 
85
+
86
+
63
87
  //追加: その場所に居るヒロインを返す. 居ない場合は null.
64
88
 
65
- public static Heroine getHeroine(int location) {
89
+ public Heroine getHeroine(int location) {
66
90
 
67
91
  switch(val){
68
92
 
@@ -105,6 +129,26 @@
105
129
  Taroクラス
106
130
 
107
131
  ```java
132
+
133
+ public void action(Main world){ //パラメータ追加
134
+
135
+ Scanner scan = new Scanner(System.in);
136
+
137
+ System.out.println("行動を選んでください。");
138
+
139
+ System.out.println("1.移動 2.勉強 3.寝る");
140
+
141
+ int val = scan.nextInt();
142
+
143
+ switch(val){
144
+
145
+ case 1:
146
+
147
+ this.move(Main world); //パラメータ追加
148
+
149
+ break;
150
+
151
+ (略)
108
152
 
109
153
  public void move(Main world){ //パラメータ追加: Mainクラスを登場人物の住む"世界"とする
110
154
 
@@ -150,4 +194,6 @@
150
194
 
151
195
  //case 2 も上と同様(場所が違うだけ)の為省略
152
196
 
197
+ (略)
198
+
153
199
  ```

1

動作確認していないことを追記

2019/07/11 01:40

投稿

jimbe
jimbe

スコア12632

test CHANGED
@@ -5,6 +5,10 @@
5
5
  私なら, ヒロインは主人公と同等にゲームの世界に存在するオブジェクトのほうが良いようにイメージします.
6
6
 
7
7
  ですので move の度に new はせず, Taro 同様に先に Main で new し, Taro の行動に応じてその場所に居るヒロインを得て変化するようにします.
8
+
9
+
10
+
11
+ **注: 以下のコードは切り貼りしただけで, コンパイル等確認していません.**
8
12
 
9
13
 
10
14