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

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

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

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

Q&A

解決済

1回答

663閲覧

Javaを使ったじゃんけんゲームで分からない箇所があるので教えて頂けないでしょうか

Aurora

総合スコア2

Java

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

0グッド

0クリップ

投稿2020/11/08 12:12

編集2020/11/08 13:57

1、コンピューターの手を入力する
2、「じゃんけんぽん」と表示して人間が手を入力する
3、勝敗の判定を行い結果を表示する
4、続行するか尋ね、人間が希望すれば1に戻る
5、〇勝〇敗〇分けでしたと表示して終了する
4までは書けたのですが、5の勝敗をint型の配列に集計して表示することが出来なく困っております。
どなたか教えて頂けると助かります

public class Janken4 { public static void main(String[] args) { int[] total = {0, 0, 0}; int choice = 0; do { System.out.println("じゃんけんぽん"); int me = Input.getInt("グー=1 チョキ=2 パー=3"); int comp = computer(); result(me, comp); choice = Input.getInt("続ける=1 止める=2"); }while(choice==1); if(choice!=1) { System.out.println("あなたの"+ total[0] +"勝" + total[1] + "敗" + total[2] + "分けです"); } } //コンピューターの手を決定する public static int computer() { int hand = (1 + (int)(Math.random() * 3)); return hand; } //勝敗を決める public static void result(int a, int b) { if(a==1 && b==1) { System.out.println("あなたはグー。私もグー。おあいこです"); }else if(a==1 && b ==2) { System.out.println("あなたはグー。私はチョキ。あなたの勝ちです"); }else if(a==1 && b ==3) { System.out.println("あなたはグー。私はパー。私の勝ちです"); }else if(a==2 && b ==1) { System.out.println("あなたはチョキ。私はグー。私の勝ちです"); }else if(a==2 && b ==2) { System.out.println("あなたはチョキ。私もチョキ。おあいこです"); }else if(a==2 && b ==3) { System.out.println("あなたはチョキ。私はパー。あなたの勝ちです"); }else if(a==3 && b ==1) { System.out.println("あなたはパー。私はグー。あなたの勝ちです"); }else if(a==3 && b ==2) { System.out.println("あなたはパー。私はチョキ。私の勝ちです"); }else if(a==3 && b ==3) { System.out.println("あなたはパー。私もパー。おあいこです"); } } //勝敗を記録して返す。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_waiwai

2020/11/08 12:53

このままではコードが読めないので、質問を編集し、<code>ボタンを押し、出てくる’’’の枠の中にコードを貼り付けてください
Aurora

2020/11/08 13:37

不慣れで申し訳ないです。修正しましたのでよろしくお願い致します。
guest

回答1

0

ベストアンサー

スコアが付けられないのは、「result」関数が結果を表示するだけになっているからですね。関数の定義を変更して結果を「main」関数に返却し、それを配列に代入すれば良いと思います。

main

1public static void main(String[] args) { 2   : 3 int comp = computer(); 4 int ret = result(me, comp); 5 // 結果を配列へ代入 6   : 7}

result

1public static int result(int a, int b) { 2 int ret; 3 // 判定処理を行う 4 // 結果を変数に代入 5 return ret; 6}

投稿2020/11/08 13:51

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Aurora

2020/11/08 16:25

回答を頂いてから試行錯誤を繰り返しているのですが、いまだに解決できず、申し訳ないのですが 「結果を配列へ代入」 「判定処理を行う」 「結果を変数に代入」 の箇所を1行ずつでもいいので具体的に教えて頂けないでしょうか?
退会済みユーザー

退会済みユーザー

2020/11/08 16:47

「判定処理を行う」と「結果を変数に代入」は、じゃんけんの勝敗に関することよね。例えば「勝ち:0、負け:1、引き分け:2」などとして「if文」の中に追加してみてください。 System.out.println("あなたはグー。私はチョキ。あなたの勝ちです"); ret = 0; 「結果を配列に代入」は受け取った結果(この場合は勝ち)を「total」配列に追加すれば良いので if ( ret == 0 ) total[0] += 1; みたいな感じでしょうか。他のケースも同様に記述すればできると思われます。
Aurora

2020/11/08 17:15

迅速な回答ありがとうございます。 当方学校に通い始めて一か月ほどで、朝から丸一日考えてもわからず困っていましたが、お陰様で解決出来ました。 他のプログラムの際にも使えると思いますのでしっかりと覚えておきます。 重ね重ねありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問