質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
Windows 7

Microsoft Windows 7は過去にリリースされたMicrosoft WindowsのOSであり、Windows8の1代前です。2009年の7月にリリースされ販売されました。Windows7の前はWindowsVistaで、その更に3年前にリリースされました。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

解決済

Java実行時エラー Exception in thread "main" java\.lang\.IllegalArgumentException: bound must be positive

Re_TKW
Re_TKW

総合スコア0

Windows 7

Microsoft Windows 7は過去にリリースされたMicrosoft WindowsのOSであり、Windows8の1代前です。2009年の7月にリリースされ販売されました。Windows7の前はWindowsVistaで、その更に3年前にリリースされました。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

2回答

0評価

0クリップ

6797閲覧

投稿2017/03/28 11:38

###前提・実現したいこと
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

public class part01 { static String name = "ちくわ" ;// プレイヤーネーム static int level = 30 ;//プレイヤーレベル static int hp = 30 ; static double gold = 50\.0 ; public static void main\( String\[\] args \) throws java\.io\.IOException { putjosyou\(\); //序章 putCommand\(\); if\( hp == 0 \){ return; } if\( level < 40 \){ putGameOver\(\); }else{ putend\(\); } } //コマンド関数 public static void putCommand\(\) throws java\.io\.IOException { put\( "1\.すぐに魔王を倒しに行く" \); put\( "2\.修行する" \); put\( "3\.宿屋に泊まる" \); int c = inputCommand\(\); if\( c == '1'\){ put\( "魔王が現れた!" \); }else if \( c == '2'\){ syugyou\(\); }else if\( c == '3' \){ if\( gold >= 9\.95 \){ hp = level; gold -= 9\.95; } putStatus\(\); putCommand\(\); } } public static void syugyou\(\) throws java\.io\.IOException { //ダメージ処理 java\.util\.Random r = new java\.util\.Random\(\); int d = r\.nextInt\( level \); hp -= d; if\( hp < 0 \){ hp = 0; } put\( name \+ "は、 " \+ d \+ "ポイントのダメージを受けた" \); //ゴールド処理 java\.util\.Random m = new java\.util\.Random\(\); int g = r\.nextInt\( d \); put\( g \+ "G手に入れた" \); gold \+= g; //レベル処理 int l = r\.nextInt\( 5 \) \+ 1; level \+= l; put\( "レベルが " \+ level \+ " にあがった" \); putStatus\(\); if\( hp == 0 \){ put\( "GAME OVER" \); }else{ putCommand\(\); } } public static int inputCommand\(\) throws java\.io\.IOException { int c = System\.in\.read\(\); if\( c == 10 || c == 13\){ return\( inputCommand\(\) \); } return\( c \); } //序章の関数 public static void putjosyou\(\) { put\( "魔王が世界を滅ぼそうとしています。" \); putStatus\(\); } public static void putStatus\(\) { put\( "--------------------------------------------" \); put\( " " \+ name \+ " Lv" \+ level \+ " HP" \+ hp \+ " " \+ gold \+ "G" \); put\( "--------------------------------------------" \); } public static void putGameOver \(\) { put\( name \+ "は魔王に敗れました" \); put\( "GAME OVER" \); } //エンディング関数 public static void putend\(\) { String s0 = name \+ "は魔王を倒しました。" ; put\( s0 \); System\.out\.print\( "レベル" \+ level \); if\( level > 80 \){ put\( "なので楽勝でした" \); }else if\( level > 50 \){ put\( "なので倒せました" \); }else{ put\( "でしたので苦戦しました"\); } put\( "GAME CLEAR!" \); } public static void put \( String str \) { System\.out\.println\( str \); } }

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Windows 7

Microsoft Windows 7は過去にリリースされたMicrosoft WindowsのOSであり、Windows8の1代前です。2009年の7月にリリースされ販売されました。Windows7の前はWindowsVistaで、その更に3年前にリリースされました。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。