java超入門 17 - TOK2.comに似たソースコードがありました。
確認したところ、JAVA超入門 - TOK2.comのページでチャプターごとに学習を進められるようで、その一つのチャプターのソースコードが投稿者様のコードのようですね。
さて本題ですが、確認したところ、Console.javaについては、以下のようにソースコードを修正すればコンパイルも実行も可能になりました。
Java
1public class Console {
2 // putJyosyou()メソッドを追加
3 5
6 public static void putJyosyou(){
7 put("魔王が" + "世界を滅ぼそうとしています。");
8 putStatus();
9 }
10 public static void putCommand() throws java.io.IOException {
11 put("1 すぐに魔王を倒す");
12 put("2 修行する");
13 put("3 宿屋に泊まる");
14 int c = inputCommand();
15 switch (c) {
16 case '1': {
17 put("魔王が現れた。");
18 break;
19 }
20 case '2': {
21 part01.syugyou();
22 break;
23 }
24 case '3': {
25 if (part01.gold >= 9.95) {
26 part01.hp = part01.lv;
27 part01.gold -= 9.95;
28 }
29 // 閉じカッコを追加
30 }
31 default:{
32 put("正しいコマンドを選択してください");
33 }
34
35
36 putStatus();
37 putCommand();
38 break;
39 }
40
41 //不要な閉じカッコを削除
42 //}
43
44 }
45
46 public static int inputCommand() throws java.io.IOException {
47 int c = System.in.read();
48 if (c == 10 || c == 13) {
49 return (inputCommand());
50 }
51 return (c);
52 }
53
54 // 序章を表示ます
55 public static void put1stchapter() {
56 put("魔王は " + "この国を滅ぼそうとしている");
57 }
58
59 // ゲームクリア
60 public static void putGameClear() {
61 String s0 = part01.name + "は悪魔を倒しました";
62 put(s0);
63 System.out.print("レベル" + part01.lv);
64 if (part01.lv > 200) {
65 put("なので魔王ゴミでした");
66 } else if (part01.lv > 120) {
67 put("なので魔王弱すぎでした");
68 } else if (part01.lv > 80) {
69 put("なので余裕でした");
70 } else if (part01.lv > 50) {
71 put("でしたが倒せました");
72 } else {
73 put("で苦戦しました");
74 }
75 put("Game Clear");
76 }
77
78 // 引数を文字列として表示します
79 public static void put(String str) {
80 System.out.println(str);
81 }
82
83 public static void putGameOver() {
84 put(part01.name + "は負けました");
85 put("GAME OVER");
86 }
87
88 public static void putStatus() {
89 put("---------------------------------------------");
90 put(" " + part01.name + " LV" + part01.lv + " HP" + part01.hp + " " + part01.gold + "G");
91 put("---------------------------------------------");
92 }
93
94}
修正箇所としては、
まずdefaultでコンパイルエラーになるということでしたが、defaultの部分がcase3の閉じカッコの中に入った状態になってましたので、case3側で閉じカッコを追加し、不要な閉じカッコを削除しました。
これでConsole.javaはコンパイルできるようになります。
ただ問題のConsole.javaですが、part01のクラスを必要とするようで、part01.javaをコンパイルしておく必要があります。
念の為、以下にpart01.javaのソースコードを掲載します。
実行する際は、part01側を実行することになります。
※ご存知でしたら、申し訳ありません。
part01.javaをコンパイルしようとすると、「シンボルを見つけられません」のコンパイルエラーが出たため、
Console.java側にputJyosyou()メソッドを追加しました。
putGameClear()メソッドについては、Console.java内に存在しましたが、メソッド名に違いがあり、「putGame”C”lear()」でなければならないところを、「putGame”c"lear()」となっていましたので、大文字"C"に変更する必要があります。
※以下はpart01.javaのソースコードになります。
Java
1public class part01
2{
3 static String name = "すけさん";
4 static int lv = 30; //プレイヤーのレベル
5 static int hp = 30; //プレイヤーのHP
6 static double gold=50.0; //プレイヤーの所持金
7
8 public static void main(String[] args) throws java.io.IOException
9 {
10 Console.putJyosyou(); //序章を表示
11
12 putCommand(); //コマンドを表示
13 if(hp==0){
14 return;
15 }
16
17 //魔王を倒しに行く
18 if(lv<40){ //レベルが40未満の場合
19 Console.putGameOver(); //ゲームオーバー画面を表示
20
21 }else{ //レベルが40以上の場合
22 Console.putGameClear(); //ゲームクリアの画面を表示
23 }
24 }
25 2829
30 public static void putCommand() throws java.io.IOException
31 {
32 Console.put("1. 魔王を倒しに行く");
33 Console.put("2. 修行する");
34 Console.put("3. 宿屋に泊まる");
35 // int c = inputCommand();
36 switch(inputCommand()){
37 case '1':{ //1. 魔王を倒しに行く
38 Console.put("魔王が現れた!");
39 break;
40 }
41 case '2':{ //2. 修行する
42 syugyou();
43 break;
44 }
45 case '3':{ //3.宿屋に泊まる
46 if(gold>9.95){
47 hp=lv;
48 gold -= 9.95;
49 }
50 Console.putStatus();
51 putCommand();
52 break;
53 }
54 }
55 }
56 58
59 public static void syugyou() throws java.io.IOException
60 {
61 java.util.Random r = new java.util.Random();
62 //敵出現
63 int e = r.nextInt(9)+1; //敵の数
64 Console.put(" 敵が " + e + " 匹、現れた");
65 String m = "(゚Д゚)";
66 String s = "";
67 for(int i=0; i<e; i=i+1){
68 s = s + m;
69 }
70 Console.put(s);
71
72 //HPを減らす
73 int d = r.nextInt(8);
74 hp -= d;
75 if(hp<0){
76 hp = 0;
77 }
78 Console.put(name + " は、 "+ d +" ポイントのダメージを受けた!");
79
80 //レベル上昇
81
82 lv += e;
83 Console.put("レベルが"+lv+"になった");
84 Console.putStatus();
85 if(hp==0){
86 Console.put("GAME OVER");
87 }else{
88 putCommand();
89 }
90 }
91
92 9698
99 public static int inputCommand() throws java.io.IOException
100 {
101 int c = System.in.read();
102 if(c==10 || c==13){ //改行コード(CR又はLF)の場合
103 return(inputCommand());
104 }
105 return(c);
106 }
107
108}
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。