• ベストアンサー

見た目が華やかなプログラム

変数、制御文、関数、構造体くらいまでの基礎を一通り終えたC言語初心者です このレベルの内容を使ってある程度見た目が華やかなプログラムを作りたいと思います。 以前、左上からスタート、右下がゴール、0なら進めて1のマスは進めないという迷路を作って、脱出するまでの最短距離を求めるプログラムを作ってみました。 しかし、入力に時間がかかる上に出力結果が「最短距離は=>X」と出るだけで地味です DOS画面動作なので限界はあるとは思いますが、それでももう少し華やかなものはないでしょうか? 出来れば完成品のソースコードなどがあるとベストです。 宜しくお願いいたします

質問者が選んだベストアンサー

  • ベストアンサー
回答No.5

#include <stdio.h> #define SIZEY 20 #define SIZEX 16 #define STARTY 0 #define STARTX 1 #define GOALY 19 #define GOALX 6 void print(int maze[][SIZEX], int step) { char *marks[] = {"■", " ", "・"}; int y, x; for(y = 0; y < SIZEY; y ++){ for(x = 0; x < SIZEX; x ++){ printf("%s", marks[maze[y][x]]); } putchar('\n'); } printf("Steps : %d\n\n", step); return; } void search(int maze[][SIZEX], int y, int x, int *step, int *shortest) { if(*step >= *shortest) return; if(y < 0 || SIZEY <= y) return; if(x < 0 || SIZEX <= x) return; if(maze[y][x] != 1) return; maze[y][x] = 2; if(y == GOALY && x == GOALX){ print(maze, *shortest); *shortest = *step; maze[y][x] = 1; return; } (*step) ++; search(maze, y, x + 1, step, shortest); search(maze, y + 1, x, step, shortest); search(maze, y, x - 1, step, shortest); search(maze, y - 1, x, step, shortest); maze[y][x] = 1; (*step) --; return; } int main(void) { int maze[SIZEY][SIZEX] = {{0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,}, {0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,}, {0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0,}, {0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0,}, {0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0,}, {0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0,}, {0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,}, {0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0,}, {0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0,}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,}, {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,}, {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,}, {0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0,}, {0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,}, {0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0,}, {0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0,}, {0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0,}, {0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0,}, {0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0,}, {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,},}; int step = 0, shortest = SIZEX * SIZEY; print(maze, shortest); search(maze, STARTY, STARTX, &step, &shortest); return 0; }

keyt04
質問者

お礼

ありがとうございます。 迷路を自動生成させ、待ち時間と無限ループをするように変えてみました。 確かにこれはインパクトあります。感謝です。

その他の回答 (6)

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.7

とりあえず、アスキーアートでも出力するとか。

keyt04
質問者

お礼

文字列のまま突っ込んでおいて、1文字ずつ出すだけでもインパクトありそうですね。 試してみます。 回答ありがとうございました。

  • D-Matsu
  • ベストアンサー率45% (1080/2394)
回答No.6

SolarisだからNo.2回答が駄目ということでしたら、ANSIエスケープシーケンスではどうでしょう。 #参考URLはLinuxのものですが、おそらくそのまま使えます

参考URL:
http://www.linux.or.jp/JF/JFdocs/Bash-Prompt-HOWTO-5.html
keyt04
質問者

お礼

おお、こんなのもあるんですね。 早速試してみたいと思います。 回答ありがとうございます。

回答No.4

その迷路を自動生成するのも面白いでしょう。 DOS画面で80*20マスぐらいの迷路を作って、スタートからゴールまでの道が分かるように表示させましょう。 迷路生成のアルゴリズムはいろいろありますが、僕が知っているのは ・壁同士がぶつからないようにのばしてく方法 ・壁を格子状に作っておいて消していく方法 ぐらいです。探せばいろいろ出てくるでしょう。

keyt04
質問者

お礼

迷路の自動生成ですか。 なるほど、ちょっと間に合うかどうかが分からないですが検討してみます。 ありがとうございます。

回答No.3

その迷路の最短脱出経路を表示するプログラムなどは見た目に楽しいはずです。 おそらく、迷路のマスにスタート地点からの最短距離を書き込んで行くような作り方をしていると思います。その場合は書き込んだ結果を利用すればゴールからスタートへと経路を辿ることが出来ます。 迷路はファイルから読み込めるようにすれば、いちいちコマンドラインで書かなくて済みますね。(ファイル操作はfopenやfgetsあたり)

keyt04
質問者

お礼

なるほど、これをそのまま改良すればいいんですね。 ちょっと試してみたいと思います。 ありがとうございます。

  • Oh-Orange
  • ベストアンサー率63% (854/1345)
回答No.2

★アドバイス >見た目が華やかなプログラム  ↑  それなら文字に色を付けてみてはどうでしょうか。  http://www.kumei.ne.jp/c_lang/intro/no_58.htm→『第58章 コンソールアプリで文字色を変える』  コンソールでも文字色を変えれば多少は華やかになるでしょう。  なお、紹介したリンク先は Windows OS 限定です。 ・コンソール関連のAPIを使えばコンソール画面のタイトル名なども変更できます。  http://msdn.microsoft.com/ja-jp/library/cc429123.aspx→『コンソール』  http://www.asahi-net.or.jp/~qb3k-kwsk/rpg/program/tutorial/game1/m100.html→『Programのプ:VC++で作る』  http://www.winapi-database.com/special/2001_9/index.html→『2001-9月号の特集』

参考URL:
http://www.asahi-net.or.jp/~qb3k-kwsk/rpg/program/tutorial/game1/m100.html
keyt04
質問者

お礼

うぅ、環境を明記していない自分がいけませんでした・・・。 実はSolarisで走らせなくちゃいけないので、Windows環境が使えない状態なんです。 でも、色を変えるなんてことも出来るんですね、知りませんでした。 ありがとうございます。

  • aigaion
  • ベストアンサー率47% (287/608)
回答No.1

大学の課題とかですかね? 最短経路問題はデータ構造とアルゴリズムの設計などC言語習いたてにはけっこう高度です. 見た目を特に重視しない課題で,ソースコードも提出するならそれなりに評価は高いと思いますよ. >出来れば完成品のソースコードなどがあるとベストです。 ネットにあるソースコードはそのまま提出すると確実にばれるのでやめた方が良いですよ.

keyt04
質問者

お礼

や、宿題じゃないんですよ 提出する必要はないんで、どこかのソースそのままでも構わないんです。 デモもどきみたいなものをしたかったので、とりあえず動くものが欲しいなーと思ったんですが、既存のコードをちょっといじる方が早そうですね。 ありがとうございます。

関連するQ&A

  • 迷路プログラム

    迷路プログラムの応用問題なのですが、上手くいかずに困っています。 問題 2次配列を用いて、縦横X,Yマスの迷路を作ります。 マスの数はX,Y共に最大100までの値であれば、任意の数が振れます。 迷路の一番左下がスタートS、一番右上がゴールGになります。 マスへは上下左右にしか移動出来ません。 迷路の中には任意で入力したXマスがあり、Xが入っているマスには移動出来ません。 S,G,Xが入っていないマスには、1~9までの数字を任意に入力します。 それぞれの数字は、そのマスに移動するためにかかるコストを表しています。 スタートからゴールまで、コストがもっとも小さくすむルートのコストを出力するプログラムを作りたいです。 また、Xマスでゴールが不可能な場合は-1を返します。 単純にゴールを目指すのと違い、コストがあると遠回りをしなければならない可能性があるので、そのアルゴリズムが思いつきませんでした。 例 11*7マスの迷路の場合 マスの数:11 7 迷路の値の入力: 7 9 3 3 6 3 X X 7 9 G 1 1 3 2 6 6 8 4 8 4 5 7 2 9 1 3 4 8 4 9 8 9 9 7 4 2 5 X 8 6 9 9 4 4 7 3 8 X 8 X 5 7 X 7 1 7 1 8 5 6 5 9 5 6 2 S 5 5 2 9 4 2 2 9 5 1 出力: 最小コストは59 迷路からゴールに進むだけのプログラムは作れたのですが、応用問題としてコストが入ると急に難しくなりました。 コストが絡むとどういうアルゴリズムで動けばいいのか分かりません。アドバイスをお願いします。

  • C言語のキューに関する質問です。

    キューの演習が出たのですが全く手が出ず 困っています。 どなたか詳しい方にご助力いただけたらと思います。 以下問題です。 左上の座標を(0,0) とするマス目でできたNxNマスの迷路があり、 ’*’ は壁で、’ ’ は空きマスの通路とする。下記のサンプルを修正して、 このような迷路において、指定したスタートS からゴールG まで、 下記の手順で最短距離を求めるプログラムをつくれ。 手順1: スタート位置の座標=(sx,sy) と距離=0 をキューに記録する 手順2: キューが空になるまで以下を繰り返す。 手順2-1: キューから位置と距離を取り出し、現在の位置と距離とする。 手順2-2: もしその位置がゴールG ならば繰返しを抜ける。 手順2-3: 現在の位置の上下左右を調べ、空きマスならば(現在の距離+1) を そのマスの距離として座標とともにキューに保存する。 手順3: ゴールに到達していれば距離を出力して終了する。 • N は7 とする。 • 一度通った道を記録するように工夫することで、効率よく計算することもできる。 • G に到達できないことが分かった時は-1 を出力すること。 例えば、迷路が最大でもN x N マスしかないことを利用すると、 距離がN x N を越えてもG に辿り着けないと、 G に到達できない迷路であることが分かる。 /* (x,y) 地点とそこまでの距離c を記録する構造体*/ struct cost { int x; int y; int c; }; int main(void) { #define BUFSIZE (N*2) char buf[BUFSIZE]; char maze[N][N]; int i, j, sx, sy, gx, gy; struct cost pos; /* 迷路を読み込み、maze にセットする。*/ for (i = 0; i < N; i++) { fgets(buf, BUFSIZE, stdin); for (j = 0; j < N && (buf[j] != ’\n’ && buf[j] != ’\0’); j++) { if (buf[j] == ’S’) { sx = j; sy = i; buf[j] = ’ ’; } else if (buf[j] == ’G’) { gx = j; gy = i; buf[j] = ’ ’; } maze[i][j] = buf[j]; } while (j < N) maze[i][j++] = ’ ’; } /* ※ここを主に修正する */ /* 最短距離を表示する。*/ printf("%d\n", pos.c); return 0; おそらくキューの実装からやらなければならないのですが、 取り出すときの戻り値やら構造体、二次元配列の扱い等々で ちんぷんかんぷんです。 どうかよろしくおねがいします。

  • 以下のグループを迷路に放り込みました。先に脱出できる可能性の高いグループはどれだと思いますか?

    以下の4グループを迷路に放り込みました。どのグループが一番早く迷路を脱出できるでしょうか?そして、そのグループを選んだ簡単な理由も教えてください。 グループA・・・主婦5人 (一般的な特別な訓練を受けていない全員30代の家庭の主婦 日本人) グループB・・・大学生4人 (理系男子2人+文系女子2人で特別に特殊な訓練を受けたまたは迷路に関する特別な知識は皆無いごく平均的な日本人大学生) グループC・・・自衛隊員2人 (いずれも20代後半日本人男性ノンキャリアの陸上自衛隊所属) グループD・・・物理学者1人 (ノーベル物理学賞受賞暦のある大学教授50代男性。イスラエル人) 迷路の構造・・・1フロア(100メーター×100メーター)×100階 1階から入り各階に次の階へ進む階段がある。迷路の構造はコンピューター設計によるランダム。各階の階段横に休憩室があり仮眠が取れる部屋がある。通路の幅はどこも1メーター。ゴールは100階の階段を登るとゴール。 前提条件・ルール ※各グループの構成員はこの迷路に入ることを了承している。 ※迷路の構造(階数・広さ等のみ)をあらかじめ告知してある。 ※複数人のグループのメンバー同士は面識が無い。 ※実験は同じ構造の迷路で別々に行う。 ※休憩室の備品の迷路への持ち出しは禁止(持ち出したら失格) ※優勝グループには一人当たり賞金1億円(モチベーションとして) 各グループに与えられる道具 ※メモ帳 ※ペン(ペンでの壁等への目印は禁止 行ったら失格) ※目印用シール200枚 上記の条件でどのグループが一番早くゴールにたどり着くことができるでしょうか。ご意見お待ちしております。

  • 迷路を解くプログラムについて

    迷路を脱出する経路を探索するプログラムを作成したいのですが、 何をすればいいのかまったくわかりません 以下のプログラムはあるんですが、このプログラムを改良していくということなんでしょうか?左上からスタートして右下がゴールらしいのですがやり方教えてください #include <stdlib.h> #include <stdio.h> #include "List.h" #define LEN 256 int maze[LEN][LEN]; void readMaze(char* filename, int *w, int *h, int maze[LEN][LEN]) { FILE *fp; int x, y; if (0 != fopen_s(&fp, filename, "r")) { fprintf(stderr, "指定された迷路の入力ファイルを開くことができませんでした.\n"); exit(-1); } fscanf_s(fp, "%d,%d\n", w, h); for (y = 0; y < 2 * *h + 1; y++) { for (x = 0; x < 2 * *w + 1; x++) { fscanf_s(fp, "%d%*[^-0-9]", &(maze[y][x])); } } fclose(fp); } void writeMaze(char* filename, int w, int h, int maze[LEN][LEN]) { FILE *fp; int x, y; if (0 != fopen_s(&fp, filename, "w")) { fprintf(stderr, "指定された迷路の出力ファイルを開くことができませんでした.\n"); exit(-1); } fprintf_s(fp, "%d,%d\n", w, h); for (y = 0; y < 2 * h + 1; y++) { for (x = 0; x < 2 * w + 1; x++) { fprintf_s(fp, "%d", maze[y][x]); if (x < 2 * w) { fprintf_s(fp, ","); } else { fprintf_s(fp, "\n"); } } } fclose(fp); } // シンプルなバージョン:なるべく右下へ行けるなら右下へ int main(int argc, char** argv) { int w, h; int x, y; if (argc < 3) { fprintf(stderr, "迷路の入出力ファイル名を指定してください.\n"); exit(-1); } // 迷路読込 readMaze(argv[1], &w, &h, maze); // maze[1][1] から maze[2*h-1][2*w-1] までのルートを探す x = 1; //座標の初期化 y = 1; while (x != 2 * w - 1 || y != 2 * h - 1){ if (maze[y][x + 1] == 0) { // 右にまだ行ってない? maze[y][x] = 1000; x = x + 1; } else if (maze[y + 1][x] == 0) { // 下にまだ行ってない? maze[y][x] = 1000; y = y + 1; } else if (maze[y][x - 1] == 0) { // 左にまだ行ってない? maze[y][x] = 1000; x = x - 1; } else if (maze[y - 1][x] == 0) { // 上にまだ行ってない? maze[y][x] = 1000; y = y - 1; } else if (maze[y][x + 1] == 1000) { // 行き止まりなので右に引き返す maze[y][x] = 1; x = x + 1; } else if (maze[y + 1][x] == 1000) { // 行き止まりなので下に引き返す maze[y][x] = 1; y = y + 1; } else if (maze[y][x - 1] == 1000) { // 行き止まりなので左に引き返す maze[y][x] = 1; x = x - 1; } else if (maze[y - 1][x] == 1000) { // 行き止まりなので上に引き返す maze[y][x] = 1; y = y - 1; } } maze[2 * h - 1][2 * w - 1] = 1000; // ゴール // 答えを濃い色に // 上記のプログラムはすでに答えを濃い色(1000)にしている // 迷路書出 writeMaze(argv[2], w, h, maze); return 0; }

  • 巡回セールスマン問題の考え方を使って・・・。

    以前、この場で巡回セールスマン問題の考え方を使って、ということで質問に答えていただきました。その節はありがとうございました。 建築の学生なのですが、卒論の対象地の一つの分析として次のようなことを行っております。 対象地に14の交差点があって 「14の交差点全てを一筆書きで、最短経路で通過したい。」 ということをやるようになってます。 これに関して数人の方の協力でプログラムを組んでもらいました。   現在のプログラムはスタートのみ固定して、14それぞれ最短経路を探索し、ルートと最短距離を表示します。 今度はこれを、スタートとゴールともに固定して 「スタートが交差点1で、ゴールが交差点14のとき  ルートは・・。最短距離は何m。」 というふうに表示させたいのですが、プログラムに関して私はまったく素人でどのように変更すればよいかわかりません。 そこで、どのように改良すればよいか教えていただけないでしょうか。 よろしくお願いします。

  • 巡回セールスマン問題を使って・・・

    以前、この場で巡回セールスマン問題の考え方を使って、ということで質問に答えていただきました。その節はありがとうございました。 建築の学生なのですが、卒論の対象地の一つの分析として次のようなことを行っております。 対象地に14の交差点があって 「14の交差点全てを一筆書きで、最短経路で通過したい。」 ということをやるようになってます。 これに関して数人の方の協力でプログラムを組んでもらいました。   現在のプログラムはスタートのみ固定して、14それぞれ最短経路を探索し、ルートと最短距離を表示します。 今度はこれを、スタートとゴールともに固定して 「スタートが交差点1で、ゴールが交差点14のとき  ルートは・・。最短距離は何m。」 というふうに表示させたいのですが、プログラムに関して私はまったく素人でどのように変更すればよいかわかりません。 そこで、どのように改良すればよいか教えていただけないでしょうか。 よろしくお願いします。 文字数の関係で、プログラムをのせれないのでお答えになってくださったときにお礼の場でプログラムをお見せすることができます。

  • 数独(ナンプレ)の解き方(アルゴリズム)

    プログラミングの宿題で、Javaを使って数独を解くプログラムを作っています。雑誌などにある数独の問題を解くことはできたのですが、今回はその問題もプログラムで作ってそれを解かせようというお題になってしまいました。今のところ下のような感じになっています。 1. 乱数を使って0-80までのマス番号に1-9の数字を数個適当に入れていきます。(0が左上の角で、80が右下の角です。) 乱数でマスに数字を入れますから、同じマスに数字が入ることがありますが、それはそれでそのマスを上書きしています。さらにこの段階で、数字が同じ列または3×3マスで重なることがないようにしています。 2. それを元に各マスに入る可能性のある数字をリストアップ 3. リストアップした中で、最後に必ず1つだけ数字が残るのでそれをそのマスに入れます。 とここまではできました。しかし、乱数で適当に問題をつくったにしか過ぎないから、当然ダブってしまうところや、数字が入らないマスがあります。ですから、そういったダブるところや数字の入らないマスのために補正をしたいと思うのですが、まったくアイディアが浮かびません。どのようにしたら補正をして問題を回答できますか? アルゴリズムが少々長くてもかまいません。また、Javaのコードでの回答でなくてもかまいません。とにかく、如何の様に補正するのかを知りたいです。 下にあるのが、上の1.で作った問題です。 # 0は数字が入っていないマスを示します。 060 | 000 | 080 030 | 080 | 017 000 | 100 | 000 --------------- 800 | 000 | 903 000 | 803 | 060 000 | 096 | 500 --------------- 908 | 407 | 000 205 | 000 | 400 700 | 001 | 000

  • 数学A 場合の数 十字路を行くときの最短距離の問題

    縦が7本の道で、横が6本の道で構成された形の十字路があります。 左上から右下まで最短距離で行きたいのですが、 上から3番目で、左から4番目と5番目を結ぶ道は工事中で通れません。 この時の経路は何通りありますか。 図が無く、分かりにくいですが、わかる方は是非回答ください。

  • Delphiでゲームのマップ作成【大至急】

    Delphiでゲームのマップを作りたいのですがよくわかりません。【大至急お願いします!!】 今、学校の授業にてDelphiで脱出ゲームを作っています。 ホラーゲーム「青鬼」のようなマップを作ろうと思っています。 しかし、procedureをどのように作っていいかよくわかりません。 内容は マップデータを 変数map:array[1..45,1..30,1..20] of intger; に 代入する内容です。 それを45回よんでマップの変数にすべて入れたいです。 マップデータは 0を通路、5を木の左上、6を木の右上、7を木の左下、8を木の右下で 作りました。 以下のような感じです。 6,8,6,8,6,8,6,8,6,8,6,8,6,8,6,8,6,8,6,8, 5,7,5,7,5,7,5,7,5,7,5,7,5,7,5,7,5,7,5,7, 6,8,0,0,0,0,0,8,6,8,6,8,6,8,6,8,6,8,6,8, 5,7,0,0,0,0,0,7,5,7,5,7,5,7,5,7,5,7,5,7, 6,8,0,0,6,8,6,8,0,0,6,8,6,8,6,8,6,8,6,8, 5,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,7, 6,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,8, 5,7,5,7,0,0,5,7,5,7,0,0,5,7,5,7,0,0,5,7, 6,8,6,8,0,0,6,8,6,8,0,0,6,8,6,8,0,0,6,8, 0,0,0,0,0,0,5,7,5,7,0,0,5,7,5,7,0,0,5,7, 0,0,0,0,0,0,6,8,6,8,0,0,6,8,6,8,0,0,6,8, 0,0,5,7,0,0,5,7,0,0,0,0,5,7,5,7,0,0,5,7, 0,0,6,8,0,0,6,8,0,0,0,0,6,8,6,8,6,8,6,8, 0,0,5,7,0,0,5,7,5,7,5,7,5,7,5,7,5,7,5,7, 6,8,6,8,0,0,6,8,0,0,0,0,0,0,0,0,6,8,6,8, 5,7,5,7,0,0,5,7,0,0,0,0,0,0,0,0,5,7,5,7, 6,8,6,8,0,0,0,0,0,0,6,8,6,8,0,0,6,8,6,8, 5,7,5,7,0,0,0,0,0,0,5,7,5,7,0,0,0,0,0,0, 6,8,6,8,6,8,6,8,0,0,6,8,6,8,0,0,0,0,0,0, 5,7,5,7,5,7,5,7,0,0,5,7,5,7,5,7,5,7,0,0, 6,8,6,8,0,0,0,0,0,0,6,8,6,8,6,8,6,8,0,0, 5,7,5,7,0,0,0,0,0,0,5,7,5,7,5,7,5,7,0,0, 6,8,6,8,0,0,6,8,0,0,0,0,0,0,6,8,6,8,0,0, 5,7,5,7,0,0,5,7,0,0,0,0,0,0,5,7,0,0,0,0, 6,8,6,8,0,0,6,8,6,8,6,8,6,8,6,8,0,0,0,0, 5,7,5,7,0,0,5,7,5,7,5,7,5,7,5,7,0,0,5,7, 6,8,0,0,0,0,6,8,6,8,6,8,6,8,6,8,0,0,6,8, 5,7,0,0,0,0,5,7,5,7,5,7,5,7,5,7,5,7,5,7, 6,8,0,0,6,8,6,8,6,8,6,8,6,8,6,8,6,8,6,8, 5,7,0,0,5,7,5,7,5,7,5,7,5,7,5,7,5,7,5,7, 代入出来ればどんな方法でも構いません。 本当に困っているので、ご回答よろしくお願いします!!

  • visual C++でのグローバル変数の宣言

    visual C++でマスの色を読みとって、いろいろな処理を行うプログラムを作成中なのですが、グローバル変数として以下の宣言をしたときに、以下のエラーが出ます。 struct{ int r; int g; int b; }rgb[10][10]; //マス数は10×10までとする error C3183: マネージ型 'SOMsample::Form1' の中で名前のないクラス、構造体またはユニオンを定義することはできません。 これをbuilder5で書き込んだときはエラーが出なかったのですが、visual C++ではどう書けばいいのでしょうか? 回答よろしくお願いします。

専門家に質問してみよう