'2018/12'에 해당되는 글 2건

제가 3D에 대한 역량이 부족한 것인지 아닌지는 모르겠으나

요즘 게임도 재미있....(쿨럭

아무튼 일본어 번역건도 있고 여러가지 이유로 3D게임에 대한 개발을 중지하고

Civil War의 후속작을 만들어보려고 합니다.

이번에는 C언어를 이용하지 않고 유니티를 이용해볼까도 생각하고 있습니다.


그리고 Civil War의 사후관리(?)를 중단하겠습니다.

더이상 제가 건드는 것은 코드를 좀더 꼬아버리는 행위가 되므로 무언가의 버그가 계속 생길것으로 예상이 됩니다.


그래서 후속작을 많이 기대해 주시기를 바랍니다.


제가 아마 2월달 전에는 만들지 않을까하고 조심스럽게 생각합니다.


블로그 이미지

이사가는 사람

안녕하세요 블로그를 옮기려고 생각하고 있습니다. 해당 블로그는 폐기하고 다음 다른 블로그에서 뵙도록 하겠습니다. 감사합니다!

,

코드가 생각보다 많이 더러울 수도 있음을 미리 알려드립니다.

몆년이 주기인지는 모르겠으나 무슨 조건이 있는 것은 확실하고 음력의 달이 반복되는 현상의 조건때문에 아마도 2099년까지 유효한 프로그램이 될 것 같습니다.

만약 조건을 아시는 분이 이 블로그에 오게 된다면 댓글로 알려주시면 감사할 것 같습니다.

그럼 프로그램과 함께 코드를 수정조치를 취하겠습니다.


#include <time.h>

#include <stdio.h>

#include <Windows.h>

#include <stdlib.h>

#include <string.h>


#define WA 32


#define bool int

#define true 1

#define false 0


/*int main() {

struct tm *localtime(const time_t *timer);

struct tm *date;

const time_t t = time(NULL);

처음:

date = localtime(&t);


printf(

"%d/%d/%d %d:%d:%d\n", date->tm_year + 1900, date->tm_mon + 1,

date->tm_mday, date->tm_hour, date->tm_min, date->tm_sec

);

Sleep(1000);

goto 처음;

getchar();

return 0;

}*/


int main() {

struct tm*localtime(const time_t *timer);

struct tm*date;

const time_t t = time(NULL);


int t_year; //양력 년

int t_mon; //양력 달

int t_day; //양력 일


//int i_year; //임시 년

//int i_mon; //임시 달

//int i_day; //임시 일


int m_year; //음력 년

int m_mon; //음력 달

int m_day; //음력 일


int Mn = 0; //깍인 수


bool no_moon = 0; //삭

bool crescent = 0; //초승달

bool waxing_moon = 0;//상현달

bool full_moon = 0;//보름달

bool last_quarter = 0;//하현달

bool dark_moon = 0;//그믐달


//윤달이 든 목록

int one_more_mon[30];


for (int iii = 0; iii == 30; iii++) {

one_more_mon[iii] = 0;

}

printf("해당 프로그램의 수명은 존재하나 어디까지인지는 모르겠습니다.\n");

printf("버그 제보는 https://kilo-staticgames-85326.tistory.com/notice/85 \n 이메일 제보는 kilo0103@naver.com또는 kyjkyj0816@naver.com \n");

printf("학교에서 나누어준 프린트에 있는 달의 관측시간을 기반으로 제작을 하였다는 것을 말하겠습니다.\n\n\n");

date = localtime(&t);

t_year = date->tm_year + 1900;

t_mon = date->tm_mon + 1;

t_day = date->tm_mday;

printf("양력은 %d년%d월%d일 %d:%d:%d\n\n",

t_year,

t_mon,

t_day,

date->tm_hour,

date->tm_min,

date->tm_sec);

for (;;) {

if (t_year == 2018 && t_mon == 12 && t_day == 7) {

break;

}

else {

t_day--;

Mn++;

if (t_day == 0) {

if (t_mon == 1 || t_mon == 3 || t_mon == 5 || t_mon == 7 || t_mon == 8 || t_mon == 10 || t_mon == 12) { //만약 1월,3월,5월,7월,8월,10월,12월이라면 31일로 셋팅

t_day = 31;

}

else if (t_mon == 2) { //만약 2월이라면

if (t_year % 4 == 0 || t_year % 400 == 0) { //윤년일시에 29일로 셋팅

if (t_year % 100 == 0) {

t_mon = 28;

}

else {

t_mon = 29;

}

}

else { //아니라면 28일로 셋팅

t_mon = 28;

}

}

else {//그 외는 전부 30일로 셋팅

t_day = 30;

}

t_mon--;

if (t_mon == 0) {

t_mon = 12;

t_year--;

}

}

}

}

m_year = 2018;

m_mon = 11;

m_day = 1;

/*while (AaA == Mn) {

//2월을 제외한 달은 30일이 있고 2월만 29일로 고정

printf("음력 시작\n");

m_day++;

if (m_day == 29) {

if (m_mon == 2) {

m_mon++;

m_day = 1;

}

}

else if (m_day == 30) {

m_day = 1;

if (m_mon == 12) {

m_mon = 1;

m_year++;

}

else {

m_mon++;

}

}

AaA++;

}*/

음력반복:

if (Mn == 0) {

goto 음력반복_끝;

}

else {

m_day++;

if (m_year == 2020 && m_mon == 4 && m_day == 30 && one_more_mon[0] == 0) {

one_more_mon[0] = 1;

m_day = 1;

}

else if (m_year == 2023 && m_mon == 2 && m_day == 29 && one_more_mon[1] == 0) {

one_more_mon[1] = 1;

m_day = 1;

}

else if (m_year == 2025 && m_mon == 6 && m_day == 30 && one_more_mon[2] == 0) {

one_more_mon[2] = 1;

m_day = 1;

}

else if (m_year == 2028 && m_mon == 5 && m_day == 30 && one_more_mon[3] == 0) {

one_more_mon[3] = 1;

m_day = 1;

}

else if (m_year == 2031 && m_mon == 3 && m_day == 30 && one_more_mon[4] == 0) {

one_more_mon[4] = 1;

m_day = 1;

}

else if (m_year == 2033 && m_mon == 11 && m_day == 30 && one_more_mon[5] == 0) {

one_more_mon[5] = 1;

m_day = 1;

}

else if (m_year == 2036 && m_mon == 6 && m_day == 30 && one_more_mon[6] == 0) {

one_more_mon[6] = 1;

m_day = 1;

}

else if (m_year == 2039 && m_mon == 5 && m_day == 30 && one_more_mon[7] == 0) {

one_more_mon[7] = 1;

m_day = 1;

}

else if (m_year == 2042 && m_mon == 2 && m_day == 29 && one_more_mon[8] == 0) {

one_more_mon[8] = 1;

m_day = 1;

}

else if (m_year == 2044 && m_mon == 7 && m_day == 30 && one_more_mon[9] == 0) {

one_more_mon[9] = 1;

m_day = 1;

}

else if (m_year == 2047 && m_mon == 5 && m_day == 30 && one_more_mon[10] == 0) {

one_more_mon[10] = 1;

m_day = 1;

}

else if (m_year == 2050 && m_mon == 3 && m_day == 30 && one_more_mon[11] == 0) {

one_more_mon[11] = 1;

m_day = 1;

}

else if (m_year == 2052 && m_mon == 8 && m_day == 30 && one_more_mon[12] == 0) {

one_more_mon[12] = 1;

m_day = 1;

}

else if (m_year == 2055 && m_mon == 6 && m_day == 30 && one_more_mon[13] == 0) {

one_more_mon[13] = 1;

m_day = 1;

}

else if (m_year == 2058 && m_mon == 4 && m_day == 30 && one_more_mon[14] == 0) {

one_more_mon[14] = 1;

m_day = 1;

}

else if (m_year == 2061 && m_mon == 3 && m_day == 30 && one_more_mon[15] == 0) {

one_more_mon[15] = 1;

m_day = 1;

}

else if (m_year == 2063 && m_mon == 7 && m_day == 30 && one_more_mon[16] == 0) {

one_more_mon[16] = 1;

m_day = 1;

}

else if (m_year == 2066 && m_mon == 5 && m_day == 30 && one_more_mon[17] == 0) {

one_more_mon[17] = 1;

m_day = 1;

}

else if (m_year == 2069 && m_mon == 4 && m_day == 30 && one_more_mon[18] == 0) {

one_more_mon[18] = 1;

m_day = 1;

}

else if (m_year == 2071 && m_mon == 8 && m_day == 30 && one_more_mon[19] == 0) {

one_more_mon[19] = 1;

m_day = 1;

}

else if (m_year == 2074 && m_mon == 6 && m_day == 30 && one_more_mon[20] == 0) {

one_more_mon[20] = 1;

m_day = 1;

}

else if (m_year == 2077 && m_mon == 4 && m_day == 30 && one_more_mon[21] == 0) {

one_more_mon[21] = 1;

m_day = 1;

}

else if (m_year == 2080 && m_mon == 3 && m_day == 30 && one_more_mon[22] == 0) {

one_more_mon[22] = 1;

m_day = 1;

}

else if (m_year == 2082 && m_mon == 7 && m_day == 30 && one_more_mon[23] == 0) {

one_more_mon[23] = 1;

m_day = 1;

}

else if (m_year == 2085 && m_mon == 5 && m_day == 30 && one_more_mon[24] == 0) {

one_more_mon[24] = 1;

m_day = 1;

}

else if (m_year == 2088 && m_mon == 4 && m_day == 30 && one_more_mon[25] == 0) {

one_more_mon[25] = 1;

m_day = 1;

}

else if (m_year == 2090 && m_mon == 8 && m_day == 30 && one_more_mon[26] == 0) {

one_more_mon[26] = 1;

m_day = 1;

}

else if (m_year == 2093 && m_mon == 6 && m_day == 30 && one_more_mon[27] == 0) {

one_more_mon[27] = 1;

m_day = 1;

}

else if (m_year == 2096 && m_mon == 4 && m_day == 30 && one_more_mon[28] == 0) {

one_more_mon[28] = 1;

m_day = 1;

}

else if (m_year == 2099 && m_mon == 3 && m_day == 30 && one_more_mon[29] == 0) {

one_more_mon[29] = 1;

m_day = 1;

}

if (m_day == 29) {

if (m_mon == 2) {

m_mon++;

m_day = 1;

}

}

else if (m_day == 30) {

m_day = 1;

if (m_mon == 12) {

m_mon = 1;

m_year++;

}

else {

m_mon++;

}

}

Mn--;

goto 음력반복;

}

음력반복_끝:

printf("음력은 %d년%d월%d일이고\n오늘의", m_year, m_mon, m_day);


switch (m_day) {

case 1:

no_moon = 1;

break;

case 2:

case 3:

crescent = 1;

break;

case 4:

case 5:

case 6:

case 7:

case 8:

waxing_moon = 1;

break;

case 9:

case 10:

case 11:

case 12:

case 13:

case 14:

case 15:

full_moon = 1;

break;

case 16:

case 17:

case 18:

case 19:

case 20:

case 21:

case 22:

case 23:

last_quarter = 1;

break;

case 24:

case 25:

case 26:

case 27:

case 28:

case 29:

dark_moon = 1;

break;

case 30:

no_moon = 1;

break;

}


if (no_moon == 1) {

printf("달의 위상은 '삭'입니다.\n태양과 함께 뜨고 지므로 관측은 불가능 합니다.\n");

}

else if (crescent == 1) {

printf("달의 위상은 '초승달'입니다.\n뜨는 시각은 '09시'이고\n남중하는 시각으로는 '15시'이고\n지는 시각은 '21시'입니다.\n");

}

else if (waxing_moon == 1) {

printf("달의 위상은 '상현달'입니다.\n뜨는 시각은 '12시'이고\n남중하는 시각으로는 '18시'이고\n지는 시각은 '00시'입니다.\n");

}

else if (full_moon == 1) {

printf("달의 위상은 '보름달'입니다.\n뜨는 시각은 '18시'이고\n남중하는 시각으로는 '00시'이고\n지는 시각은 '06시'입니다.\n");

}

else if (last_quarter == 1) {

printf("달의 위상은 '하현달'입니다.\n뜨는 시각은 '00시'이고\n남중하는 시각으로는 '06시'이고\n지는 시각은 '12시'입니다.\n");

}

else if (dark_moon == 1) {

printf("달의 위상은 '그믐달'입니다.\n뜨는 시각은 '03시'이고\n남중하는 시각으로는 '09시'이고\n지는 시각은 '15시'입니다.\n");

}

printf("종료하시려면 '엔터'를 눌러주세요\n");

Sleep(1000);

getchar();

return 0;

}

해당 달의 위상 조건 같은 경우는 제가 다니는 학교의 학습지를 바탕으로 만들었습니다.


해당 코드는 코드를 정리하지 않았기 때문에 쓰지 않는 코드도 존재합니다.

그렇기 때문에 그 점은 알아주시고 직접 코드를 정리하시는 것은 2차 저작물로 인정하겠습니다.

또한 학교 선생님의 노트북에서 dll이 없다고 하였는데 무슨 dll인지를 확인시켜주시지 않아서 그 점은 직접 dll을 다운로드 하실 필요가 있다고 생각합니다.


아마도 왠만하면 깔려있을 겁니다.

블로그 이미지

이사가는 사람

안녕하세요 블로그를 옮기려고 생각하고 있습니다. 해당 블로그는 폐기하고 다음 다른 블로그에서 뵙도록 하겠습니다. 감사합니다!

,