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

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

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

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

curses

cursesは、 UNIX 系列で使用される端末制御ライブラリです。CUI アプリケーションを作成するために使用されます。表示端末は多くの制御コードをサポートしており、カーソル移動や画面のスクロール、領域消去といった一般的な操作の実行が可能です。

Q&A

1回答

1342閲覧

文字でできた長方形の描画を下記のプロトタイプ宣言で示した”fill_box()”で作成し 長方形を動かすプログラムを作成したいです! ご教授頂けないでしょうか?どうかよろしくお願いします。

02200820

総合スコア28

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

curses

cursesは、 UNIX 系列で使用される端末制御ライブラリです。CUI アプリケーションを作成するために使用されます。表示端末は多くの制御コードをサポートしており、カーソル移動や画面のスクロール、領域消去といった一般的な操作の実行が可能です。

0グッド

0クリップ

投稿2019/01/20 23:04

~~```C

コード

typedef struct POINT{ int x; int y; } Point; typedef struct BOX{ Point s; // 左上の座標 int dx; // x方向の辺の長さ int dy; // y方向の辺の長さ } Box; /* プロトタイプ宣言 */ int draw_point( Point a, char c ); int fill_box( Box a, char c); int main(void) { int max_x, max_y; char key; int wait_interval=100000; Point p; /* 画面制御準備 */ initscr(); //画面制御開始 noecho(); //キー入力した際に入力文字を表示しない設定 timeout(0); curs_set(1); //カーソルの表示をする cbreak(); // キー入力の最後にEnterが必要ない getmaxyx( stdscr, max_y, max_x); // 画面の大きさの取得 p.x = max_x /2; p.y = max_y /2; refresh(); // 画面更新 while(1) { key = getch(); // キーボードから1文字入力 if( key == 'd' ) p.x++; // dなら右へ移動 if( key == 's' ) p.x--; // sなら左へ移動 if( key == 'x' ) p.y++; // xなら上へ移動 if( key == 'w' ) p.y--; // wなら下へ移動 if( key == 'q' ) break; // qなら終了 refresh(); usleep( wait_interval); } /* 画面制御終了 */ endwin(); return 0; } int draw_point( Point a, char c ) { int status; int max_y, max_x; getmaxyx( stdscr, max_y, max_x); // 画面の大きさを取得 if( (a.y>=0)&&(a.y<max_y)&&(a.x>=0)&&(a.x<max_x) ){ // 画面の内外の判定 status=0; // 画面内なら move(a.y, a.x); // カーソルの移動 }else { // 画面外なら status=1; } return status; } /* 長方形の描画 */ int fill_box( Box a, char c) { int status=0; int i,j; Point p; for( i=0; i<a.dx; i++){ for( j=0; j<a.dy; j++){ p.col=a.s.col+i; p.row=a.s.row+j; if( (status=draw_point(p, c))==1) break; } if(status==1) break; } return status; }

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

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

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

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

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

poniponiponiki

2019/01/21 00:21

はじめまして。 具体的な質問内容がないと丸投げだと思われてしまうと思うので、質問の修正をされた方がいいかと思います。
ttyp03

2019/01/21 00:32

タイトルは端的に、質問したいことは本文に明確に書いてください。コードは```~```で括ってください。
guest

回答1

0

ーーーーーーーーーーーーーー

投稿2019/01/21 00:34

02200820

総合スコア28

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問