[자작게임 배포 & 프로그래밍 일지] Civil War 오픈소스로 전환
프로그래밍일지 (고등학생 - 인문계)/자작 게임 배포 & 패치노트&프로그래밍 개인 일지 2018. 3. 16. 23:29제가 간단하게 제작을 한 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기준으로 전부 해독이 가능해 지리라고 생각합니다.
오픈소스로 전환하는 이유는 리마스터링하고 있기때문이고 엔딩추가와 소스코드 개편 작업을 진행하고 있기 때문입니다.
'프로그래밍일지 (고등학생 - 인문계) > 자작 게임 배포 & 패치노트&프로그래밍 개인 일지' 카테고리의 다른 글
[프] Civil War remastered by KILO v.0.3.b 버젼에서의 현 문제점 (0) | 2018.05.31 |
---|---|
[자&패] Static's CIVIL WAR remastered by KILO v.004a (0) | 2018.04.13 |
[자&패]Static's CIVIL WAR remastered by KILO v.003a (0) | 2018.04.01 |
[자&패&프] Civil War 업데이트 내역 (0) | 2018.03.18 |
[프로그래밍 일지] 게임 기획 단계 (1) | 2018.03.16 |