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
であり、
実行すると
緑
緑
赤 緑
赤 緑
赤 青
赤 青
赤 青
赤 青
赤 青
と表示したいのですが、一列になってしまいます。
上記のようにする方法はないでしょうか?