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

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

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

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

解決済

メインクラスをクラス分けしたい

kumathi
kumathi

総合スコア7

Java

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

4回答

-1評価

0クリップ

487閲覧

投稿2022/05/24 21:42

java初心者です。三勝で終了するグリコゲームを作ってみました。最終結果としてポイントで勝敗が決まります。それでなのですがメソッドなどを別のクラスに分けてメインメソッドをすっきりさせたいのですが自分なりに試行錯誤してみたとこをうまくいきません。今後もっと複雑なコードを書くとなると必要であると感じ質問させていただきました。心優しいどなたかご教授いただけないでしょうか。

package mygame; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Random; import java.util.Scanner; public class RspGame { public static void main(String[] args) throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); String[] rsp = {"Rock", "Scissors", "Paper"}; System.out.print("Please enter your Name:"); String playerName = reader.readLine(); String cpuName = "Computer"; int points1 = 0; int points2 = 0; int win = 0; int lose = 0; String result = ""; // save the result while (win < 3 && lose < 3) { int user = getUser(); int pc = getPc(); if(user==0 && pc==1) { System.out.println(playerName + ":" + rsp[user] + " || " + cpuName + ":"+ rsp[pc]); System.out.println("Win"); win++; points1 += 3; } else if(user==1 && pc==2) { System.out.println(playerName + ":" + rsp[user] + " || " + cpuName + ":"+ rsp[pc]); System.out.println("Win"); win++; points1 += 6; } else if(user==2 && pc==0) { System.out.println(playerName + ":" + rsp[user] + " || " + cpuName + ":"+ rsp[pc]); System.out.println("Win"); win++; points1 += 6; } else if(user==0 && pc==2) { System.out.println(playerName + ":" + rsp[user] + " || " + cpuName + ":"+ rsp[pc]); System.out.println("Lose"); lose++; points2 += 6; } else if(user==1 && pc==0) { System.out.println(playerName + ":" + rsp[user] + " || " + cpuName + ":"+ rsp[pc]); System.out.println("Lose"); lose++; points2 += 3; } else if(user==2 && pc==1) { System.out.println(playerName + ":" + rsp[user] + " || " + cpuName + ":"+ rsp[pc]); System.out.println("Lose"); lose++; points2 += 6; } else if( (user==0 && pc==0) || (user==1 && pc==1) || (user==2 && pc==2) ) { System.out.println(playerName + ":" + rsp[user] + " || " + cpuName + ":"+ rsp[pc]); System.out.println("Drew"); } System.out.println("<RESULT> " + "WIN:" + win + " LOSE:" + lose + " <SCORE> " + playerName + ":" + points1 + " || " + cpuName + ":" + points2 ); } System.out.println("Finish!!!"); System.out.println("Let's Judge.........."); if( points1 < points2 ) { System.out.println("You Lose..." + " <SCORE> " + playerName + ":" + points1 + " || " + cpuName + ":" + points2 ); } else if( points2 < points1) { System.out.println("Congratulations!! You Win!!" + " <SCORE> " + playerName + ":" + points1 + " || " + cpuName + ":" + points2 ); } else if( points1 == points2 ) { System.out.println("Wow... You Drew..." + " <SCORE> " + playerName + ":" + points1 + " || " + cpuName + ":" + points2 ); } } public static int getUser() { Scanner stdin = new Scanner(System.in); while(true) { //outpu massages System.out.println("\nPlease enter your choice"); System.out.print("(ROCK:0,SCISSORS:1、PAPER:2) --> "); if(stdin.hasNextInt()) { int number = stdin.nextInt(); if(number<=-1 || number >=3) { System.out.println("【ERROR】You can choose only 0, 1 or 2"); } else {return number;} } else {System.out.println("【ERROR】You can enter only the number 0, 1 or 2"); stdin.next(); } } } public static int getPc() { // ready for judge Random rand = new Random(); // get a value random return rand.nextInt(3); } } コード

良い質問の評価を上げる

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

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

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

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

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

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

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

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

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

BeatStar

2022/05/24 23:23

グリコゲームとは? ルールも書いていないので誰もわからないと思うんですが。
dodox86

2022/05/24 23:32

> メインメソッドをすっきりさせたいのですが自分なりに試行錯誤してみたとこをうまくいきません。 うまくいかないところを具体的に提示しないとダメでしょう。初心者を自認するなら尚更。
jimbe

2022/05/25 05:43

どのようなクラスに分けるつもりなのでしょうか。

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

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

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

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

Java

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