C 언어 는 간단 한 삼자 기 를 실현 한다
주요 사상
1.3*3 의 바둑판 만 들 기(문자 배열 사용)
2.바둑판 초기 화(빈 칸 으로 채 우기)
3.바둑판 인쇄(보 이 는 테두리 가 있 도록)
4.유저 가 떨 어 진 곳 에 x 로 표시(월 계 여부,이미 떨 어 진 곳,이 겼 는 지 확인)
5.컴퓨터 낙 자,o 로 표시(이미 낙 자 했 는 지,이 겼 는 지 확인) 주의:컴퓨터 는 유효 범위 내 에서 랜 덤 으로 떨 어 집 니 다.현재 시간 스탬프 를 사용 하여 랜 덤 피 드 즉 srand(time(0)를 설정 합 니 다.
6.세 가지 상황:게이머 가 이기 고 컴퓨터 가 이기 고 바둑 을 둔다.
코드 구현
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
// , 3
#define MAX_ROW 3
#define MAX_COL 3
// , ,
//
// , ,
// , 'x',
char playermove(char chessboard[MAX_ROW][MAX_COL])
{
int row = 0;
int col = 0;
while (1){
printf(" :(row col)");
scanf("%d %d", &row, &col);
//
//
if (row < 0 || row >= MAX_ROW || col<0 || col>=MAX_COL){
printf(" !!
");
continue;
}else if (chessboard[row][col]!=' '){
printf(" !!
");
continue;
}else{
chessboard[row][col] = 'x';
return chessboard[row][col];
}
}
}
//
// ( , )
// , 'o', ,
void computermove(char chessboard[MAX_ROW][MAX_COL])
{
while (1){
int row = rand() % MAX_ROW; // 0~2
int col = rand() % MAX_COL; // 0~2
//
if (chessboard[row][col] != ' '){
continue;
}
chessboard[row][col] = 'o';
break;
}
}
// ,
// , , ( ' ')
// 1, 0
char isFull(char chessboard[MAX_ROW][MAX_COL])
{
for (int row = 0; row < MAX_ROW; row++){
for (int col = 0; col < MAX_COL; col++){
//
if (chessboard[row][col] == ' '){
return 0;
}
}
}
// ,
return 1;
}
//
//'x'
//'o'
//' '
//'h'
char isWin(char chessboard[MAX_ROW][MAX_COL])
{
//
// : ,
for (int row = 0; row < MAX_ROW; row++){
if (chessboard[row][0]!=' '
&&(chessboard[row][0] ==chessboard[row][1])
&&(chessboard[row][0]== chessboard[row][2])){
return chessboard[row][0];
}
}
//
for (int col = 0; col < MAX_COL; col++){
if (chessboard[0][col]!=' '
&&(chessboard[0][col] == chessboard[1][col])
&&(chessboard[0][col] == chessboard[2][col])){
return chessboard[0][col];
}
}
//
if (chessboard[0][0] != ' '
&& (chessboard[0][0] == chessboard[1][1])
&& (chessboard[0][0] == chessboard[2][2])){
return chessboard[0][0];
}
if (chessboard[0][2] != ' '
&&(chessboard[0][2] == chessboard[1][1])
&&(chessboard[0][2] == chessboard[2][0])){
return chessboard[0][2];
}
//
if (isFull(chessboard)){
return 'h';
}
return ' ';
}
// , ' '
void init(char chessboard[MAX_ROW][MAX_COL])
{
for (int row = 0; row < MAX_ROW; row++){
for (int col = 0; col < MAX_COL; col++){
chessboard[row][col] = ' ';
}
}
}
//
void printchessboard(char chessboard[MAX_ROW][MAX_COL])
{
printf("+---+---+---+
");
for (int row = 0; row < MAX_ROW; row++){
printf("| %c | %c | %c |
", chessboard[row][0], chessboard[row][1], chessboard[row][2]);
printf("+---+---+---+
");
}
}
//
void game()
{
char chessboard[MAX_ROW][MAX_COL] = {0};
init(chessboard);//
char winner = ' ';
while (1){
printchessboard(chessboard);//
playermove(chessboard);//
// ,
winner = isWin(chessboard);
if (winner != ' '){
break;
}
computermove(chessboard);//
winner = isWin(chessboard);
if (winner != ' '){
break;
}
}
if (winner == 'x'){
printchessboard(chessboard);
printf(" !
");
}else if (winner == 'o'){
printchessboard(chessboard);
printf(" !
");
}else if (winner == 'h'){
printchessboard(chessboard);
printf(" ! ~
");
}
}
//
int menue(int choice)
{
printf("************************
");
printf("1.
");
printf("0.
");
printf("************************
");
printf(" :");
scanf("%d", &choice);
return choice;
}
//
int main()
{
srand(time(0));
int choice = 0;
while (1){
choice=menue(choice);
if (choice == 1){
game();
}else if (choice == 0){
break;
}else{
printf(" ,
");
continue;
}
}
system("pause");
return 0;
}
3.운행 결과대개 프레임 워 크 가 이와 같 으 면 최적화 도 할 수 있다.예 를 들 어 system(cls)화면 정리 등 이다.
더 많은 재 미 있 는 클래식 게임 을 통 해 주 제 를 실현 하고 여러분 에 게 공유 합 니 다.
C++클래식 게임 모음
python 클래식 게임 모음
python 러시아 블록 게임 집합
JavaScript 클래식 게임 을 계속 합 니 다.
자바 클래식 게임 모음
javascript 고전 게임 모음
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
C 언어 체인 시계는 뱀을 탐식하는 작은 게임을 실현한다본고의 실례는 여러분에게 C 언어 체인표가 뱀 탐식 게임을 실현하는 구체적인 코드를 공유하여 참고하도록 하였으며, 구체적인 내용은 다음과 같다. 프로젝트 이름: 뱀놀이 운영 환경: Linux 프로그래밍 언어: C 언...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.