C 언어 로 정자 기 게임 실현
먼저,우 리 는 대체적인 사고방식 이 필요 하 다.먼저 거시적 계획 을 한 다음 에 세부 사항 을 실현 해 야 한다.
예 를 들 면:
1.먼저 메뉴 판 넬 을 장식 해 야 합 니 다.이 판 넬 에서 유 저 는 게임 에 들 어가 거나 게임 을 종료 할 수 있 습 니 다.
2.게임 프로그램 이 필요 합 니 다.이것 이 핵심 입 니 다.
거의 이 두 개 입 니 다.우 리 는 먼저 이것 을 쓸 수 있 습 니 다.이렇게 하면 뒤에서 사용 하기에 편리 합 니 다.이렇게:
void Game();
int Menu();// Menu int, , , ,
게임 내용 을 풍부하게 하기 위해 서 우 리 는 함수 Game()에 PVE 모드,PVP 모드 등 옵션 을 추가 할 수 있 습 니 다.
void PVP();
void PVE();
이제 우 리 는 주 함수 로 이 물건 들 을 연결 할 수 있다!다음 과 같다.
int main() {
int i=Menu();
if (i == 1) {
Game();
}
printf(" ");
return 0;
}
이렇게 해서 큰 성 과 를 거 두 었 습 니 다~(마지막 으로 어떤 안녕 이 필요 하지 않 습 니까?이 코드 에서 필 자 는 게이머 들 의 게임 체험 을 최적화 시 키 기 위해 불필요 한 것 을 많이 넣 었 습 니 다.독 자 는 모두 쓰 지 않 아 도 되 고 주로 독자 의 흥 미 를 보고 결정 할 수 있 습 니 다)다음은 디 테 일 을 실현 하기 위해 메뉴 를 작성 하 겠 습 니 다.(아래)
int Menu() {
//
printf("##########################
");
printf("###### #####
");
printf("###### 1: #####
");
printf("###### 2: #####
");
printf("###### #####
");
printf("##########################
");
printf(" :");
// “1” “2”, ,
int i = 0;
while (1) {
scanf("%d", &i);
if (i == 1 || i == 2) {
break;
}
printf("
, :");
}
if (i == 1)
return 1;
return 2;
}
여기 서 우 리 는 i 로 돌아 가 는 것 을 볼 수 있 습 니 다.왜냐하면 저 는 주 함수 에서 이 반환 값 을 빌려 게임 에 들 어 갈 지 여 부 를 확인 해 야 하기 때 문 입 니 다~~판 넬 을 완성 한 후에 우 리 는 우리 의 핵심 부분 을 진행 해 야 한다.
함수 Game()의 실현
마찬가지 로 거시적인 조작 을 먼저 하고 수요 에 따라 코드 를 쓴다.
void Game() {
// , ,
// ‘x' ‘o' , char
char arr[3][3] = {{ ' ',' ',' ' } ,{' ', ' ', ' '}, {' ', ' ', ' '}};
// ~~
printf("##########################
");
printf("###### #####
");
printf("###### 1: #####
");
printf("###### 2: #####
");
printf("###### 3: #####
");
printf("###### #####
");
printf("##########################
");
printf(" :");//
int choose = 0;
// , ~~
while (1) {
scanf("%d", &choose);
if (choose == 1 || choose == 2||choose==3)
break;
printf("
, :");
}
// , if(choose==3) Game , , , ~~, 。
if (choose == 1)
PVE();
if (choose == 2)
PVP();
}
이상 은 게임 의 기본 적 인 절차 입 니 다.게임 을 해 본 고속 철 은 마음 과 깊 은 것 이 어야 합 니 다.해 본 적 이 없어 도 괜 찮 습 니 다.한번 해 보면 알 수 있 습 니 다.어쨌든 게임 을 만들어 야 합 니 다.우 리 는 게임 을 하 는 과정 을 알 아야 합 니 다.다음은 두 가지 모델 을 실현 한다.
먼저 인간 기 를 쓸 까요?이것 은 필자 의 능력 에 한계 가 있 고 비교적 수 다스 럽 게 쓴 것 이다.만약 에 독자 가 더 좋 은 창의 성 을 가지 면 스스로 실현 할 수 있다~)
void PVE() {
int arr[3][3] = { { ' ',' ',' ' } ,{' ', ' ', ' '}, {' ', ' ', ' '} };
//
char win = ' ';
//
int i = 0;
int j = 0;
//
printf("
+---+---+---+
| %c | %c | %c |", arr[0][0], arr[0][1], arr[0][2]);
printf("
+---+---+---+
| %c | %c | %c |", arr[1][0], arr[1][1], arr[1][2]);
printf("
+---+---+---+
| %c | %c | %c |", arr[2][0], arr[2][1], arr[2][2]);
printf("
+---+---+---+
");
while (1) {
//
printf(" :");
while (1) {
scanf("%d%d", &i, &j);
if (i < 3 && j < 3 && arr[i][j] == ' ') {
arr[i][j] = 'x';
break;
}
printf("
:");
}
printf("
+---+---+---+
| %c | %c | %c |", arr[0][0], arr[0][1], arr[0][2]);
printf("
+---+---+---+
| %c | %c | %c |", arr[1][0], arr[1][1], arr[1][2]);
printf("
+---+---+---+
| %c | %c | %c |", arr[2][0], arr[2][1], arr[2][2]);
printf("
+---+---+---+
");
//
if (arr[0][0] == arr[0][1] && arr[0][0] == arr[0][2] && arr[0][0] == 'x') {
win = 'x';
break;
}
else if (arr[1][0] == arr[1][1] && arr[1][0] == arr[1][2] && arr[1][0] == 'x') {
win = 'x';
break;
}
else if (arr[2][0] == arr[2][1] && arr[2][0] == arr[2][2] && arr[2][0] == 'x') {
win = 'x';
break;
}
else if (arr[0][0] == arr[1][0] && arr[0][0] == arr[2][0] && arr[0][0] == 'x') {
win = 'x';
break;
}
else if (arr[0][1] == arr[1][1] && arr[0][1] == arr[2][1] && arr[0][1] == 'x') {
win = 'x';
break;
}
else if (arr[0][2] == arr[1][2] && arr[0][2] == arr[2][2] && arr[0][2] == 'x') {
win = 'x';
break;
}
else if (arr[0][0] == arr[1][1] && arr[0][0] == arr[2][2] && arr[0][0] == 'x') {
win = 'x';
break;
}
else if (arr[0][2] == arr[1][1] && arr[0][2] == arr[2][0] && arr[0][2] == 'x') {
win = 'x';
break;
}
else if (arr[0][0] != ' ' && arr[0][1] != ' ' && arr[0][2] != ' ' && arr[1][0] != ' ' && arr[1][1] != ' ' && arr[1][2] != ' ' && arr[2][1] != ' ' && arr[2][0] != ' ' && arr[2][2] != ' ') {
win = '0';
break;
}
//
while (1) {
i = (time(0) % 3);
j = ((time(0)*time(0)) % 3);
if (arr[i][j] == ' ') {
arr[i][j] = 'o';
break;
}
}
printf("
+---+---+---+
| %c | %c | %c |", arr[0][0], arr[0][1], arr[0][2]);
printf("
+---+---+---+
| %c | %c | %c |", arr[1][0], arr[1][1], arr[1][2]);
printf("
+---+---+---+
| %c | %c | %c |", arr[2][0], arr[2][1], arr[2][2]);
printf("
+---+---+---+
");
//
if (arr[0][0] == arr[0][1] && arr[0][0] == arr[0][2] && arr[0][0] == 'o') {
win = 'o';
break;
}
else if (arr[1][0] == arr[1][1] && arr[1][0] == arr[1][2] && arr[1][0] == 'o') {
win = 'o';
break;
}
else if (arr[2][0] == arr[2][1] && arr[2][0] == arr[2][2] && arr[2][0] == 'o') {
win = 'o';
break;
}
else if (arr[0][0] == arr[1][0] && arr[0][0] == arr[2][0] && arr[0][0] == 'o') {
win = 'o';
break;
}
else if (arr[0][1] == arr[1][1] && arr[0][1] == arr[2][1] && arr[0][1] == 'o') {
win = 'o';
break;
}
else if (arr[0][2] == arr[1][2] && arr[0][2] == arr[2][2] && arr[0][2] == 'o') {
win = 'o';
break;
}
else if (arr[0][0] == arr[1][1] && arr[0][0] == arr[2][2] && arr[0][0] == 'o') {
win = 'o';
break;
}
else if (arr[0][2] == arr[1][1] && arr[0][2] == arr[2][0] && arr[0][2] == 'o') {
win = 'o';
break;
}
else if (arr[0][0] != ' ' && arr[0][1] != ' ' && arr[0][2] != ' ' && arr[1][0] != ' ' && arr[1][1] != ' ' && arr[1][2] != ' ' && arr[2][1] != ' ' && arr[2][0] != ' ' && arr[2][2] != ' ') {
win = '0';
break;
}
}
if (win == 'o') {
printf("
? ! ?
");// , ~~, , ~
}
else if (win == 'x') {
printf("
!!!
");
}
else {
printf("
!!!
");// ~ , .
// , , , , ~~
}
// , ,
int re = 0;
printf("##########################
");
printf("###### #####
");
printf("###### 1; #####
");
printf("###### 2: #####
");
printf("###### #####
");
printf("##########################
");
printf(" :");
while (1) {
scanf("%d", &re);
if (re == 1 || re == 2)
break;
printf("
, :");
}
if (re == 1) {
re=Menu();
if (re == 1) {
Game();
}
}
else if (re == 2) {
PVE();
}
}
좋아!같은 방식 으로 PVP 모드 를 쓰 면 사고방식 의 차이 가 많 지 않 으 므 로 상세 하 게 설명 하지 않 겠 습 니 다.구체 적 으로 다음 과 같 습 니 다.
void PVP() {
int arr[3][3] = { { ' ',' ',' ' } ,{' ', ' ', ' '}, {' ', ' ', ' '} };
//
char win = ' ';
//
int i = 0;
int j = 0;
//
printf("
+---+---+---+
| %c | %c | %c |", arr[0][0], arr[0][1], arr[0][2]);
printf("
+---+---+---+
| %c | %c | %c |", arr[1][0], arr[1][1], arr[1][2]);
printf("
+---+---+---+
| %c | %c | %c |", arr[2][0], arr[2][1], arr[2][2]);
printf("
+---+---+---+
");
while (1) {
// p1
printf("P1 :");
while (1) {
scanf("%d%d", &i, &j);
if (i < 3 && j < 3 && arr[i][j] == ' ') {
arr[i][j] = 'x';
break;
}
printf("
P1 :");
}
printf("
+---+---+---+
| %c | %c | %c |", arr[0][0], arr[0][1], arr[0][2]);
printf("
+---+---+---+
| %c | %c | %c |", arr[1][0], arr[1][1], arr[1][2]);
printf("
+---+---+---+
| %c | %c | %c |", arr[2][0], arr[2][1], arr[2][2]);
printf("
+---+---+---+
");
//
if (arr[0][0] == arr[0][1] && arr[0][0] == arr[0][2] && arr[0][0] == 'x') {
win = 'x';
break;
}
else if (arr[1][0] == arr[1][1] && arr[1][0] == arr[1][2] && arr[1][0] == 'x') {
win = 'x';
break;
}
else if (arr[2][0] == arr[2][1] && arr[2][0] == arr[2][2] && arr[2][0] == 'x') {
win = 'x';
break;
}
else if (arr[0][0] == arr[1][0] && arr[0][0] == arr[2][0] && arr[0][0] == 'x') {
win = 'x';
break;
}
else if (arr[0][1] == arr[1][1] && arr[0][1] == arr[2][1] && arr[0][1] == 'x') {
win = 'x';
break;
}
else if (arr[0][2] == arr[1][2] && arr[0][2] == arr[2][2] && arr[0][2] == 'x') {
win = 'x';
break;
}
else if (arr[0][0] == arr[1][1] && arr[0][0] == arr[2][2] && arr[0][0] == 'x') {
win = 'x';
break;
}
else if (arr[0][2] == arr[1][1] && arr[0][2] == arr[2][0] && arr[0][2] == 'x') {
win = 'x';
break;
}
else if (arr[0][0] != ' ' && arr[0][1] != ' ' && arr[0][2] != ' ' && arr[1][0] != ' ' && arr[1][1] != ' ' && arr[1][2] != ' ' && arr[2][1] != ' ' && arr[2][0] != ' ' && arr[2][2] != ' ') {
win = '0';
break;
}
// p2
printf("P2 :");
while (1) {
scanf("%d%d", &i, &j);
if (i < 3 && j < 3 && arr[i][j] == ' ') {
arr[i][j] = 'o';
break;
}
printf("
P2 :");
}
printf("
+---+---+---+
| %c | %c | %c |", arr[0][0], arr[0][1], arr[0][2]);
printf("
+---+---+---+
| %c | %c | %c |", arr[1][0], arr[1][1], arr[1][2]);
printf("
+---+---+---+
| %c | %c | %c |", arr[2][0], arr[2][1], arr[2][2]);
printf("
+---+---+---+
");
//
if (arr[0][0] == arr[0][1] && arr[0][0] == arr[0][2] && arr[0][0] == 'o') {
win = 'o';
break;
}
else if (arr[1][0] == arr[1][1] && arr[1][0] == arr[1][2] && arr[1][0] == 'o') {
win = 'o';
break;
}
else if (arr[2][0] == arr[2][1] && arr[2][0] == arr[2][2] && arr[2][0] == 'o') {
win = 'o';
break;
}
else if (arr[0][0] == arr[1][0] && arr[0][0] == arr[2][0] && arr[0][0] == 'o') {
win = 'o';
break;
}
else if (arr[0][1] == arr[1][1] && arr[0][1] == arr[2][1] && arr[0][1] == '0') {
win = 'o';
break;
}
else if (arr[0][2] == arr[1][2] && arr[0][2] == arr[2][2] && arr[0][2] == 'o') {
win = 'o';
break;
}
else if (arr[0][0] == arr[1][1] && arr[0][0] == arr[2][2] && arr[0][0] == 'o') {
win = 'o';
break;
}
else if (arr[0][2] == arr[1][1] && arr[0][2] == arr[2][0] && arr[0][2] == 'o') {
win = 'o';
break;
}
else if (arr[0][0] != ' ' && arr[0][1] != ' ' && arr[0][2] != ' ' && arr[1][0] != ' ' && arr[1][1] != ' ' && arr[1][2] != ' ' && arr[2][1] != ' ' && arr[2][0] != ' ' && arr[2][2] != ' ') {
win = '0';
break;
}
}
if (win == 'o') {
printf("
P2 !!!
");
}
else if (win == 'x') {
printf("
P1 !!!
");
}
else {
printf("
!!!
");
}
int re = 0;
printf("##########################
");
printf("###### #####
");
printf("###### 1; #####
");
printf("###### 2: #####
");
printf("###### #####
");
printf("##########################
");
printf(" :");
while (1) {
scanf("%d", &re);
if (re == 1 || re == 2)
break;
printf("
, :");
}
if (re == 1) {
re = Menu();
if (re == 1) {
Game();
}
}
else if (re == 2) {
PVP();
}
}
이렇게 해서 우리 가 디자인 한 모든 세부 사항 이 실현 되 었 고 완전한 간단 한 게임 이 큰 성 과 를 거 두 었 다.이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
C 언어 체인 시계는 뱀을 탐식하는 작은 게임을 실현한다본고의 실례는 여러분에게 C 언어 체인표가 뱀 탐식 게임을 실현하는 구체적인 코드를 공유하여 참고하도록 하였으며, 구체적인 내용은 다음과 같다. 프로젝트 이름: 뱀놀이 운영 환경: Linux 프로그래밍 언어: C 언...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.