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

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

新規登録して質問してみよう
ただいま回答率
85.47%
C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

2回答

2105閲覧

文字を点滅させたいのですが,,,

akaikesan

総合スコア23

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2019/05/23 01:26

編集2019/05/23 01:52

前提・実現したいこと

コンソール上の文字を点滅させたい。

発生している問題・エラーメッセージ

ただ文字がそのまま表示されるだけで点滅もしません

該当のソースコード

c++

1int blnkc = 0; 2while(blnkc != 6) 3 { 4 int waitcount = 1000000; 5 int delay = 1; 6 int waitcount2 = 1000000; 7 int delay2 = 1; 8 9 while(1) 10 { 11 if(delay%waitcount == 0) 12 { 13 for (int y = 0; y < puyostack.GetLine(); y++) 14 { 15 for (int x = 0; x < puyostack.GetColumn(); x++) 16 { 17 if (field_array_check[y*puyostack.GetColumn() + x] == CHECKED) 18 {// 19 mvaddch(y,x,'.'); 20 } 21 } 22 } 23 break; 24 } 25 delay++; 26 } 27 28 while(1) 29 { 30 if(delay2%waitcount2 == 0) 31 { 32 for (int y = 0; y < puyostack.GetLine(); y++) 33 { 34 for (int x = 0; x < puyostack.GetColumn(); x++) 35 { 36 if (field_array_check[y*puyostack.GetColumn() + x] == CHECKED) 37 { 38 39 switch (puyostack.GetValue(y,x)) 40 { 41 case NONE: 42 attrset(COLOR_PAIR(0)); 43 mvaddch(y, x, '.'); 44 break; 45 case RED: 46 attrset(COLOR_PAIR(4)); 47 mvaddch(y, x, 'R'); 48 break; 49 case BLUE: 50 attrset(COLOR_PAIR(1)); 51 mvaddch(y, x, 'B'); 52 break; 53 case GREEN: 54 attrset(COLOR_PAIR(2)); 55 mvaddch(y, x, 'G'); 56 break; 57 case YELLOW: 58 attrset(COLOR_PAIR(3)); 59 mvaddch(y, x, 'Y'); 60 break; 61 default: 62 mvaddch(y, x, '?'); 63 break; 64 } 65 66 } 67 68 } 69 } 70 break; 71 } 72 delay2++; 73 } 74 75 blnkc++; 76 77 } 78 }

試したこと

mvaddchをmvaddstrに変えても一度に繰り返された分がすべてひょうじされてしまいます
A_BLINKを使ってみたのですがそれでもうまく行きませんでした。

補足情報(FW/ツールのバージョンなど)

ぷよぷよを作っています。
ずっと悩んでいるのですが全く解決法が見当たりません。
このコードのどこかがおかしいのかまたはもっと根本的なところがおかしいのでしょうか?

OS:ubuntu18.04

開発環境:コンソールにぷよが表示されます

bashを使っています

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

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

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

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

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

mutsuki22

2019/05/23 01:33 編集

現在のタイトルやタグだと内容を勘違いされると思うので、問題のタイトルに問題を明確に記載した上で、タグを使用されている言語とかに変えた方が回答を得やすいかと思います。 https://teratail.com/help/question-tips#questionTips3
maisumakun

2019/05/23 01:31

コンソール環境と、使っているライブラリは何でしょうか。
akaikesan

2019/05/23 01:31

すいません 間違えちゃいました。 直しておきます ご指摘ありがとうございます
cateye

2019/05/23 01:43 編集

環境が分からないと・・・OSとか開発環境とか・・・環境が眼の前にあるのはあなただけです。 コンソールはVT100互換とか分かりませんか?
akaikesan

2019/05/23 02:15

VT互換とはどういうことかがわからないです 申し訳ないです できるだけ編集しておきました ご指摘ありがとうございます 今後気をつけようと思います
guest

回答2

0

投稿2019/05/23 02:44

編集2019/05/23 03:01
cateye

総合スコア6851

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

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

akaikesan

2019/05/23 03:38 編集

ありがとうございます。 読んで調べて理解しようと思います うまく行っていなかったのは refresh()を使っていないからでした。
guest

0

ベストアンサー

環境がわからないのでふわっとした回答を

  1. 表示位置にカーソル設定して文字を表示
  2. 一定時間ウェイトして、
  3. 表示位置にカーソルを戻してスペースを表示
  4. 一定時間ウェイトして、
  5. 1に戻る

ってことをすると点滅できます

投稿2019/05/23 02:01

編集2019/05/23 02:03
y_waiwai

総合スコア87784

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

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

akaikesan

2019/05/23 03:38

お答えありがとうございます。 うまく行っていなかったのは refresh()を使っていないからでした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問