#include "DxLib.h" #include "math.h" unsigned int iro1 = GetColor(0xff, 0xff, 0xff); unsigned int iro2 = GetColor(0xc0, 0xc0, 0xff); unsigned int iro3 = GetColor(0xff, 0xff, 0x00); int star[440][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); SetGraphMode(1920, 1080, 32); if (DxLib_Init() == -1) { return -1; } SetDrawScreen(DX_SCREEN_BACK); mm = 5; for (i = 0; i < 200; i++) { star[i][0] = GetRand(1919); star[i][1] = GetRand(450); } for (i = 200; i < 240; i++) { star[i][0] = GetRand(1919); star[i][1] = GetRand(12) + 500; } for (i = 240; i < 440; i++) { star[i][0] = GetRand(1919); star[i][1] = GetRand(12) + 512; } 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(50); 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 < 440; i++) { if (i < 200) { DrawPixel(star[i][0], star[i][1], iro2); } else { DrawPixel(star[i][0], star[i][1], iro3); } } } void migi(void) { for (i = 0; i < 440; i++) { xp = star[i][0]; xp -= 15; if (xp < 0)xp = xp + 1920; star[i][0] = xp; } for (i = 0; i < 440; i++) { if (i < 200) { DrawPixel(star[i][0], star[i][1], iro2); } else { DrawPixel(star[i][0], star[i][1], iro3); } } } void hidari(void) { for (i = 0; i < 440; i++) { xp = star[i][0]; xp += 15; if (xp >= 1920)xp = xp - 1920; star[i][0] = xp; } for (i = 0; i < 440; i++) { if (i < 200) { 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 * 960) / k + 960; yyy = (2 * 960) / k + 540; xxx2 = (4 * 960) / k + 960; yyy2 = (2 * 960) / k + 540; 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 * 960 + 960; y = 2 / (result1 * 58 + zz); yyy = y * 960 + 540; x2 = (54 - result2 * 50) / (result1 * 50 + zz); xxx2 = x2 * 960 + 960; y2 = 2 / (result1 * 50 + zz); yyy2 = y2 * 960 + 540; 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 * 960 + 960; y = 2 / (zza + zzf * k); yyy = y * 960 + 540; x2 = (xxb + xxf * k) / (zzb + zzf * k); xxx2 = x2 * 960 + 960; y2 = 2 / (zzb + zzf * k); yyy2 = y2 * 960 + 540; DrawPixel(xxx, yyy, iro1); DrawPixel(xxx2, yyy2, iro1); } } } void pt2(void) { for (k = mm; k <= mm + (a3 - 1) * 5; k = k + 5) { xxx = (-4 * 960) / k + 960; yyy = (2 * 960) / k + 540; xxx2 = (4 * 960) / k + 960; yyy2 = (2 * 960) / k + 540; 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 * 960 + 960; y = 2 / (result1 * 50 + zz); yyy = y * 960 + 540; x2 = (-54 + result2 * 58) / (result1 * 58 + zz); xxx2 = x2 * 960 + 960; y2 = 2 / (result1 * 58 + zz); yyy2 = y2 * 960 + 540; 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 * 960 + 960; y = 2 / (zza + zzf * k); yyy = y * 960 + 540; x2 = (xxb - xxf * k) / (zzb + zzf * k); xxx2 = x2 * 960 + 960; y2 = 2 / (zzb + zzf * k); yyy2 = y2 * 960 + 540; 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 * 960 + 960; y = 2 / (result1 * 58); yyy = y * 960 + 540; x2 = (54 - result2 * 50) / (result1 * 50); xxx2 = x2 * 960 + 960; y2 = 2 / (result1 * 50); yyy2 = y2 * 960 + 540; 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 * 960 + 960; y = 2 / (zza + zzf * k); yyy = y * 960 + 540; x2 = (xxb + xxf * k) / (zzb + zzf * k); xxx2 = x2 * 960 + 960; y2 = 2 / (zzb + zzf * k); yyy2 = y2 * 960 + 540; 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 * 960 + 960; y = 2 / (zzf + sin((h + k * 5) * PI / 180.0) * 58); yyy = y * 960 + 540; x2 = (xxf - cos((h + k * 5) * PI / 180.0) * 50) / (zzf + sin((h + k * 5) * PI / 180.0) * 50); xxx2 = x2 * 960 + 960; y2 = 2 / (zzf + sin((h + k * 5) * PI / 180.0) * 50); yyy2 = y2 * 960 + 540; 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 * 960 + 960; y = 2 / (result1 * 58); yyy = y * 960 + 540; x2 = (54 - result2 * 50) / (result1 * 50); xxx2 = x2 * 960 + 960; y2 = 2 / (result1 * 50); yyy2 = y2 * 960 + 540; 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 * 960 + 960; y = 2 / (zza + zzf * k); yyy = y * 960 + 540; x2 = (xxb + xxf * k) / (zzb + zzf * k); xxx2 = x2 * 960 + 960; y2 = 2 / (zzb + zzf * k); yyy2 = y2 * 960 + 540; 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 * 960 + 960; y = 2 / (zzf - sin((h - k * 5) * PI / 180.0) * 50); yyy = y * 960 + 540; x2 = (xxf + cos((h - k * 5) * PI / 180.0) * 58) / (zzf - sin((h - k * 5) * PI / 180.0) * 58); xxx2 = x2 * 960 + 960; y2 = 2 / (zzf - sin((h - k * 5) * PI / 180.0) * 58); yyy2 = y2 * 960 + 540; 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 * 960 + 960; y = 2 / (result1 * 50); yyy = y * 960 + 540; x2 = (-54 + result2 * 58) / (result1 * 58); xxx2 = x2 * 960 + 960; y2 = 2 / (result1 * 58); yyy2 = y2 * 960 + 540; 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 * 960 + 960; y = 2 / (zza + zzf * k); yyy = y * 960 + 540; x2 = (xxb - xxf * k) / (zzb + zzf * k); xxx2 = x2 * 960 + 960; y2 = 2 / (zzb + zzf * k); yyy2 = y2 * 960 + 540; 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 * 960 + 960; y = 2 / (zzf - sin((h - k * 5) * PI / 180.0) * 58); yyy = y * 960 + 540; x2 = (xxf - cos((h - k * 5) * PI / 180.0) * 50) / (zzf - sin((h - k * 5) * PI / 180.0) * 50); xxx2 = x2 * 960 + 960; y2 = 2 / (zzf - sin((h - k * 5) * PI / 180.0) * 50); yyy2 = y2 * 960 + 540; 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 * 960 + 960; y = 2 / (result1 * 50); yyy = y * 960 + 540; x2 = (-54 + result2 * 58) / (result1 * 58); xxx2 = x2 * 960 + 960; y2 = 2 / (result1 * 58); yyy2 = y2 * 960 + 540; 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 * 960 + 960; y = 2 / (zza + zzf * k); yyy = y * 960 + 540; x2 = (xxb - xxf * k) / (zzb + zzf * k); xxx2 = x2 * 960 + 960; y2 = 2 / (zzb + zzf * k); yyy2 = y2 * 960 + 540; 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 * 960 + 960; y = 2 / (zzf + sin((h + k * 5) * PI / 180.0) * 50); yyy = y * 960 + 540; x2 = (xxf + cos((h + k * 5) * PI / 180.0) * 58) / (zzf + sin((h + k * 5) * PI / 180.0) * 58); xxx2 = x2 * 960 + 960; y2 = 2 / (zzf + sin((h + k * 5) * PI / 180.0) * 58); yyy2 = y2 * 960 + 540; DrawPixel(xxx, yyy, iro1); DrawPixel(xxx2, yyy2, iro1); } } }