トップページ > 過去ログ > 記事閲覧
セルの出力について
名前:poi 日時: 2010/01/15 18:00

9X9のセルの横に、色つきのセルを読み込んだファイルのまま表示したいのですが、うまく表示できません。 #include "DxLib.h" #define SET_XY (5) #define size (20) #define SIZE (10) #define PI_H (9) #define PI_W (9) #pragma warning(disable:4996) int YokoPixel(int x, int y, int color){ int sx, sy, Wh=GetColor(255,255,255), Bl=GetColor(70,70,255), Yl=GetColor(249,230,0); int Gr=GetColor(70,255,70),Rd=GetColor(255,70,255), col[] = {Wh,Bl,Rd,Yl,Gr}; sx=size*PI_W+x*size; sy=SET_XY+y*size; DrawBox(sx, sy, sx+size-1, sy+size-1, col[color], TRUE);return 0; } int MyDrawPixel(int x, int y, int color){ int sx, sy, Wh=GetColor(255,255,255), Bk=GetColor(0,0,0), col[] = {Wh,Bk}; sx=SET_XY+x*size; sy=SET_XY+y*size; DrawBox(sx, sy, sx+size-1, sy+size-1, Wh, TRUE); DrawBox(sx+1, sy+1, sx+size-1-1, sy+size-1-1, col[color], TRUE); return 0; } int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow){//main int SetFontThickness(int TinckPal),CheckHitKey(int KeyCode), MouseX, MouseY;char String[256]; int WorkData[PI_H][PI_W] = {0}, PixelData[PI_H][PI_W], PixellData[PI_H][PI_W]; int i, j, cnt=0,x=0, y=0, FileHandle, Bk=GetColor(0,0,0), Wh, Gy,Min=0; FILE *file; ChangeWindowMode(TRUE); if(DxLib_Init() == -1){return -1;} Bk=GetColor(0,0,0); Wh=GetColor(255,255,255);Gy=GetColor(200,200,200); file=fopen("masu.txt","r");if(file==NULL){printfDx("FILE ERORR");exit(0);} for(i=0; i<PI_H; i++){ for(j=0; j<PI_W; j++){ if(PixelData[i][j]>0) fscanf(file,"%d", &PixelData[i][j]); } } fclose(file); file=fopen("yokoiro.txt","r"); for(i=0; i<PI_H; i++){ for(j=0; j<PI_W; j++){ fscanf(file,"%d", &PixellData[i][j]); } } fclose(file); for(i=0; i<PI_H; i++){ for(j=0; j<PI_W; j++){ if(PixellData[i][j]>0)YokoPixel(j, i, PixellData[i][j]); } } DrawBox(SET_XY, SET_XY, size*PI_W+SET_XY-1, size*PI_H+SET_XY-1, Gy, TRUE); for(i=0; i<PI_H; i++){ for(j=0; j<PI_W; j++){ MyDrawPixel(j, i, 0); } } SetMouseDispFlag(TRUE); while(!ProcessMessage()){ if(memcmp(PixelData, WorkData, sizeof(int)*PI_H*PI_W) == 0) break; if(GetMouseInput() & MOUSE_INPUT_LEFT){ while (GetMouseInput() & MOUSE_INPUT_LEFT); GetMousePoint(&MouseX, &MouseY); if(MouseX>SET_XY && MouseY>SET_XY){ MouseX = (MouseX-SET_XY)/size; MouseY = (MouseY-SET_XY)/size; if(Min<=MouseX&&MouseX<PI_W&&Min<=MouseY&&MouseY<PI_H){ WorkData[MouseY][MouseX]++; if(WorkData[MouseY][MouseX] > 1) WorkData[MouseY][MouseX] = 0; MyDrawPixel(MouseX, MouseY, WorkData[MouseY][MouseX]);cnt++; } } } } WaitTimer(2000);DxLib_End();return 0; } 1は青 2は赤 3は黄 4は緑 に対応しています。 ファイルはyokoiro.txtで内容が 4 4 2 4 2 4 2 1 2 1 2 1 2 1 2 1 であり、 実行すると 緑  緑 赤 緑 赤 緑 赤 青 赤 青 赤 青 赤 青 赤 青 と表示したいのですが、一列になってしまいます。 上記のようにする方法はないでしょうか?

Page: 1 |

Re: セルの出力について ( No.1 )
名前:いっち 日時:2010/01/15 18:51

masu.txtにはどのようなデータが格納されているのかわからないのですが、 とりあえず、yokoiro.txtを以下のような感じにしてはどうでしょう? 4 0 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0 0 2 4 0 0 0 0 0 0 0 2 4 0 0 0 0 0 0 0 2 1 0 0 0 0 0 0 0 2 1 0 0 0 0 0 0 0 2 1 0 0 0 0 0 0 0 2 1 0 0 0 0 0 0 0 2 1 0 0 0 0 0 0 0 0は黒、または読み飛ばす設定にします。
Re: セルの出力について ( No.2 )
名前:poi 日時:2010/01/16 13:24

ありがとうございます。 試してみます。

Page: 1 |