'프로그래밍일지 (고등학생 - 인문계)/자작 게임 배포 & 패치노트&프로그래밍 개인 일지'에 해당되는 글 32건

제가 간단하게 제작을 한 civil war를 오픈소스를 하여 코드를 공개하도록 하겠습니다.

리마스터작업을 진행중에 있으며 상당수의 코드가 깔끔하게 개편이 될 예정입니다.

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(viod) {
 int user, start, com, item, man, heal = 0;
 int not_safe_water = 0, wheat = 0, iron = 0, lead = 0;
 int water = 0, bread = 0, knife = 0, hand_gun = 0, Ar = 0, Sr = 0, Sg = 0;
 int Ct = 100, score = 0, thirst = 3;
sTarT:
 printf("제작 : STATIC GAMES\n시작하시려면 1 :");
 scanf_s("%d", &user);
 if (user == 1) {
  goto Mt; //메인으로 옮깁니다.
 }
 else {
  printf("잘못된 입력입니다.\n");
  goto sTarT; //시작문구로 옮깁니다.
 }
Mt:
 printf("타이틀 : civil war\n");
 printf("시작은 2번 \n");
 printf("처음 안내문구는 아무번호 \n");
 scanf_s("%d", &start);
 if (start == 2) {
  goto In_Game; //게임을 시작합니다.
 }
 else {
  goto sTarT; //다시 처음으로 돌아갑니다.
 }
In_Game:
 printf("안녕하세요?? 저는 당신을 이제부터 안내할 겁니다.\n");
 printf("제작은 간단하게\n");
 printf("캐릭터의 상태를 보고 계산을 합니다.\n");
 printf("그리고 턴을 마감할 수도 있습니다.\n");
 printf("매 턴마다 순서대로 진행해 주세요.\n시작을 하실때는 0번입니다.\n"); //안내를 하는 것
 scanf_s("%d", &com);  //입력을 요구합니다.
 if (com == 0) {
  goto main; //게임을 본격적으로 시작합니다.
 }
 else {
  printf("오류\n");
  goto In_Game;
 }
main:
 if (score >=0) {
  score++;
  printf("%d일째 생존\n", score);
  thirst--;
  not_safe_water++;
  wheat++;
  iron++;
  lead++; //더러운 물, 밀, 철, 납을 하나씩 매일 생산합니다.
  printf("당신이 보유중인 더러운 물 %d개,밀 %d개,철 %d개,납 %d개\n물 %d개,빵 %d개,칼 %d개,권총 %d개,돌격소총 %d개,저격소총 %d개,샷건 %d개\n그리고 캐릭터의 남은 채력 %d\n", not_safe_water, wheat, iron, lead, water, bread, knife, hand_gun, Ar, Sr, Sg, Ct);
  goto Cr;
 }
 else {
  printf("알수 없는 명령어 입니다. 다시 입력해 주세요\n");
  goto main;
 }
Cr:
 printf("물 11번\n빵 12번\n칼 13번\n권총14번\nAR 15번\nSR 16번\nSG17번\n없으면20번\n");
 scanf_s("%d", &com);
 if (com == 11) {
  if (not_safe_water >= 2) {
   printf("정화작업을 시작합니다.\n");
   not_safe_water--;
   not_safe_water--;
   water++; //더러운 물 두개를 깨끗한 물 하나로 정화합니다.
   goto Day;
  }
  else {
   printf("물자가 부족합니다.\n");
   goto Day;
  }
 }
 else if (com == 12) {
  if (wheat >= 3) {
   printf("빵을 굽기 시작합니다.\n");
   bread++;
   wheat--;
   wheat--;
   wheat--; //밀 3개를 빵하나로 만듭니다.
   goto Day;
  }
  else {
   printf("물자가 부족합니다.\n");
   goto Day;
  }
 }
 else if (com == 13) {
  if (iron >= 3) {
   printf("철로 칼을 제작합니다.\n");
   knife++;
   iron--;
   iron--;
   iron--; //철 3개를 칼하나로 만듭니다.
   goto Day;
  }
  else {
   printf("물자가 부족합니다.\n");
   goto Day;
  }
 }
 else if (com == 14) {
  if (iron >= 2) {
   if (lead >= 3) {
    printf("안전한 권총을 만들었습니다.\n");
    hand_gun++;
    iron--;
    iron--;
    lead--;
    lead--;
    lead--; //철 2개와 납3개로 권총을 만듭니다.
    goto Day;
   }
   else {
    printf("물자가 부족합니다.\n");
    goto Day;
   }
  }
  else {
   printf("물자가 부족합니다.\n");
   goto Day;
  }
 }
 else if (com == 15) {
  if (iron >= 3) {
   if (lead >= 5) {
    printf("돌격 소총을 제작합니다.\n");
    Ar++;
    iron--;
    iron--;
    iron--;
    lead--;
    lead--;
    lead--;
    lead--;
    lead--; //AR을 철 3개와 납5개로 만듭니다.
    goto Day;
   }
   else {
    printf("물자가 부족합니다.\n");
    goto Day;
   }
  }
  else {
   printf("물자가 부족합니다.\n");
   goto Day;
  }
 }
 else if (com == 16) {
  if (iron >= 4) {
   if (lead >= 6) {
    printf("스나이퍼라이플을 제작합니다.\n");
    Sr++;
    iron--;
    iron--;
    iron--;
    iron--;
    lead--;
    lead--;
    lead--;
    lead--;
    lead--;
    lead--; //SR을 철 4개와 납6개로 만듭니다.
    goto Day;
   }
   else {
    printf("물자가 부족합니다.\n");
    goto Day;
   }
  }
  else {
   printf("물자가 부족합니다.\n");
   goto Day;
  }
 }
 else if (com == 17) {
  if (iron >= 4) {
   if (lead >= 8) {
    printf("샷건을 제작합니다.\n");
    Sg++;
    iron--;
    iron--;
    iron--;
    iron--;
    lead--;
    lead--;
    lead--;
    lead--;
    lead--;
    lead--;
    lead--;
    lead--; //샷건을 철 4개와 납 8개로 제작합니다.
    goto Day;
   }
   else {
    printf("물자가 부족합니다.\n");
    goto Day;
   }
  }
  else {
   printf("물자가 부족합니다.\n");
   goto Day;
  }
 }
 else if (com == 20) {
  printf("제작을 그만 둡니다.\n");
  goto Day; //제작을 스킾합니다.
 }
 else {
  printf("다시 입력해 주세요.\n");
  goto Cr;
 }
Day:
 printf("탐방을 갑니다.\n");
 srand(time(NULL));
 item = rand();
 if (item >= 21) {
  printf("더러운 물과 밀이 하나씩 증가합니다.\n");
  not_safe_water++;
  wheat++;
  Ct--; //정찰 결과 더러운 물과 밀을 하나씩 얻습니다.
  goto Tr;
 }
 else {
  printf("납과 철이 하나씩 증가합니다.\n");
  lead++;
  iron++;
  Ct--; //정찰 결과 납과 철을 하나씩 얻습니다.
  goto Tr;
 }
Tr:
 printf("사람이 도착하였습니다.\n");
 srand(time(NULL));
 man = rand();
 if (man <= 28000) {  //여기에 있는 이 man의 숫자로 난이도를 설정합니다.
  if (Sg > 0) {
   printf("괴한에게 습격을 받았습니다.\n");
   Sg--;
   Ct--;
   Ct--;
   goto stat;
  }
  else {
   if (Sr > 0) {
    printf("괴한에게 습격을 받았습니다.\n");
    Sr--;
    Ct--;
    Ct--;
    Ct--;
    goto stat;
   }
   else {
    if (Ar > 0) {
     printf("괴한에게 습격을 받았습니다.\n");
     Ar--;
     Ct--;
     Ct--;
     Ct--;
     Ct--;
     Ct--;
    }
    else {
     if (hand_gun > 0) {
      printf("괴한에게 습격을 받았습니다.\n");
      hand_gun--;
      Ct--;
      Ct--;
      Ct--;
      Ct--;
      Ct--;
      Ct--;
      goto stat;
     }
     else {
      if (knife > 0) {
       printf("괴한에게 습격을 받았습니다.\n");
       knife--;
       Ct--;
       Ct--;
       Ct--;
       Ct--;
       Ct--;
       Ct--;
       Ct--;
       Ct--;
       Ct--;
       Ct--;
       Ct--;
       goto stat;
      }
      else {
       printf("괴한에게 습격을 받았습니다.\n");
       Ct--;
       Ct--;
       Ct--;
       Ct--;
       Ct--;
       Ct--;
       Ct--;
       Ct--;
       Ct--;
       Ct--;
       Ct--;
       Ct--;
       Ct--;
       Ct--;
       Ct--;
       Ct--; //캐릭터의 체력이 16만큼 까입니다.
       goto stat;
      }
     }
    }
   }
  }
 }
 else {
  printf("지나가던 사람입니다.\n");
  goto stat; //무사히 종료합니다.
 }
stat:
 printf("당신이 보유중인 더러운 물 %d개,밀 %d개,철 %d개,납 %d개\n물 %d개,빵 %d개,칼 %d개,권총 %d개,돌격소총 %d개,저격소총 %d개,샷건 %d개\n그리고 캐릭터의 남은 채력 %d\n", not_safe_water, wheat, iron, lead, water, bread, knife, hand_gun, Ar, Sr, Sg, Ct); //상태창으로 자신이 소유중인 것의 갯수를 표기합니다.
 printf("20을 눌러 계속 진행합니다.\n");
 scanf_s("%d", &com);
 if (com == 20) {
  if (Ct >= 1) {
   printf("빵을 먹어서 피를 회복하시겠습니까??\n111을 눌러서 여부를 확인해 주세요\n아닐시 다른 숫자인 20을 눌러주시면 됩니다.\n");
   scanf_s("%d", &com);
   if (com == 111) {
    if (bread < 1) {
     printf("빵이 부족합니다.\n");
     goto THiRsT;
    }
    else {
     bread--;
     Ct++;
     Ct++;
     Ct++;
     Ct++;
     goto THiRsT;
    }
   }
   else {
    if (Ct <= 0) {
     goto Game_Over; //게임을 종료합니다.
    }
    else {
     goto THiRsT;
    }
   }
  }
 THiRsT:
  if (thirst >= 1) {
   printf("물을 마시겠습니까?맞다면 222 아니라면 다른 숫자를 눌러주세요\n");
   scanf_s("%d", &com);
   if (com == 222) {
    if (water < 1) {
     printf("물이 부족합니다.\n");
     goto main;
    }
    else {
     water--;
     thirst++;
     thirst++;
     if (Ct <= 0) {
      goto Game_Over; //게임을 종료합니다.
     }
     goto main;
    }
   }
   else {
    if (thirst < 0) {
     goto Game_Over;
    }
    else {
     if (Ct <= 0) {
      goto Game_Over; //게임을 종료합니다.
     }
     else {
      goto main;
     }

    }

   }

  }
 }
 else {
  printf("오류입니다.\n");
  goto stat;
 }
Game_Over:
 printf("게임오버\n");
 return 0;
}

이렇게 종료가 됩니다.

이것의 코드를 17/03/2018기준으로 전부 해독이 가능해 지리라고 생각합니다.

오픈소스로 전환하는 이유는 리마스터링하고 있기때문이고 엔딩추가와 소스코드 개편 작업을 진행하고 있기 때문입니다.

블로그 이미지

이사가는 사람

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

,
어서오세요! 판타지 학원에!
라는 게임을 제작하게 되었습니다.
캐릭터와 모든 것이 전부 초안이고 아직 많이 미숙한 점도 있지만
학생 여럿이서 모여서 만들게 된 첫 작품인 만큼 웃으면서 봐주시면 감사하리라고 생각을 합니다.
초안이라 언제든지 수정이 가능하리라고 생각을 합니다.


첫번째로 학생회장인 가희입니다.

남자 주인공의 친구인 세훈입니다.

같은 학년의 예신입니다.


마지막으로 후배인 혜린입니다.

각각의 캐릭터의 외모나 여러가지 면은 언제든 바뀔 수가 있습니다.
일단 미리 생각을 하고 있는 설계와 그런 것들은 전부 비공개 처리를 하겠습니다.

캐릭터의 외모 또한 바뀔 수 있음을 미리 알려드리겠습니다.


배경 : 마법학원

시기 : 2학기 끝나갈 즈음 날자 상으로는 10월 초

세부적인 배경은 아직 정보를 공개하지는 못하지만(게임의 특성상...) 그러한 면을 제외하고는 공개가 가능한 여부의 정보는 최대한 많이 공개를 하도록하겠습니다.

그리고 게임 개발에 대한 실시간으로 개발 진행 여부에 대하여 게시를 계속하도록 하겠습니다.



(인사말)

이번 게임의 1차 기획안을 작성한 KILO [SHADE] 라고 합니다.

저는 이번 게임 배경에 관심을 많이 있어서 아마 2차나 최종까지 캐릭터는 수정되더라도 배경만큼은 제발 수정이 안 되었으면 합니다.

학생들이 모여서 개발하는 과정을 전부 담으려고 합니다.

그러니 부디 관심있게 봐주셨으면 합니다.



블로그 이미지

이사가는 사람

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

,