Notice
Recent Posts
Link
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- yolo mask
- Python
- docker container
- 긍부정문 판별
- ubuntu
- docker in ubuntu
- ceasor
- mask image training
- 시저암호 코딩
- 춤 유사도 평가
- 오목앱 만들기
- token check
- Java
- iris dataset
- pill classification
- 한글깨짐해결
- ubuntu에서 docker 사용
- docker
- C
- dji tello
- pill ai
- 369게임 만들기
- drone control
- Container
- 오목게임앱
- AI
- flower classification
- 360게임 만들기 with c
- aws code pipeline
- deep learning
Archives
- Today
- Total
월레스와 그로밋: 코딩의 날
rsp_game(묵찌빠 게임) 본문
main.c
#include "rsp.h"
int main()
{
main_rsp();
return 0;
}
rps.h
#define _CRT_SECURE_NO_WARNINGS
#define LINE printf("--------------------------------------------------------------\n");
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
int input_num();
int randnum_computer();
void main_rsp();
void repeat(player_num, computer_num);
void main_repeat(int* player_num, int* computer_num);
int player_winrsp(player_num, computer_num);
void computer_winrsp(computer_num, player_num);
void show_rsp();
rsp.c
#include "rsp.h"
char str[4][10] = {"종료", "가위", "바위", "보"};
// 0: 종료 1: 가위 2: 바위 3: 보
void show_rsp()
{
for (int i = 0; i < 4; i++)
printf("%d. %s\t", i, str[i]);
}
// 입력
int input_num()
{
int input_playernum;
scanf("%d", &input_playernum);
return input_playernum;
}
// 컴퓨터 랜덤함수 1,2,3
int randnum_computer()
{
srand(time(NULL));
int input_computernum;
input_computernum = rand() % 3 + 1;
return input_computernum;
}
// 구문반복
void repeat(player_num, computer_num)
{
if (player_num == 1 || computer_num == 1)
printf("찌에 찌에 . . .\n");
else if (player_num == 2 || computer_num == 2)
printf("묵에 묵에 . . .\n");
else if (player_num == 3 || computer_num == 3)
printf("빠에 빠에 . . .\n");
}
// 컴퓨터 우선권
void computer_winrsp(computer_num, player_num)
{
do
{
repeat(computer_num);
main_repeat(&player_num, &computer_num);
if (computer_num == player_num)
{
printf("컴퓨터 승리!\n\n");
break;
}
else if (player_num - computer_num == 1 || player_num - computer_num == -2)
break;
} while (1);
if (player_num - computer_num == 1 || player_num - computer_num == -2)
player_winrsp(player_num, computer_num);
}
// 플레이어 우선권
int player_winrsp(player_num, computer_num, win_count)
{
do
{
repeat(player_num);
main_repeat(&player_num, &computer_num);
if (computer_num == player_num)
{
win_count++;
printf("플레이어 승리!\n\n");
break;
}
else if (computer_num - player_num == 1 || computer_num - player_num == -2)
break;
} while (1);
if (computer_num - player_num == 1 || computer_num - player_num == -2)
computer_winrsp(computer_num, player_num);
return win_count;
}
// 반복
void main_repeat(int* player_num, int* computer_num)
{
printf("무엇을 내시겠습니까? >> ");
*player_num = input_num();
*computer_num = randnum_computer();
if (*player_num == 0)
printf("\n종료하겠습니다.\n");
else
printf("컴퓨터 : %s!\t플레이어 : %s!\n\n", str[*computer_num], str[*player_num]);
}
// 메인 틀 반복
void main_rsp()
{
int player_num, computer_num;
show_rsp();
printf("\n\n");
int game_count = 1;
int win_count = 0;
double win_percentage;
// 묵찌빠 게임 계속 반복
do
{
printf("%d번째 판 시작 하겠습니다.\n", game_count);
LINE;
//가위바위보 비길 시 반복
do
{
printf("안내면 진다 가위바위 . . .\n");
main_repeat(&player_num, &computer_num);
if (player_num == 0)
break;
} while (player_num == computer_num);
if (player_num == 0)
break;
//1<2, 2<3, 3<1
// 플레이어 우선
if (player_num - computer_num == 1 || player_num - computer_num == -2)
win_count = player_winrsp(player_num, computer_num, win_count);
// 컴퓨터 우선
else if (computer_num - player_num == 1 || computer_num - player_num == -2)
computer_winrsp(computer_num, player_num);
game_count++;
} while (1);
game_count -= 1;
win_percentage = ((double)win_count / game_count) * 100;
LINE;
printf("총 %d판을 하였고 승률은 %.2f%%입니다.\n", game_count, win_percentage);
}
output
0. 종료 1. 가위 2. 바위 3. 보
1번째 판 시작 하겠습니다.
--------------------------------------------------------------
안내면 진다 가위바위 . . .
무엇을 내시겠습니까? >> 1
컴퓨터 : 바위! 플레이어 : 가위!
묵에 묵에 . . .
무엇을 내시겠습니까? >> 1
컴퓨터 : 바위! 플레이어 : 가위!
묵에 묵에 . . .
무엇을 내시겠습니까? >> 1
컴퓨터 : 보! 플레이어 : 가위!
찌에 찌에 . . .
무엇을 내시겠습니까? >> 3
컴퓨터 : 가위! 플레이어 : 보!
찌에 찌에 . . .
무엇을 내시겠습니까? >> 3
컴퓨터 : 바위! 플레이어 : 보!
빠에 빠에 . . .
무엇을 내시겠습니까? >> 2
컴퓨터 : 보! 플레이어 : 바위!
빠에 빠에 . . .
무엇을 내시겠습니까? >> 2
컴퓨터 : 가위! 플레이어 : 바위!
묵에 묵에 . . .
무엇을 내시겠습니까? >> 1
컴퓨터 : 바위! 플레이어 : 가위!
묵에 묵에 . . .
무엇을 내시겠습니까? >> 1
컴퓨터 : 가위! 플레이어 : 가위!
컴퓨터 승리!
2번째 판 시작 하겠습니다.
--------------------------------------------------------------
안내면 진다 가위바위 . . .
무엇을 내시겠습니까? >> 3
컴퓨터 : 보! 플레이어 : 보!
안내면 진다 가위바위 . . .
무엇을 내시겠습니까? >> 3
컴퓨터 : 보! 플레이어 : 보!
안내면 진다 가위바위 . . .
무엇을 내시겠습니까? >> 2
컴퓨터 : 가위! 플레이어 : 바위!
묵에 묵에 . . .
무엇을 내시겠습니까? >> 2
컴퓨터 : 바위! 플레이어 : 바위!
플레이어 승리!
3번째 판 시작 하겠습니다.
--------------------------------------------------------------
안내면 진다 가위바위 . . .
무엇을 내시겠습니까? >> 0
종료하겠습니다.
--------------------------------------------------------------
총 2판을 하였고 승률은 50.00%입니다.
'Etc > C' 카테고리의 다른 글
kiosk(카페 키오스크) (0) | 2025.01.26 |
---|---|
hourglass(모래시계) (0) | 2025.01.26 |
369 (0) | 2025.01.26 |
스택(stack) (0) | 2023.07.31 |
이중연결리스트 사용 예시 (대기자명단) (0) | 2023.07.27 |