일단 입대 전까지만 해도 c언어로 RPG따윈 간단히 할 수 있었던 손이,
플래시에 이어 C언어까지 굳게 만들어버렸나보다.
그래도 그나마 다행인 것은 완전히 까먹지는 않았다는 것.
유니티 프로그램에 c언어를 적용시킬 수 있다고 하니 계속 배워나가봐야 하겠는데,
우선은 가위바위보 게임부터 만들어보자.
(참고로 제 전용으로 만든거라 설명이 이해하기 힘든 부분도 있을 겁니다.
혹시라도 그러신 분은 댓글 달아주세요)
=====정리중
#include <stdio.h> //기본적인 함수 부름
#include <stdlib.h> /랜덤함수 부름
#include <time.h> //시간 함수 부름
int main(void) {
//변수설정
int mai;
int enemy;
int score=0;//기본점수
int lcore=0;//최종점수
int snow=1;//현재체력
int smax=0;//최대체력
int scom=0;//현재콤보
int scax=0;//최대콤보
int sdie=0;//죽은횟수
//시작
printf("=========================\n녹서스에대한복수의칼날을갈아온마스터이\n이제그의살육이시작되었다.\n\n");
printf("도움말: 1(가위), 2(바위), 3(보)로공격을합니다.\n 연승시추가점수가주어지나그만큼패배시체력이더많이떨어집니다.\n");
printf("일반킬: 1점(-2), 3연속부터: 2점(-5), 5연속킬부터: 3점(-9)\n=========================\n\n");
goto label1;
//라벨1: 명령성언
//라벨2: 명령실행
//라벨3: 게임오버
//라벨4: 이김
//라벨5: 짐
//라벨6: 비김
//명령선언
label1:
printf("=========================\n★현재생명력: %d★\n최대생명력: %d\n연속킬: %d\n제압횟수: %d\n==========================\n\n",snow, smax, scom, sdie);
printf("==========================\n공격합니다. [1, 2, 3] 중의하나의값을입력해주세요.\n==========================\n\n");
goto label2;
//명령실행
label2:
srand(time(NULL));
enemy=1+rand()%3;
printf("공격수입력[1, 2, 3] : ");
scanf("%d", &mai);
switch(mai){
case 1:
printf("\n=========================\n일격필살!\n");
if (enemy == 1) {goto label6;}
else if (enemy == 2){goto label5;}
else {goto label4;}
case 2:
printf("\n=========================\n우주류검술!\n");
if (enemy == 1) {goto label4;}
else if (enemy == 2){goto label6;}
else {goto label5;}
case 3:
printf("\n=========================\n최후의전사!\n");
if (enemy == 1) {goto label5;}
else if (enemy == 2){goto label4;}
else {goto label6;}
default :
printf("\n=========================\n키를잘못입력하셨습니다.\n다시입력해주세요.\n=========================\n\n");
goto label2;
}
label3:
lcore = score+smax+scax-sdie;
printf("=========================\n게임오버\n\n기본점수: %d\n추가점수: %d\n최다연킬: %d\n제압횟수: -%d\n\n총점수: %d.\n=========================\n\n", score, smax, scax, sdie, lcore);
return 0;
label4://이겼을경우
score+=1;
snow+=1;
scom+=1;
if (snow>=smax){smax = snow;}
if (scom>=scax){scax = scom;}
if(scom>=3 && scom<5){
printf("마스터이가미쳐날뛰고있습니다.(+2)\n=========================\n\n");
snow+=1;
score+=1;
} else if(scom>=5){
printf("마스터이를도저히막을수없습니다.(+3)\n=========================\n\n");
snow+=2;
score+=2;
} else {
printf("적을처치했습니다.(+1)\n=========================\n\n");
}
goto label1;
label5://졌을경우
if(scom>=3 && scom<5){
printf("제압되었습니다.\n=========================\n\n");
snow-=5;
} else if(scom>=5){
printf("적, 마무리.\n=========================\n\n");
snow-=9;
} else{
printf("적에게당했습니다.\n=========================\n\n");
snow-=2;
}
scom=0;
sdie+=1;
if(snow<0){goto label3;}
else{goto label1;}
label6://비겼을경우
printf("서로공격이상쇄되었습니다.\n=========================\n\n");
goto label1;
}
'【그로잉】 > …Programming' 카테고리의 다른 글
C게임 #4-3. 로또 만들기(下) (0) | 2012.10.06 |
---|---|
C게임 #3-2. 숫자 야구게임(下) (0) | 2012.10.05 |
C게임 #4. 로또 만들기(中) (0) | 2012.10.04 |
C게임 #3. 숫자 야구게임(上) (0) | 2012.10.04 |
C게임 #2. 로또 만들기(上) (0) | 2012.09.27 |