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

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

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

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

Q&A

解決済

4回答

2028閲覧

テトリミノを回転させるプログラムでつまずきました(>人<;)

zyanpoyo

総合スコア13

Java

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

1グッド

0クリップ

投稿2017/01/31 12:26

前回、テトリスを作っていて回転を制御するプログラムを質問させてもらったものです。

あのあと考えてみて、こんなしようのプログラムを考えてみました。

mainで一番上からランダムでテトリミノが出てきたとき、テトリミノごとに番号を振っています。

例)Tetorimino == 1 だったら 「●●●●」 という形

という感じです

mainからTetoriminoを受け取って、その番号を取得したあと、
さらに回転番号をつけます。

例)Tetorimino == 1 だったら 「●●●●」 という形
さらにそこから番号入力を求めます

例)bango に1を入力したら
別の配列に入れておいた
[●


●」 ←縦一列に並んでるものと思ってください><

をmainに出すプログラムを考えました

そしてコンパイルしたところエラーが100件以上出てしまいました><
すべてのエラーの内容が「文ではありません」「;がありません」がほとんどです
どこが間違っているのかわかりません。
どこが間違っているのかご指摘お願いします(>人<;)

※配列がものすごく見づらくなってしまってすいません><
上一列の配列と
下3列の配列の位置がずれてしまってますが縦4行揃ってるものと思ってもらってください><

public class operation2 {
public static void main(String[] args) throws IOException {

/*入力の準備*/ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String[][] turnedBlock = new String[4][4]; /* テトリミノを回転させる */ if (Tetorimino == 0 ) { //テトリミノ「●●●●」の回転 turnedBlock [][] = {{"□","□","□","□"}, {"●","●","●","●"}, {"□","□","□","□"}, {"□","□","□","□"}}; System.out.plintln("回転させたい図の番号を入力してください") int bango =("u"); bango = br.readLine(); switch (bango) { case 1: turnedBlock[][] = {{"□","●","□","□"}, {"□","●","□","□"}, {"□","●","□","□"}, {"□","●","□","□"}}; break; case 2: turnedBlock[][] = {{"□","□","□","□"}, {"●","●","●","●"}, {"□","□","□","□"}, {"□","□","□","□"}}; break; } //テトリミノ「●● // ●●」の回転 } else if (Tetorimino == 1) { turnedBlock[][] = {{"□","□","□","□"}, {"□","●","●","□"}, {"□","●","●","□"}, {"□","□","□","□"}}; System.out.plintln("回転させたい図の番号を入力してください") int bango =("u"); bango = br.readLine(); switch (bango = 1) { case 1: turnedBlock[][] = {{"□","□","□","□"}, {"□","●","●","□"}, {"□","●","●","□"}, {"□","□","□","□"}}; break; } //テトリミノ「 ● // ●●●」の回転 } else if (Tetorimino == 2){ turnedBlock[][] = {{"□","●","□","□"}, {"●","●","●","□"}, {"□","□","□","□"}, {"□","□","□","□"}}; System.out.plintln("回転させたい図の番号を入力してください") int bango =("u"); bango = br.readLine(); switch (bango) { case 1: turnedBlock[][] = {{"□","●","□","□"}, {"□","●","●","□"}, {"□","●","□","□"}, {"□","□","□","□"}}; break; case 2: turnedBlock[][] = {{"□","□","□","□"}, {"●","●","●","□"}, {"□","●","□","□"}, {"□","□","□","□"}}; break; case 3: turnedBlock[][] = {{"□","●","□","□"}, {"●","●","□","□"}, {"□","●","□","□"}, {"□","□","□","□"}}; break; case 4: turnedBlock[][] = {{"□","●","□","□"}, {"●","●","●","□"}, {"□","□","□","□"}, {"□","□","□","□"}}; break; } //テトリミノ「 ■■ // ■■」の回転 } else if (Tetorimino == 3) { turnedBlock[][] = {{"□","□","□","□"}, {"□","■","■","□"}, {"■","■","□","□"}, {"□","□","□","□"}}; System.out.plintln("回転させたい図の番号を入力してください") int bango =("u"); bango = br.readLine(); switch (bango) { case 1: turnedBlock[][] = {{"□","□","□","□"}, {"□","■","□","□"}, {"□","■","■","□"}, {"□","□","■","□"}}; break; case 2: turnedBlock[][] = {{"□","□","□","□"}, {"□","□","□","□"}, {"□","■","■","□"}, {"■","■","□","□"}}; break; case 3: turnedBlock[][] = {{"□","□","□","□"}, {"■","□","□","□"}, {"■","■","□","□"}, {"□","■","□","□"}}; break; case 3: turnedBlock[][] = {{"□","□","□","□"}, {"□","■","■","□"}, {"■","■","□","□"}, {"□","□","□","□"}}; break; } //テトリミノ「■■ // ■■」の回転 } else if (Tetorimino == 4) { turnedBlock[][] = {{"□","□","□","□"}, {"■","■","□","□"}, {"□","■","■","□"}, {"□","□","□","□"}}; System.out.plintln("回転させたい図の番号を入力してください") int bango =("u"); bango = br.readLine(); switch (bango) { case 1: turnedBlock[][] = {{"□","□","□","□"}, {"□","□","■","□"}, {"□","■","■","□"}, {"□","■","□","□"}}; break; case 2: turnedBlock[][] = {{"□","□","□","□"}, {"□","□","□","□"}, {"■","■","□","□"}, {"□","■","■","□"}}; break; case 3: turnedBlock[][] = {{"□","□","□","□"}, {"□","■","□","□"}, {"■","■","□","□"}, {"■","□","□","□"}}; break; case 4: turnedBlock[][] = {{"□","□","□","□"}, {"■","■","□","□"}, {"□","■","■","□"}, {"□","□","□","□"}}; break; } //テトリミノ「 ■ // ■■■」の回転 } else if (Tetorimino == 5) { turnedBlock[][] = {{"□","□","■","□"}, {"■","■","■","□"}, {"□","□","□","□"}, {"□","□","□","□"}}; System.out.plintln("回転させたい図の番号を入力してください") int bango =("u"); bango = br.readLine(); switch (bango) { case 1: turnedBlock[][] = {{"□","■","□","□"}, {"□","■","□","□"}, {"□","■","■","□"}, {"□","□","□","□"}}; break; case 2: turnedBlock[][] = {{"□","□","□","□"}, {"■","■","■","□"}, {"■","□","□","□"}, {"□","□","□","□"}}; break; case 3: turnedBlock[][] = {{"■","■","□","□"}, {"□","■","□","□"}, {"□","■","□","□"}, {"□","□","□","□"}}; break; case 4: turnedBlock[][] = {{"□","□","■","□"}, {"■","■","■","□"}, {"□","□","□","□"}, {"□","□","□","□"}}; break; } //テトリミノ「■ // ■■■」の回転 } else { turnedBlock[][] = {{"■","□","□","□"}, {"■","■","■","□"}, {"□","□","□","□"}, {"□","□","□","□"}}; System.out.plintln("回転させたい図の番号を入力してください") int bango =("u"); bango = br.readLine(); switch (bango) { case 1: turnedBlock[][] = {{"□","■","■","□"}, {"□","■","□","□"}, {"□","■","□","□"}, {"□","□","□","□"}}; break; case 2: turnedBlock[][] = {{"□","□","□","□"}, {"■","■","■","□"}, {"□","□","■","□"}, {"□","□","□","□"}}; break; case 3: turnedBlock[][] = {{"□","■","□","□"}, {"□","■","□","□"}, {"■","■","□","□"}, {"□","□","□","□"}}; break; case 4: turnedBlock[][] = {{"■","□","□","□"}, {"■","■","■","□"}, {"□","□","□","□"}, {"□","□","□","□"}}; break; } }

}
}

tantanegg👍を押しています

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

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

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

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

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

guest

回答4

0

ベストアンサー

ここじゃない?

intに文字列を代入しようとしている。
int bango =("u");

turnedBlockはすでに変数宣言しているので、代入の箇所であっても、再度変数宣言のように書かない。
turnedBlock[][]

投稿2017/02/01 04:08

編集2017/02/01 04:11
tantanegg

総合スコア213

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

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

zyanpoyo

2017/02/01 11:42

ほんとでした>< int bangoには数字を入れてませんでした turnedBlock[][]のまえにStringをつけて配列名を変えたら24個までエラーを減らせました あとは自分でなんとかできると思います ありがとうございます!
guest

0

Eclipseを使っていないんですね。とても出来る先生がいるんですね。
こうじゃないかな、で書きます。

「文ではありません」

配列は{}で囲むのではなく、[]です。
JavaScriptではJson形式を{}で書けますが、Javaではそのような書き方はありません。
また、JavaScriptでも配列は[]で書きます。

「;がありません」
上記の修正を行うと消えるかもしれません。
コンパイラーが一つの間違いで複数のエラーを出すことはよくあります。
構文が違うのできちんとコードを評価できていないためです。

投稿2017/02/01 01:14

tantanegg

総合スコア213

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

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

carimatics

2017/02/01 03:26

Javaの配列リテラルは波括弧({})で囲みます。 以下は正しい式です。 int[] nums = {1, 2, 3};
tantanegg

2017/02/01 04:03

あ、ほんとだ。勘違いで回答してしまいすみません。
zyanpoyo

2017/02/01 11:41

turnedBlock[][]のまえにStringをつけて配列名を変えたら24個までエラーを減らせました あとは自分でなんとかできると思います ありがとうございます!
guest

0

「エラーが100件以上出てしまいました><」なんて言われても「一つずつ対処すればいいのでは?」としか…。
エラーメッセージを読めば以下のことくらいは直ぐに分かりそうなものですが…。

  • 宣言されていない変数を使用している
  • 文字列をint型の変数に代入しようとしている
  • 数値と文字列を比較しようとしている
  • 配列変数への代入の方法が間違っている

一気にガリガリとコードを書いてコンパイル、というやり方だと何が原因でエラーになったか非常に分かりにくいので、こまめにコンパイルしたほうが良いと思いますよ。
初心者の内は特にそうです。

というかJavaを書くならIDEを使うべきだと思いますので、講義で禁止されてないのなら導入を強くオススメします。

投稿2017/01/31 16:58

carimatics

総合スコア740

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

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

zyanpoyo

2017/02/01 11:40

turnedBlock[][]のまえにStringをつけて配列名を変えたらだいぶエラーを減らせました ありがとうございます! IDEは初めて聞きました 入れてみます
guest

0

System.out.plintlnの末尾にセミコロンが無いですね。
また、コードはコード用の記述法に修正してください。

投稿2017/01/31 13:52

yona

総合スコア18155

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

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

zyanpoyo

2017/02/01 11:39

;抜けてました ご指摘ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問