12X12 の大きさのmeshpanelを読み込んで、fprintfでtakasa / takasairoに書き込むのはどうすればよいのでしょうか?
実行すると、白い画面が出ます。パネルをマウス左で色が変わり、画面を閉じるとmeshpanelに数字が入ります。
数値の1〜9はそのまま、10〜12は、PQRで表します。
↓のようにクリックすると、格子の色が変わります。
(左端を青、右端を緑にしました)
プログラムを実行しましたが、エラーが出てしまい、困っています。
宜しくお願いいたします。
meshpanel(例) takasa (期待の数値) takasairo(期待の数値)
1000000000002 12 11 1 2
1000000000002
1000000000002
1000000000002
1000000000002
1000000000002
1000000000002
1000000000002
1000000000002
1000000000002
1000000000002
1000000000000
#include "DxLib.h"
#define BOX (20)
#define MESH_Y (12)
#define MESH_X (12)
#pragma warning(disable:4996)
void hikaku(int suuji){
if (suuji <= 0) printf(" ");
else if (suuji < 10) suuji= suuji;
else if (suuji == 10) suuji='P';
else if (suuji == 11) suuji='Q';
else if (suuji == 12) suuji='R';
else if (suuji >= 13) printf("NO\n");
}
/***********/
int PIEL(int x, int y, int color){
int Wh=GetColor(255,255,255), Bw=GetColor(70,70,255), Gr=GetColor(70,255,70),
int col[]={Wh,Bw,Gr}, sx=x*BOX, sy=y*BOX;
DrawBox(sx, sy, sx+BOX-1, sy+BOX-1, col[color], TRUE); return 0;
}
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow){
int SetFontThickness(int TinckPal), CheckHitKey(int KeyCode), i, j, MouseX, MouseY;
int PIXjoho[MESH_Y][MESH_X]={0}, d=0, sum=0, Gry,genzaiti=0;
int jMX=0, P=15, p[18][18], t[18], bango[18][18], ironanba[18][18], mm; FILE *file;
ChangeWindowMode(TRUE);
if(DxLib_Init() == -1){return -1;}
SetMouseDispFlag(TRUE);
Gry=GetColor(200, 200, 200);
DrawBox(0, 0, 800, 600, Gry, TRUE);
for(i=0; i<MESH_Y; i++){
for(j=0; j<MESH_X; j++){
PIEL(j, i, 0);
}
}
/***********/
while(!ProcessMessage()){
if((GetMouseInput() & MOUSE_INPUT_LEFT)){
while (GetMouseInput() & MOUSE_INPUT_LEFT);
GetMousePoint(&MouseX, &MouseY);
MouseX = MouseX/BOX;
MouseY = MouseY/BOX;
if(MouseX<MESH_X && MouseY<MESH_Y){
PIXjoho[MouseY][MouseX]++;
if( PIXjoho[MouseY][MouseX]>2) PIXjoho[MouseY][MouseX]=0;
PIEL(MouseX,MouseY, PIXjoho[MouseY][MouseX]);
}
}
}
/*********/
file=fopen("meshpanel.txt","w");
for(i=0; i<MESH_Y; i++){
for(j=0; j<MESH_X; j++){
fprintf(file,"%d ", PIXjoho[i][j]);
}
fprintf(file,"\n");
}
fclose(file);
file=fopen("meshpanel.txt","r");
for(i=0; i<MESH_Y; i++){
for(j=0; j<MESH_X; j++){
fscanf(file,"%d", &PIXjoho[i][j]);
}
}
fclose(file);
/**********/
for (mm = 0; mm < P; mm++) {
for (j = 0; j < P; j++){
t[j] = p[j][mm];
}
for (j = 0; j < P+10;j++){
bango[mm][j] = 0;
ironanba[mm][j] = 0;
}
while (genzaiti < P){
while ((t[genzaiti] == 0) && (genzaiti< MESH_Y)) genzaiti += genzaiti;
if (genzaiti >= MESH_Y) break;
i = t[genzaiti];
while (t[genzaiti] == i){
sum += sum;
genzaiti += genzaiti;
}
bango[mm][d] = sum;
ironanba[mm][d] = i;
d += d;
sum = 0;
}
}
for (mm = 0; mm < P; mm++) {
for (j = jMX+1; j < 20 ; j++){
if (bango[mm][j] > 0) jMX = j;
printf("\n");
}
}
for (j = 0; j <= jMX ; j++) {
for (mm = 0; mm < P; mm++){
printf("%2d", bango[mm][j]);
}
printf("\n");
}
printf("\n");
for (j = 0; j <= jMX ; j++) {
for (mm = 0; mm < P; mm++) {
printf("%2d", ironanba[mm][j]);
}
printf("\n");
}
printf("\n");
file=fopen("takasa.txt","w");
for (j = 0; j <= jMX ; j++) {
for (mm = 0; mm < P; mm++) {
hikaku(bango[mm][j]);
scanf("%d",bango[mm][j]);
fprintf(file,"%d",bango[mm][j]);
}
printf("\n");
}
for (j = 0; j <= jMX; j++) {
for (mm = 0; mm < P; mm++){
hikaku(bango[mm][j]);
scanf("%d", bango[mm][j]);
fprintf(file,"%d",bango[mm][j]);
}
printf("\n");
}
printf("\n");
fclose(file);
file=fopen("takasairo.txt","w");
for (j = 0; j <= jMX ; j++) {
for (mm = 0; mm < P; mm++){
hikaku(ironanba[mm][j]);
fprintf(file,"%2d",ironanba[mm][j]);
}
printf("\n");
}
fclose(file);
return 0;
}