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

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

ただいまの
回答率

90.32%

  • Java

    14448questions

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

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

解決済

回答 4

投稿

  • 評価
  • クリップ 0
  • VIEW 466

zyanpoyo

score 1

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

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

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;
}
}
}
}

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

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

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

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

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

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

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

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

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • 退会済みユーザー

    2017/02/01 11:19

    こちらの質問が他のユーザから「やってほしいことだけを記載した丸投げの質問」という指摘を受けました
    「質問を編集する」ボタンから編集を行い、調査したこと・試したことを記入していただくと、回答が得られやすくなります。

回答 4

checkベストアンサー

0

ここじゃない?

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

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

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/02/01 20:42

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

    キャンセル

0

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/02/01 20:39

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

    キャンセル

0

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

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

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

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/02/01 20:40

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

    キャンセル

-1

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

「文ではありません」

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

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/02/01 10:57

    頑張れー

    キャンセル

  • 2017/02/01 12:26

    Javaの配列リテラルは波括弧({})で囲みます。
    以下は正しい式です。

    int[] nums = {1, 2, 3};

    キャンセル

  • 2017/02/01 13:03

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

    キャンセル

  • 2017/02/01 20:41

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

    キャンセル

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

  • Java

    14448questions

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