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

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

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

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

Q&A

解決済

1回答

678閲覧

HitandBlowの作り方 Java

退会済みユーザー

退会済みユーザー

総合スコア0

Java

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

0グッド

0クリップ

投稿2021/11/30 10:56

編集2021/11/30 11:20

java

1public class sampul1{ 2 public static void main(String[] args) { 3 //ゲーム説明 4 System.out.println("このゲームは相手の3桁の数字を当てるゲームです"); 5 System.out.println("数字、桁両方合っていればHit、数字のみならばBlowと表示されます。"); 6 7 //ゲーム開始(player1の入力) 8 String name="p1"; 9 System.out.println(name+"さんは3桁の数字を入力してください"); 10 int number=new java.util.Scanner(System.in).nextInt(); 11 if(number<=99||number>999){ 12 System.out.println("数字は3桁です"); 13 System.out.println("再入力してください"); 14 int number1=new java.util.Scanner(System.in).nextInt(); 15 } 16 // player2の入力 17 String name1="p2"; 18 int count=1; 19 System.out.println(name1+"さんは相手の3桁の数字を予想してください"); 20 int input=new java.util.Scanner(System.in).nextInt(); 21 if(input<=99||input>=1000) { 22 System.out.println("数字は3桁です。"); 23 System.out.println("再入力してください"); 24 int input2=new java.util.Scanner(System.in).nextInt(); 25 } 26 if(input==number) { 27 System.out.println("1回で正解しました。おめでとうございます!"); 28 } 29 while(input!=number) { 30 System.out.println("違います、再入力してください"); 31 int a=new java.util.Scanner(System.in).nextInt(); 32 count++; 33 if(a==number) { 34 System.out.println(name1+"さんは"+count+"回目で正解しました。"); 35 break; 36 } 37 } 38 39 40 41 42 43 } 44} 45 46コード 47```### 前提・実現したいこと 48HitandBlowのヒント機能 49### 発生している問題・エラーメッセージ 50 51Javaを独学でスッキリJava入門1週読み終えて、初めてのアウトプットでHitandBlowを作っています。 52①数字と桁両方合っているHitと数字のみが合っているBlowの機能を付けたいです。 53恐らくlengthを使うのかなと予想はしていますが、これをどこに活用すれば良いのか分かりません。 54 55### 該当のソースコード 56 57 58 59 60### 試したこと 61 62### 補足情報(FW/ツールのバージョンなど) 63出来れば自分で考えたいので、答えというよりかは2~3行ぐらいのヒントを書いてもらって考え方を教えて貰いたいです。 64 65ここにより詳細な情報を記載してください。

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

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

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

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

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

BeatStar

2021/11/30 11:14

コードは"<code>"または"<コード>"のボタンを押して出てくるやつの中に書きましょう。 今のままではかなり読みづらいです。 質問は編集できるので編集してください。
退会済みユーザー

退会済みユーザー

2021/11/30 11:20

ありがとうございます。変更致しました。
jimbe

2021/11/30 11:26

まず、 Scanner は、同一の入力元から複数作るモノではありません。 一度作って変数に保存して使い回してください。
jimbe

2021/11/30 12:01 編集

> 恐らくlengthを使うのかなと予想はしています length とは何で、何に使えるつもりで「予想」しているのでしょうか。 プログラムを作ることは、既存の組み合わせをさらに組み合わせていく作業です。 「乗り物を作りたいです。ゴムを使うと予想しています」にどこまで意味があるでしょうか? > 2~3行ぐらいのヒントを書いてもらって考え方を教えて貰いたい まずは「数字、桁両方合っていればHit、数字のみならばBlowと表示」の「表示部分だけ」のメソッドを作ってみては如何でしょうか。判定自体はまだ出来ませんので、表示だけ、です。判定の結果はパラメータででも貰う形で良いかと思います。 ・・・ヒント無しでもとにかくゲームが動作するようにするのが先かもしれませんね。
momodx

2021/11/30 12:23

3桁セットのままでは扱いづらいと思うので、私だったら1桁ずつバラしますね。こんな感じで。 int third = (input % 1000) / 100; // 3ケタ目
guest

回答1

0

ベストアンサー

java

1 int[] a = { 3, 4, 5 }, b = { 1, 3, 5 }; 2 int hit = 0, blow = 0; 3 for (int i = 0; i < 3; i++) 4 for (int j = 0; j < 3; j++) 5 if (a[i] == b[j]) 6 if (i == j) hit++; else blow++;

投稿2021/11/30 21:01

kazuma-s

総合スコア8224

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

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

jimbe

2021/12/01 04:20

ゲームの仕様として "111" に対し "110" とした場合等にどうするかも考慮する必要があるということですね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問