#include "DxLib.h" #include "math.h" unsigned int iro1 = GetColor(0xff,0xff,0xff); unsigned int iro2 = GetColor(0xaa, 0xaa, 0xff); unsigned int iro3 = GetColor(0xff, 0xff, 0x00); int star[240][2]; int xp; int i,j; int mm,zz,k,h; int ss; int a1,b1,c1,a2,b2,c2,a3,b3,c3; int xxx, xxx2, yyy, yyy2; const double PI = 3.14159; double radian; double result1; double result2; double radian2; double result1b; double result2b; double x, x2; double y, y2; double xxa, xxb, zza, zzb, xxf, zzf; void settei(void); void seisi(void); void migi(void); void hidari(void); void pt1(void); void pt2(void); void pt3(void); void pt4(void); void pt5(void); void pt6(void); int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { SetOutApplicationLogValidFlag(FALSE); if (DxLib_Init() == -1) { return -1; } SetDrawScreen(DX_SCREEN_BACK); mm = 5; for (i = 0; i < 100; i++) { star[i][0] = GetRand(639); star[i][1] = GetRand(200); } for (i = 100; i < 140; i++) { star[i][0] = GetRand(639); star[i][1] = GetRand(6)+220; } for (i = 140; i < 240; i++) { star[i][0] = GetRand(639); star[i][1] = GetRand(6)+226; } a1 = GetRand(2); if(a1==0){ b1 = GetRand(1)+1; c1 = 0; a2 = GetRand(29) + 3; b2 = GetRand(11) + 6; c2 = GetRand(29) + 3; } else { b1 = 0; c1 = GetRand(1) + 1; a2 = GetRand(11) + 6; b2 = GetRand(29) + 3; c2 = GetRand(11) + 6; } if (a1 == 0 && b1 == 1 && c1 == 0) ss = 1; if (a1 == 0 && b1 == 2 && c1 == 0) ss = 2; if (a1 == 1 && b1 == 0 && c1 == 1) ss = 3; if (a1 == 1 && b1 == 0 && c1 == 2) ss = 4; if (a1 == 2 && b1 == 0 && c1 == 1) ss = 5; if (a1 == 2 && b1 == 0 && c1 == 2) ss = 6; if (a2 >= 20) { a3 = 20; b3 = 0; c3 = 0; } else if ((a2 + b2) >= 20) { a3 = a2; b3 = 20 - a3; c3 = 0; } else { a3 = a2; b3 = b2; c3 = 20 - (a3 + b3); } while (1) { ClearDrawScreen(); switch (ss) { case 1: seisi(); pt1(); break; case 2: seisi(); pt2(); break; case 3: migi(); pt3(); break; case 4: migi(); pt4(); break; case 5: hidari(); pt5(); break; case 6: hidari(); pt6(); break; } mm = mm - 1; if (mm <= 0) { mm = 5; a2 = a2 - 1; } if (a2 <= 0) { settei(); } if (a2 >= 20) { a3 = 20; b3 = 0; c3 = 0; } else if ((a2 + b2) >= 20) { a3 = a2; b3 = 20 - a3; c3 = 0; } else { a3 = a2; b3 = b2; c3 = 20 - (a3 + b3); } ScreenFlip(); WaitTimer(20); if (ProcessMessage() == -1)break; if (CheckHitKey(KEY_INPUT_SPACE) == 1)break; } DxLib_End(); return 0; } void settei(void){ a1 = b1; a2 = b2; b1 = c1; b2 = c2; if (a1 == 0) { c1 = 0; c2 = GetRand(29) + 3; } else { c1 = GetRand(1) + 1; c2 = GetRand(11) + 6; } if (a1 == 0 && b1 == 1 && c1 == 0) ss = 1; if (a1 == 0 && b1 == 2 && c1 == 0) ss = 2; if (a1 == 1 && b1 == 0 && c1 == 1) ss = 3; if (a1 == 1 && b1 == 0 && c1 == 2) ss = 4; if (a1 == 2 && b1 == 0 && c1 == 1) ss = 5; if (a1 == 2 && b1 == 0 && c1 == 2) ss = 6; } void seisi(void) { for (i = 0; i < 240; i++) { if (i < 100) { DrawPixel(star[i][0], star[i][1], iro2); } else { DrawPixel(star[i][0], star[i][1], iro3); } } } void migi(void) { for (i = 0; i < 240; i++) { xp = star[i][0]; xp -= 5; if (xp < 0)xp = xp + 640; star[i][0] = xp; } for (i = 0; i < 240; i++) { if (i < 100) { DrawPixel(star[i][0], star[i][1], iro2); } else { DrawPixel(star[i][0], star[i][1], iro3); } } } void hidari(void) { for (i = 0; i < 240; i++) { xp = star[i][0]; xp += 5; if (xp >= 640)xp = xp - 640; star[i][0] = xp; } for (i = 0; i < 240; i++) { if (i < 100) { DrawPixel(star[i][0], star[i][1], iro2); } else { DrawPixel(star[i][0], star[i][1], iro3); } } } void pt1(void) { for (k = mm; k <= mm + (a3 - 1) * 5; k = k + 5) { xxx = (-4 * 320) / k + 320; yyy = (2 * 320) / k + 240; xxx2 = (4 * 320) / k + 320; yyy2 = (2 * 320) / k + 240; if (a3 >= 2) { DrawPixel(xxx, yyy, iro1); DrawPixel(xxx2, yyy2, iro1); } } if (b3 > 0) { zz = mm + (a3 - 1) * 5; for (k = 5; k <= b3 * 5; k = k + 5) { radian = k * PI / 180.0; result1 = sin(radian); result2 = cos(radian); x = (54 - result2 * 58) / (result1 * 58 + zz ); xxx = x * 320 + 320; y = 2 / (result1 * 58 + zz); yyy = y * 320 + 240; x2 = (54 - result2 * 50) / (result1 * 50 + zz); xxx2 = x2 * 320 + 320; y2 = 2 / (result1 * 50 + zz); yyy2 = y2 * 320 + 240; DrawPixel(xxx, yyy, iro1); DrawPixel(xxx2, yyy2, iro1); } } if (c3 > 0) { h = b3 * 5; radian = h * PI / 180.0; result1 = sin(radian); result2 = cos(radian); radian2 = (90.0 - h) * PI / 180.0; result1b = sin(radian2); result2b = cos(radian2); xxa = 54 - result2 * 58; zza = result1 * 58 + zz; xxb = 54 - result2 * 50; zzb = result1 * 50 + zz; xxf = result2b * 5; zzf = result1b * 5; for (k = 1; k <= c3; k = k + 1) { x = (xxa + xxf * k) / (zza + zzf * k); xxx = x * 320 + 320; y = 2 / (zza + zzf * k); yyy = y * 320 + 240; x2 = (xxb + xxf * k) / (zzb + zzf * k); xxx2 = x2 * 320 + 320; y2 = 2 / (zzb + zzf * k); yyy2 = y2 * 320 + 240; DrawPixel(xxx, yyy, iro1); DrawPixel(xxx2, yyy2, iro1); } } } void pt2(void) { for (k = mm; k <= mm + (a3 - 1) * 5; k = k + 5) { xxx = (-4 * 320) / k + 320; yyy = (2 * 320) / k + 240; xxx2 = (4 * 320) / k + 320; yyy2 = (2 * 320) / k + 240; if (a3 >= 2) { DrawPixel(xxx, yyy, iro1); DrawPixel(xxx2, yyy2, iro1); } } if (b3 > 0) { zz = mm + (a3 - 1) * 5; for (k = 5; k <= b3 * 5; k = k + 5) { radian = k * PI / 180.0; result1 = sin(radian); result2 = cos(radian); x = (-54 + result2 * 50) / (result1 * 50 + zz); xxx = x * 320 + 320; y = 2 / (result1 * 50 + zz); yyy = y * 320 + 240; x2 = (-54 + result2 * 58) / (result1 * 58 + zz); xxx2 = x2 * 320 + 320; y2 = 2 / (result1 * 58 + zz); yyy2 = y2 * 320 + 240; DrawPixel(xxx, yyy, iro1); DrawPixel(xxx2, yyy2, iro1); } } if (c3 > 0) { h = b3 * 5; radian = h * PI / 180.0; result1 = sin(radian); result2 = cos(radian); radian2 = (90.0 - h) * PI / 180.0; result1b = sin(radian2); result2b = cos(radian2); xxa = -54 + result2 * 50; zza = result1 * 50 + zz; xxb = -54 + result2 * 58; zzb = result1 * 58 + zz; xxf = result2b * 5; zzf = result1b * 5; for (k = 1; k <= c3; k = k + 1) { x = (xxa - xxf * k) / (zza + zzf * k); xxx = x * 320 + 320; y = 2 / (zza + zzf * k); yyy = y * 320 + 240; x2 = (xxb - xxf * k) / (zzb + zzf * k); xxx2 = x2 * 320 + 320; y2 = 2 / (zzb + zzf * k); yyy2 = y2 * 320 + 240; DrawPixel(xxx, yyy, iro1); DrawPixel(xxx2, yyy2, iro1); } } } void pt3(void) { for (k = mm; k <= mm + (a3 - 1) * 5; k = k + 5) { radian = k * PI / 180.0; result1 = sin(radian); result2 = cos(radian); x = (54 - result2 * 58) / (result1 * 58); xxx = x * 320 + 320; y = 2 / (result1 * 58); yyy = y * 320 + 240; x2 = (54 - result2 * 50) / (result1 * 50); xxx2 = x2 * 320 + 320; y2 = 2 / (result1 * 50); yyy2 = y2 * 320 + 240; if (a3 >= 2) { DrawPixel(xxx, yyy, iro1); DrawPixel(xxx2, yyy2, iro1); } } if (b3 > 0) { h = mm + (a3 - 1) * 5; radian = h * PI / 180.0; result1 = sin(radian); result2 = cos(radian); radian2 = (90.0 - h) * PI / 180.0; result1b = sin(radian2); result2b = cos(radian2); xxa = 54 - result2 * 58; zza = result1 * 58; xxb = 54 - result2 * 50; zzb = result1 * 50; xxf = result2b * 5; zzf = result1b * 5; for (k = 1; k <= b3; k = k + 1) { x = (xxa + xxf * k) / (zza + zzf * k); xxx = x * 320 + 320; y = 2 / (zza + zzf * k); yyy = y * 320 + 240; x2 = (xxb + xxf * k) / (zzb + zzf * k); xxx2 = x2 * 320 + 320; y2 = 2 / (zzb + zzf * k); yyy2 = y2 * 320 + 240; DrawPixel(xxx, yyy, iro1); DrawPixel(xxx2, yyy2, iro1); } } if (c3 > 0) { radian = h * PI / 180.0; result1 = sin(radian); result2 = cos(radian); xxf = xxa + xxf * b3 + result2 * 58; zzf = zza + zzf * b3 - result1 * 58; for (k = 1; k <= c3; k = k + 1) { x = (xxf - cos((h+k*5) * PI / 180.0) * 58) / (zzf + sin((h+k*5) * PI / 180.0) * 58); xxx = x * 320 + 320; y = 2 / (zzf + sin((h+k*5) * PI / 180.0) * 58); yyy = y * 320 + 240; x2 = (xxf - cos((h+k*5) * PI / 180.0) * 50) / (zzf + sin((h+k*5) * PI / 180.0) * 50); xxx2 = x2 * 320 + 320; y2 = 2 / (zzf + sin((h+k*5) * PI / 180.0) * 50); yyy2 = y2 * 320 + 240; DrawPixel(xxx, yyy, iro1); DrawPixel(xxx2, yyy2, iro1); } } } void pt4(void) { for (k = mm; k <= mm + (a3 - 1) * 5; k = k + 5) { radian = k * PI / 180.0; result1 = sin(radian); result2 = cos(radian); x = (54 - result2 * 58) / (result1 * 58); xxx = x * 320 + 320; y = 2 / (result1 * 58); yyy = y * 320 + 240; x2 = (54 - result2 * 50) / (result1 * 50); xxx2 = x2 * 320 + 320; y2 = 2 / (result1 * 50); yyy2 = y2 * 320 + 240; if (a3 >= 2) { DrawPixel(xxx, yyy, iro1); DrawPixel(xxx2, yyy2, iro1); } } if (b3 > 0) { h = mm + (a3 - 1) * 5; radian = h * PI / 180.0; result1 = sin(radian); result2 = cos(radian); radian2 = (90.0 - h) * PI / 180.0; result1b = sin(radian2); result2b = cos(radian2); xxa = 54 - result2 * 58; zza = result1 * 58; xxb = 54 - result2 * 50; zzb = result1 * 50; xxf = result2b * 5; zzf = result1b * 5; for (k = 1; k <= b3; k = k + 1) { x = (xxa + xxf * k) / (zza + zzf * k); xxx = x * 320 + 320; y = 2 / (zza + zzf * k); yyy = y * 320 + 240; x2 = (xxb + xxf * k) / (zzb + zzf * k); xxx2 = x2 * 320 + 320; y2 = 2 / (zzb + zzf * k); yyy2 = y2 * 320 + 240; DrawPixel(xxx, yyy, iro1); DrawPixel(xxx2, yyy2, iro1); } } if (c3 > 0) { radian = h * PI / 180.0; result1 = sin(radian); result2 = cos(radian); xxf = xxa + xxf * b3 - result2 * 50; zzf = zza + zzf * b3 + result1 * 50; for (k = 1; k <= c3; k = k + 1) { x = (xxf + cos((h-k*5) * PI / 180.0) * 50) / (zzf - sin((h-k*5) * PI / 180.0) * 50); xxx = x * 320 + 320; y = 2 / (zzf - sin((h-k*5) * PI / 180.0) * 50); yyy = y * 320 + 240; x2 = (xxf + cos((h-k*5) * PI / 180.0) * 58) / (zzf - sin((h-k*5) * PI / 180.0) * 58); xxx2 = x2 * 320 + 320; y2 = 2 / (zzf - sin((h-k*5) * PI / 180.0) * 58); yyy2 = y2 * 320 + 240; DrawPixel(xxx, yyy, iro1); DrawPixel(xxx2, yyy2, iro1); } } } void pt5(void) { for (k = mm; k <= mm + (a3 - 1) * 5; k = k + 5) { radian = k * PI / 180.0; result1 = sin(radian); result2 = cos(radian); x = (-54 + result2 * 50) / (result1 * 50); xxx = x * 320 + 320; y = 2 / (result1 * 50); yyy = y * 320 + 240; x2 = (-54 + result2 * 58) / (result1 * 58); xxx2 = x2 * 320 + 320; y2 = 2 / (result1 * 58); yyy2 = y2 * 320 + 240; if (a3 >= 2) { DrawPixel(xxx, yyy, iro1); DrawPixel(xxx2, yyy2, iro1); } } if (b3 > 0) { h = mm + (a3 - 1) * 5; radian = h * PI / 180.0; result1 = sin(radian); result2 = cos(radian); radian2 = (90.0 - h) * PI / 180.0; result1b = sin(radian2); result2b = cos(radian2); xxa = -54 + result2 * 50; zza = result1 * 50; xxb = -54 + result2 * 58; zzb = result1 * 58; xxf = result2b * 5; zzf = result1b * 5; for (k = 1; k <= b3; k = k + 1) { x = (xxa - xxf * k) / (zza + zzf * k); xxx = x * 320 + 320; y = 2 / (zza + zzf * k); yyy = y * 320 + 240; x2 = (xxb - xxf * k) / (zzb + zzf * k); xxx2 = x2 * 320 + 320; y2 = 2 / (zzb + zzf * k); yyy2 = y2 * 320 + 240; DrawPixel(xxx, yyy, iro1); DrawPixel(xxx2, yyy2, iro1); } } if (c3 > 0) { radian = h * PI / 180.0; result1 = sin(radian); result2 = cos(radian); xxf = xxa - xxf * b3 + result2 * 58; zzf = zza + zzf * b3 + result1 * 58; for (k = 1; k <= c3; k = k + 1) { x = (xxf - cos((h-k*5) * PI / 180.0) * 58) / (zzf - sin((h-k*5) * PI / 180.0) * 58); xxx = x * 320 + 320; y = 2 / (zzf - sin((h-k*5) * PI / 180.0) * 58); yyy = y * 320 + 240; x2 = (xxf - cos((h-k*5) * PI / 180.0) * 50) / (zzf - sin((h-k*5) * PI / 180.0) * 50); xxx2 = x2 * 320 + 320; y2 = 2 / (zzf - sin((h-k*5) * PI / 180.0) * 50); yyy2 = y2 * 320 + 240; DrawPixel(xxx, yyy, iro1); DrawPixel(xxx2, yyy2, iro1); } } } void pt6(void) { for (k = mm; k <= mm + (a3 - 1) * 5; k = k + 5) { radian = k * PI / 180.0; result1 = sin(radian); result2 = cos(radian); x = (-54 + result2 * 50) / (result1 * 50); xxx = x * 320 + 320; y = 2 / (result1 * 50); yyy = y * 320 + 240; x2 = (-54 + result2 * 58) / (result1 * 58); xxx2 = x2 * 320 + 320; y2 = 2 / (result1 * 58); yyy2 = y2 * 320 + 240; if (a3 >= 2) { DrawPixel(xxx, yyy, iro1); DrawPixel(xxx2, yyy2, iro1); } } if (b3 > 0) { h = mm + (a3 - 1) * 5; radian = h * PI / 180.0; result1 = sin(radian); result2 = cos(radian); radian2 = (90.0 - h) * PI / 180.0; result1b = sin(radian2); result2b = cos(radian2); xxa = -54 + result2 * 50; zza = result1 * 50; xxb = -54 + result2 * 58; zzb = result1 * 58; xxf = result2b * 5; zzf = result1b * 5; for (k = 1; k <= b3; k = k + 1) { x = (xxa - xxf * k) / (zza + zzf * k); xxx = x * 320 + 320; y = 2 / (zza + zzf * k); yyy = y * 320 + 240; x2 = (xxb - xxf * k) / (zzb + zzf * k); xxx2 = x2 * 320 + 320; y2 = 2 / (zzb + zzf * k); yyy2 = y2 * 320 + 240; DrawPixel(xxx, yyy, iro1); DrawPixel(xxx2, yyy2, iro1); } } if (c3 > 0) { radian = h * PI / 180.0; result1 = sin(radian); result2 = cos(radian); xxf = xxa - xxf * b3 - result2 * 50; zzf = zza + zzf * b3 - result1 * 50; for (k = 1; k <= c3; k = k + 1) { x = (xxf + cos((h+k*5) * PI / 180.0) * 50) / (zzf + sin((h+k*5) * PI / 180.0) * 50); xxx = x * 320 + 320; y = 2 / (zzf + sin((h+k*5) * PI / 180.0) * 50); yyy = y * 320 + 240; x2 = (xxf + cos((h+k*5) * PI / 180.0) * 58) / (zzf + sin((h+k*5) * PI / 180.0) * 58); xxx2 = x2 * 320 + 320; y2 = 2 / (zzf + sin((h+k*5) * PI / 180.0) * 58); yyy2 = y2 * 320 + 240; DrawPixel(xxx, yyy, iro1); DrawPixel(xxx2, yyy2, iro1); } } }