제가 간단하게 제작을 한 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기준으로 전부 해독이 가능해 지리라고 생각합니다.

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

블로그 이미지

이사가는 사람

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

,