// // 画面表示サンプルプログラム // #include #include "cmdconsole.hh" // 黒(CC_BLACK) 暗い青(CC_DARK_BLUE) 深緑(CC_DARK_GREEN) 青緑(CC_BLUE_GREEN) 茶(CC_BROWN) // 暗い紫(CC_DARK_PURPLE) 黄土色(CC_OCHER) 薄い灰色(CC_LIGHT_GRAY) 灰色(CC_GRAY) // 青(CC_BLUE) 緑(CC_GREEN) 水色(CC_CYAN) 赤(CC_RED) マゼンタ・紅紫色(CC_MAGENTA) // 黄(CC_YELLOW) 白(CC_WHITE) int main(void) { int k; int back_color = CC_BLUE; cc_clear(back_color); // 画面をクリア cc_color(CC_WHITE, back_color); // 文字色を白,背景色を設定 cc_cursor(0); // カーソルを消去 cc_locate(0, 0); // 表示位置を(0, 0)に設定 printf("Windows用コマンドプロンプトの画面表示サンプルプログラム"); int wid, hgt; cc_getsize(&wid, &hgt); cc_locate(0, 2); printf("現在のコンソールの幅 :%4d文字", wid); cc_locate(0, 3); printf("現在のコンソールの高さ:%4d行", hgt); // --------------------------------------------------------- cc_locate(0, 5); printf("罫線用文字を組み合わせて白色で枠を表示します。"); cc_color(CC_DARK_BLUE, CC_YELLOW); cc_locate(0, 7); printf("【スペースキーを押すと開始します。】"); cc_color(CC_WHITE, back_color); // 文字色を白,背景色を設定 do { k = getch(); // 1文字を入力待ち } while (k != ' '); cc_clear(back_color); // 画面をクリア cc_color(CC_WHITE, back_color); // 文字色を白,背景色を設定 cc_locate(0, 0); printf("┌────┐"); cc_locate(0, 1); printf("│    │"); cc_locate(0, 2); printf("└────┘"); cc_locate(0, 4); printf("スペースキーを押してください。"); do { k = getch(); // 1文字を入力待ち } while (k != ' '); // --------------------------------------------------------- cc_clear(back_color); // 画面をクリア cc_locate(0, 0); // 表示位置を(0, 0)に設定 printf("罫線用文字を組み合わせて赤色で升目を表示します。"); cc_color(CC_DARK_BLUE, CC_YELLOW); cc_locate(0, 3); printf("【スペースキーを押すと開始します。】"); cc_color(CC_WHITE, back_color); // 文字色を白,背景色を設定 do { k = getch(); // 1文字を入力待ち } while (k != ' '); cc_clear(back_color); // 画面をクリア cc_color(CC_RED, back_color); // 文字色を赤,背景色を設定 int x0 = 10, y0 = 5; // 升目の左上の座標 int x, y; x = x0; y = y0; cc_locate(x, y ++); printf("┏━┯━┯━┯━┯━┯━┯━┓"); cc_locate(x, y ++); printf("┃ │ │ │ │ │ │ ┃"); cc_locate(x, y ++); printf("┠─┼─┼─┼─┼─┼─┼─┨"); cc_locate(x, y ++); printf("┃ │ │ │ │ │ │ ┃"); cc_locate(x, y ++); printf("┠─┼─┼─┼─┼─┼─┼─┨"); cc_locate(x, y ++); printf("┃ │ │ │ │ │ │ ┃"); cc_locate(x, y ++); printf("┠─┼─┼─┼─┼─┼─┼─┨"); cc_locate(x, y ++); printf("┃ │ │ │ │ │ │ ┃"); cc_locate(x, y ++); printf("┠─┼─┼─┼─┼─┼─┼─┨"); cc_locate(x, y ++); printf("┃ │ │ │ │ │ │ ┃"); cc_locate(x, y ++); printf("┗━┷━┷━┷━┷━┷━┷━┛"); cc_locate(x, y + 1); printf("スペースキーを押してください。"); do { k = getch(); // 1文字を入力待ち } while (k != ' '); cc_color(CC_WHITE, back_color); // 文字色を白,背景色を設定 // --------------------------------------------------------- cc_clear(back_color); // 画面をクリア cc_locate(0, 0); // 表示位置を(0, 0)に設定 printf("☆を円上に移動させます。"); cc_color(CC_DARK_BLUE, CC_YELLOW); cc_locate(0, 2); printf("【スペースキーを押すと開始します。】"); cc_color(CC_WHITE, back_color); // 文字色を白,背景色を設定 do { k = getch(); // 1文字を入力待ち } while (k != ' '); cc_clear(back_color); // 画面をクリア cc_color(CC_WHITE, back_color); // 文字色を白,背景色を設定 cc_locate(0, 0); // 表示位置を(0, 0)に設定 printf("終わるときは,小文字の c キーを押してください。"); x0 = wid / 2; y0 = hgt / 2; // 円の中心座標 int rw, rh; // 円の半径 rw = wid / 2 * 0.8; rh = hgt / 2 * 0.8; double th = 0.0; // 角度 do { x = (int)(rw * cos(th * 3.1415 / 180.0)) + x0; y = (int)(rh * sin(th * 3.1415 / 180.0)) + y0; th += 1.0; cc_locate(x, y); // 表示位置を設定 printf("☆"); fflush(stdout); Sleep(10); // 50ミリ秒待つ cc_locate(x, y); printf(" "); fflush(stdout); if (kbhit()) { // キー入力のチェック k = getch(); } } while (k != 'c'); cc_cursor(1); // カーソルを表示 // --------------------------------------------------------- cc_clear(back_color); // 画面をクリア cc_locate(0, 0); // 表示位置を(0, 0)に設定 printf("矢印キー(←↑↓→)を使って★を移動させます。"); cc_color(CC_DARK_BLUE, CC_YELLOW); cc_locate(0, 2); printf("【スペースキーを押すと開始します。】"); cc_color(CC_WHITE, back_color); // 文字色を白,背景色を設定 do { k = getch(); // 1文字を入力待ち } while (k != ' '); cc_clear(back_color); // 画面をクリア cc_cursor(0); // カーソルを消去 cc_color(CC_WHITE, back_color); // 文字色を白,背景色を設定 cc_locate(0, 0); // 表示位置を(0, 0)に設定 printf("矢印キー(←↑↓→)を使って★を移動させてください。"); cc_locate(0, 1); // 表示位置を(0, 1)に設定 printf("終わるときは,小文字の c キーを押してください。"); x = wid / 2; y = hgt / 2; cc_locate(x, y); // 表示位置を設定 printf("★"); fflush(stdout); // ★を表示 do { if (kbhit()) { // キー入力のチェック k = getch(); x0 = x; y0 = y; switch(k) { case 0x48: // ↑キーの処理 if (y >= 3) {y --;} break; case 0x4B: // ←キーの処理 if (x >= 2) {x -= 2;} break; case 0x4D: // →キーの処理 if (x <= wid - 3) {x += 2;} break; case 0x50: // ↓キーの処理 if (y <= hgt - 2) {y ++;} break; } if (x != x0 || y != y0) { cc_locate(x0, y0); // 消去位置を設定 printf(" "); fflush(stdout); // ★を消去 cc_locate(x, y); // 表示位置を設定 printf("★"); fflush(stdout); // ★を表示 } } } while (k != 'c'); cc_cursor(1); // カーソルを表示 // --------------------------------------------------------- // 設定を元に戻す。 // --------------------------------------------------------- cc_clear(CC_BLACK); // 画面をクリア cc_color(CC_WHITE, CC_BLACK); // 文字色を白,背景色を黒に設定 cc_locate (0, 0); // カーソル位置を(0, 0)に設定 cc_cursor(1); // カーソルの表示 }