728x90
코딩덕후@Youtube.com에서 강의를 하고 있습니다.
소스는 까페와 블로그를 통해서 오픈됩니다.
https://cafe.naver.com/coducks/18
가위바위보게임 프로젝트 소스
대한민국 모임의 시작, 네이버 카페
cafe.naver.com
방송에 사용된 소스
가위바위보 일반 버전
/*
가위 , 바위 , 보
컴퓨터는 랜덤하게 선택합니다. rand()
유저가
비겼을때 같다 유저 == 컴
이겼을때 유저에 따라서 판단
졌을때
가위일때
바위일때
보일때
*/
#include <stdio.h>
#include <stdlib.h> //< rand() 0~32767
#include <time.h> //< ctime
//< 초기화 init()
void init(void);
//< 비겼다 , 이겼다 졌다 판단
void isWin(int user, int com,char **msg);
//< 화면출력 render()
void renderMenu(void);
int main(void)
{
//< 유저선택,컴퓨터선택
int user, com;
//< 가위,바위,보 문자열로 정보 0, 1, 2
char* msg[3] = { "가위","바위","보" };
//< 초기화
init();
//< 컴퓨터 선택(랜덤하게)
com = rand() % 3;
//< 메뉴출력
renderMenu();
//< 유저선택
scanf_s("%d", &user);
//< 판단
isWin(user, com,msg);
return 0;
}
//< 초기화 init()
void init(void)
{
//< 랜덤하게 출력되는 rand()의 시드를 바꿔주는 함수
srand(time((unsigned int)0));
}
//< 비겼다 , 이겼다 졌다 판단
void isWin(int user, int com, char** msg)
{
//< 승패판단
//< 비겼을때
if (user == com)
{
printf("USER : [%s] VS COM : [%s] 비겼습니다.\n", msg[user], msg[com]);
}
//< 유저가 가위일때
else if (user == 0)
{
//< 컴이 바위일때 / 보일때
if (com == 1)
printf("USER : [%s] VS COM : [%s] 컴승리.\n", msg[user], msg[com]);
else
printf("USER : [%s] VS COM : [%s] 유저승리.\n", msg[user], msg[com]);
}//< 유저가 바위일때
else if (user == 1)
{
//< 컴이 보 / 가위
if (com == 2)
printf("USER : [%s] VS COM : [%s] 컴승리.\n", msg[user], msg[com]);
else
printf("USER : [%s] VS COM : [%s] 유저승리.\n", msg[user], msg[com]);
}//< 유저가 보일때
else if (user == 2)
{
//< 컴이 가위 / 바위
if (com == 0)
printf("USER : [%s] VS COM : [%s] 컴승리.\n", msg[user], msg[com]);
else
printf("USER : [%s] VS COM : [%s] 유저승리.\n", msg[user], msg[com]);
}
else
{
puts("잘못된 입력을 하셨습니다,~바보 프로그램 종료");
}
}
//< 화면출력 render()
void renderMenu(void)
{
puts("◆□◇ 컴선택 완료 ◆□◇");
//printf("COM선택 : %s\n", msg[com]);
//< 유저선택 메뉴 출력
puts(">> 당신의 선택은?");
printf("가위(0),바위(1),보(2) >> ");
}
패턴 가위바위보 버전
/*
가위 , 바위 , 보
컴퓨터는 랜덤하게 선택합니다. rand()
유저가
비겼을때 같다 유저 == 컴
이겼을때 유저에 따라서 판단
졌을때
가위일때
바위일때
보일때
*/
#include <stdio.h>
#include <stdlib.h> //< rand() 0~32767
#include <time.h> //< ctime
//< 초기화 init()
void init(void);
//< 비겼다 , 이겼다 졌다 판단
void isWin(int user, int com, char** msg);
//< 화면출력 render()
void renderMenu(void);
int main(void)
{
//< 유저선택,컴퓨터선택
int user, com;
//< 가위,바위,보 문자열로 정보 0, 1, 2
char* msg[3] = { "가위","바위","보" };
//< 초기화
init();
//< 컴퓨터 선택(랜덤하게)
com = rand() % 3;
//< 테스트용 컴출력
//printf("COM선택 : %s\n", msg[com]);
//< 메뉴출력
renderMenu();
//< 유저선택
scanf_s("%d", &user);
//< 판단
isWin(user, com, msg);
return 0;
}
//< 초기화 init()
void init(void)
{
//< 랜덤하게 출력되는 rand()의 시드를 바꿔주는 함수
srand(time((unsigned int)0));
}
//< 비겼다 , 이겼다 졌다 판단
void isWin(int user, int com, char** msg)
{
//< 승패판단
//< 비겼을때
if (user == com)
{
printf("USER : [%s] VS COM : [%s] 비겼습니다.\n", msg[user], msg[com]);
}
//< 유저가 승리 : 3/ 4/ 5입력시 결과가 다르게 나올수 있음
else if ((user + 2) % 3 == com)
{
printf("USER : [%s] VS COM : [%s] 유저승리.\n", msg[user], msg[com]);
}
else
{
printf("USER : [%s] VS COM : [%s] 컴승리.\n", msg[user], msg[com]);
}
}
//< 화면출력 render()
void renderMenu(void)
{
puts("◆□◇ 컴선택 완료 ◆□◇");
//< 유저선택 메뉴 출력
puts(">> 당신의 선택은?");
printf("가위(0),바위(1),보(2) >> ");
}
중간에 주석처리된 테스트용 컴출력을 풀면 화면에 컴퓨터의선택을 출력해서 테스트용으로
가능합니다.
플레이화면 입니다.
728x90
반응형
LIST
'C' 카테고리의 다른 글
C언어 기초강의 - 14강 - 제어문(반복문for,while,do~while)(코딩덕후) (0) | 2022.09.03 |
---|---|
C언어 기초강의 프로젝트 업다운 게임 조건문 (0) | 2022.08.31 |
파일입출력(바이너리,fwrite fread fopen fclose ) (0) | 2022.08.31 |
C언어 기초강의 13강 제어문(분기문 switch) (0) | 2022.08.30 |
C언어 기초강의 12강 제어문 if (0) | 2022.08.30 |
댓글