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

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

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

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

Q&A

解決済

1回答

842閲覧

変数を1秒間表示させたい

lop000p

総合スコア29

Java

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

0グッド

0クリップ

投稿2021/11/10 01:29

編集2021/11/10 02:03
||  ━━━       //System.out.println(" || " + matchPatternPic.get(targetIndex)); ||  ━━━       //System.out.println(" || " + matchPatternPic.get(targetIndex)); ||  ━━━       //System.out.println(" || " + matchPatternPic.get(targetIndex)); ||  ━━━       //System.out.println(" || " + matchPatternPic.get(targetIndex)); ||  ━━━       //System.out.println(" || " + matchPatternPic.get(targetIndex)); ||  ━━━       //System.out.println(" || " + matchPatternPic.get(targetIndex));  ↓ ||           //System.out.println(" || " + matchPatternPic.get(targetIndex)); ||           //System.out.println(" || " + matchPatternPic.get(targetIndex)); ||           //System.out.println(" || " + matchPatternPic.get(targetIndex));  ||           //System.out.println(" || " + matchPatternPic.get(targetIndex));  ||           //System.out.println(" || " + matchPatternPic.get(targetIndex));  ||  ━━━        //System.out.println(" || " + matchPatternPic.get(targetIndex)); 

したいこと
matchPatternPic.get(targetIndex)の部分、”━━━”を1秒間のみ表示させたいです。
上の状態だと常に━━━が表示されていますが、順に表示させて、動きをコンソール上で実装したいのですが、
検索で見つけられませんでした。
https://docs.oracle.com/javase/jp/8/docs/api/java/util/Timer.html
timerでの実装やthreadを考慮しましたが、1秒だけ表示させるという処理がわかりません。
このような実装はtimerメソッドを活用するのでしょうか?
ほかになにか使えるメソッドなどありましたら教えていただきたいです。

  // 10秒待つ
try {
Thread.sleep(10 * 1000);
} catch (InterruptedException e) {
e.printStackTrace();
}

試し1  下記試してみましたが表示されたままでした
System.out.println(" || " + + matchPatternPic.get(targetIndex));
try {
Thread.sleep(1 * 1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.printf("\033[2J");

試し2
System.out.println(" || " + + matchPatternPic.get(targetIndex));
try {
Thread.sleep(1 * 1000);
System.out.printf("\033[2J");
} catch (InterruptedException e) {
e.printStackTrace();
}

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

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

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

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

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

m.ts10806

2021/11/10 01:50

10を1にすればいいだけでは?
m.ts10806

2021/11/10 01:51

というかそもそも全部コメントアウトされてるような
Crimson_Tide

2021/11/10 01:56

ターミナルで特定行だけ消去ってのはわかりませんが、 System.out.printf("\033[2J"); で画面がクリアされるので、sleep後クリアして全体を再描画していけばいけそうな気がします
lop000p

2021/11/10 01:58

try { Thread.sleep(1 * 1000); } catch (InterruptedException e) { e.printStackTrace(); } 1で試してみたのですが、1秒後に表示され続けるのですが、1秒表示したあと、表示しない実装をしたいです。
m.ts10806

2021/11/10 02:00

コンソールをクリアしたいということ? それならもう少し具体的に記載を。
lop000p

2021/11/10 02:06

ありがとうございます System.out.printf("\033[2J");ためしましたが、クリアされませんでした。 ━━━ を1秒間のみ表示させたいです。テトリスのように上から下に━━━ が落ちてくるようにさせたいです。
m.ts10806

2021/11/10 02:10

目的がよくわかりません。 WebなどGUIならともかく、CUIで標準出力した情報をクリアというのが。
dodox86

2021/11/10 02:15

CUIで、ゲームっぽくコンソール上に表示しているキャラクター(文字)を自在に表示したり消したりしたい、ということでしょう。
dodox86

2021/11/10 02:18

> System.out.printf("\033[2J");ためしましたが、クリアされませんでした。 いただいたアドバイスの意味を理解してから使いましょう。エスケープシーケンスです。それが有効かどうかはターミナル(端末、コンソール)によります。
jimbe

2021/11/10 02:18

言ってしまえば、現状で「テトリスをコンソールで作ろうというのは無謀」に思います。 素直に (Java であれば) Swing で行ったほうがまだマシではないでしょうか。
lop000p

2021/11/10 02:41

承知いたしました。 アドバイス頂きましてありがとうございます!
guest

回答1

0

自己解決

コンソールなので表示したものは消せませんでした
アドバイス頂きありがとうございました。

投稿2021/11/10 12:09

lop000p

総合スコア29

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問