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

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

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

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

Q&A

0回答

441閲覧

Javaの標準入力について

tamajava

総合スコア3

Java

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

0グッド

0クリップ

投稿2021/11/01 01:31

Java初心者です。大学の課題で、三目並べを自分(標準入力で打つ手を決める)とコンピュータ(決められた優先順位によって打つ手を決める)で行うソースコードを書いています。
今は自分で打つ手を決めるHumanPlayerクラスを書いているのですが、標準入力が上手くできていないのか下のソースコードをコンパイルしようとするとnextクラス(x,y座標を確定させるZahyoクラスにx,yを渡す)にて「x,yが初期化されていません」とエラーが出てしまいます。
どう改善すれば正しく動きますかね…?
※文字数の都合で他のクラスが書けないので、必要であれば回答欄に追記します。

<ソースコード(一部のエラー出力は省略)>
import java.util.Scanner;

/** 標準入力から次の手を入力する人間フ゜レーヤー /
class HumanPlayer extends AbstractPlayer {
/
* キーボード入力用のスキャナ */
private Scanner sc;

/** 引数は AbstractPlayer と同じ
@param name プレーヤー名
@param maruBatsu このプレーヤーがマルかバツか( Ban.MARU または Ban.BATSU ) */
HumanPlayer(String name, int maruBatsu) {
super(name, maruBatsu);
sc = new Scanner(System.in);
Ban ban = new Ban();
int x = sc.nextInt();
int y = sc.nextInt();
if(ban.isBlank(x, y) == false) {
System.out.println("その場所はすでに置かれています");
sc = new Scanner(System.in);
x = sc.nextInt();
y = sc.nextInt();
}
}

/** 次の手を返す.次の手はキーボード(標準入力)から得る.
@param ban 盤
@return 次の手(の座標) */
Zahyo next(Ban ban) {
int x;
int y;
System.out.print("どこに置きますか: ");
return new Zahyo(x,y);
}
}

<出力先のソースコード>
class SanmokuCui {
public static void main(String[] args) {
HumanPlayer p1 = new HumanPlayer("あなた", Ban.MARU);
SimplePlayer p2 = new SimplePlayer("コンピュータ", Ban.BATSU);
Ban ban = new Ban();
GameField gf = new GameField(p1, p2, ban);
gf.play();
}
}

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

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

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

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

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

BeatStar

2021/11/01 01:42

もう一つの質問( https://teratail.com/questions/364876 )はどうしたの? BAを選びましょう。それか、せめて返信ぐらいはしましょう。 質問して放置すれば誰かが答えをくれるという甘ったれた考えは捨てましょう。
y_waiwai

2021/11/01 01:53

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

2021/11/01 01:58

そして、エラーが出たなら、エラーメッセージを提示しましょう エラーメッセージは、いらぬ翻訳省略しないで、出たそのママをコピペで提示してください
jimbe

2021/11/01 05:08

> nextクラス 見当たりません。 > ※文字数の都合で他のクラスが書けない 三目並べで数千文字のコードとは、相当コンピュータのパターンが多いのでしょうか。 [マルバツゲームは引き分けになる](https://manabitimes.jp/math/1385 ) もし必要になっても、回答欄では無く Github のような外部サイトに載せてそのリンクをこちらのご質問にご提示頂いたほうが良いように思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

アカウントをお持ちの方は

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

ただいまの回答率
85.43%

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

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

質問する

関連した質問