トップページ > 過去ログ > 記事閲覧
マップ作成
名前:みっしぃ 日時: 2011/08/22 12:55

以下のコードを打つと、画像のようになってしまい表示できません どうしたらいいんでしょうか? int hantei[15][20] = { (1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1), (1,1,1,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1), (1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1), (1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1), (1,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1), (1,1,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1), (1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1), (1,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1), (1,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1), (1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1), (1,1,1,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,1), (1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1), (1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1), (1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,1), (1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1), }; int o,s; o = 0; s = 0; SetDrawScreen( DX_SCREEN_BACK ); for(;o < 15 ;o++){ for(;s < 20 ;s++){ if(hantei[o][s]==1){ DrawBox(s*12,o*12,(s+1)*12,(o+1)*12,GetColor(255,255,255),TRUE); } if(hantei[o][s]==0) { DrawBox(s*12,o*12,(s+1)*12,(o+1)*12,GetColor(0,0,255),TRUE); } } } ScreenFlip(); WaitKey(); http://pupld.net/28/110822/j95o2qlv0a/index.cgi

Page: 1 |

Re: マップ作成 ( No.1 )
名前:yasi 日時:2011/08/22 16:01

お使いの言語がC++であると解釈して答えさせていただきますが、 1つは二次元配列の初期化に失敗していると思います。 ()ではなく{}で囲んでください。 又、今回のように[0][0]から順に初期化する場合ではれば{}を省略する事も可能です。 (後途コードを参照ください。) もう1つは、内部のfor文を回すために使用している変数sが、 for文内で初期化されていない為、1周しかしていません。 下記のサンプルコードのように変更してみて下さい。 #include "DxLib.h" int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowComd) { ChangeWindowMode( TRUE ); if( DxLib_Init() < 0 ) return -1; int hantei[15][20] = { {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, {1,1,1,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1}, {1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {1,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1}, {1,1,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1}, {1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {1,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1}, {1,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1}, {1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {1,1,1,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,1}, {1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, {1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,1}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, }; // こちらの初期化でも可能です /* int hantei[15][20] = { 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1, 1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1, 1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1, 1,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1, 1,1,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1, 1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1, 1,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1, 1,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1, 1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1, 1,1,1,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,1, 1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, };*/ int o, s; SetDrawScreen( DX_SCREEN_BACK ); for( o = 0; o < 15; o++ ){ for( s = 0; s < 20; s++ ){ if( hantei[o][s] == 1 ){ DrawBox( s * 12, o * 12, ( s + 1 ) * 12, ( o + 1 ) * 12, GetColor( 255, 255, 255 ), TRUE ); }else if( hantei[o][s] == 0 ){ DrawBox( s * 12, o * 12, ( s + 1 ) * 12, ( o + 1 ) * 12, GetColor( 0, 0, 255 ), TRUE ); } } } ScreenFlip(); WaitKey(); DxLib_End(); return 0; }
Re: マップ作成 ( No.2 )
名前:みっしぃ 日時:2011/08/22 16:16

言われたとおりにやったらできました!わざわざ修正ソースまでありがとうございます! 初歩的なミスでしたね…(すいません) たすかりました!ありがとうございます!

Page: 1 |