
###前提・実現したいこと
javaでRPGを作っています
ダメージ機能を実装し、ダメージが0だった際に以下のエラーメッセージが発生しました。
###発生している問題・エラーメッセージ
ちくわは、0ポイントのダメージを受けた Exception in thread "main" java.lang.IllegalArgumentException: bound must be positive at java.util.Random.nextInt(Unknown Source) at part01.syugyou(part01.java:59) at part01.putCommand(part01.java:35) at part01.syugyou(part01.java:71) at part01.putCommand(part01.java:35) at part01.putCommand(part01.java:42) at part01.syugyou(part01.java:71) at part01.putCommand(part01.java:35) at part01.putCommand(part01.java:42) at part01.syugyou(part01.java:71) at part01.putCommand(part01.java:35) at part01.putCommand(part01.java:42) at part01.syugyou(part01.java:71) at part01.putCommand(part01.java:35) at part01.putCommand(part01.java:42) at part01.syugyou(part01.java:71) at part01.putCommand(part01.java:35) at part01.main(part01.java:12)
###該当のソースコード
java
1public class part01 2{ 3 static String name = "ちくわ" ;// プレイヤーネーム 4 static int level = 30 ;//プレイヤーレベル 5 static int hp = 30 ; 6 static double gold = 50.0 ; 7 8 public static void main( String[] args ) throws java.io.IOException 9 { 10 putjosyou(); //序章 11 12 putCommand(); 13 14 if( hp == 0 ){ 15 return; 16 } 17 18 if( level < 40 ){ 19 putGameOver(); 20 }else{ 21 putend(); 22 } 23 } 24 25 //コマンド関数 26 public static void putCommand() throws java.io.IOException 27 { 28 put( "1.すぐに魔王を倒しに行く" ); 29 put( "2.修行する" ); 30 put( "3.宿屋に泊まる" ); 31 int c = inputCommand(); 32 if( c == '1'){ 33 put( "魔王が現れた!" ); 34 }else if ( c == '2'){ 35 syugyou(); 36 }else if( c == '3' ){ 37 if( gold >= 9.95 ){ 38 hp = level; 39 gold -= 9.95; 40 } 41 putStatus(); 42 putCommand(); 43 } 44 } 45 46 public static void syugyou() throws java.io.IOException 47 { 48 //ダメージ処理 49 java.util.Random r = new java.util.Random(); 50 int d = r.nextInt( level ); 51 hp -= d; 52 if( hp < 0 ){ 53 hp = 0; 54 } 55 put( name + "は、 " + d + "ポイントのダメージを受けた" ); 56 57 //ゴールド処理 58 java.util.Random m = new java.util.Random(); 59 int g = r.nextInt( d ); 60 put( g + "G手に入れた" ); 61 gold += g; 62 63 //レベル処理 64 int l = r.nextInt( 5 ) + 1; 65 level += l; 66 put( "レベルが " + level + " にあがった" ); 67 putStatus(); 68 if( hp == 0 ){ 69 put( "GAME OVER" ); 70 }else{ 71 putCommand(); 72 } 73 } 74 75 public static int inputCommand() throws java.io.IOException 76 { 77 int c = System.in.read(); 78 if( c == 10 || c == 13){ 79 return( inputCommand() ); 80 } 81 return( c ); 82 } 83 84 //序章の関数 85 public static void putjosyou() 86 { 87 put( "魔王が世界を滅ぼそうとしています。" ); 88 putStatus(); 89 } 90 91 public static void putStatus() 92 { 93 put( "--------------------------------------------" ); 94 put( " " + name + " Lv" + level + " HP" + hp + " " + gold + "G" ); 95 put( "--------------------------------------------" ); 96 } 97 98 public static void putGameOver () 99 { 100 put( name + "は魔王に敗れました" ); 101 put( "GAME OVER" ); 102 } 103 104 //エンディング関数 105 public static void putend() 106 { 107 String s0 = name + "は魔王を倒しました。" ; 108 put( s0 ); 109 110 System.out.print( "レベル" + level ); 111 112 if( level > 80 ){ 113 put( "なので楽勝でした" ); 114 }else if( level > 50 ){ 115 put( "なので倒せました" ); 116 }else{ 117 put( "でしたので苦戦しました"); 118 } 119 put( "GAME CLEAR!" ); 120 } 121 122 public static void put ( String str ) 123 { 124 System.out.println( str ); 125 } 126} 127

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/03/28 11:58
退会済みユーザー
2017/03/28 12:06 編集
退会済みユーザー
2017/03/28 12:03
退会済みユーザー
2017/03/28 12:09
退会済みユーザー
2017/03/28 12:12