본문 바로가기

【그로잉】/…Programming

C게임 #1. 리그 오브 가위바위보

일단 입대 전까지만 해도 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;
* }