C 언어 는 삼자 기 게임 에 주석 을 달 수 있 습 니 다.

6337 단어 C 언어삼자 장기
본 고의 실례 는 여러분 에 게 C 언어 가 삼자 기 게임 을 실현 하 는 구체 적 인 코드 를 공유 하 였 으 며,여러분 에 게 참고 하 시기 바 랍 니 다.구체 적 인 내용 은 다음 과 같 습 니 다.
개술
삼자 기 바둑판 은 구 궁 격 형식 으로 게이머 와 컴퓨터 가 각각 돌아 가면 서 떨 어 지고 한 쪽 에 세 개의 바둑 이 연결 되 어 있 는 상황 이 있 으 면 이긴다.
실현 과정
1.유저 상호작용 메뉴 생 성
2.바둑판 생 성 및 초기 화
3.유저 와 컴퓨터 슬롯
4.승부 판정
다 중 파일 구현
헤더 파일 game.h

#ifndef __GAME_H__
#define __GAME_H__
 
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <windows.h>
 
#define ROW 3
#define COL 3
 
#define INIT ' '         //     
#define WHITE 'X'        //Player
#define BLACK 'O'        //Computer
 
 
#define DRAW 'D'
#define NEXT 'N'
 
#pragma warning(disable:4996)
 
extern void Game();
 
#endif
원본 파일 main.c

#include "game.h"
 
void Menu()
{
 printf("+-------------------------------+
"); printf("| 1. Play 0. Exit |
"); printf("+-------------------------------+
"); } int main() { int select = 0; int quit = 0; while (!quit) { Menu(); printf("Please Select# "); scanf("%d", &select); switch (select){ case 1: Game(); break; case 0: quit = 1; break; default: printf("Enter Error, Try Again!
"); break; } } printf("ByeBye!
"); system("pause"); return 0; }
원본 파일 game.c

#include "game.h"
 
static void InitBoard(char board[][COL], int row, int col)     //           
{
 for (int i = 0; i < row; i++)
    {
  for (int j = 0; j < col; j++)  //            
        {
   board[i][j] = INIT;             //INIT     
  }
 }
}
 
static void ShowBoard(char board[][COL], int row, int col)  //       
{
 system("cls");     //  dos          ,      
 printf(" ");
 for (int i = 0; i < col; i++)
    {
  printf("%4d", i+1);
 }
 printf("
--------------
"); for (int i = 0; i < row; i++) { printf("%-2d", i+1); //2 for (int j = 0; j < col; j++) { printf("| %c ", board[i][j]); //12 } printf("
--------------
"); } } static char IsEnd(char board[][COL], int row, int col) { for (int i = 0; i < row; i++) // { if (board[i][0] == board[i][1] && \ board[i][1] == board[i][2] && \ board[i][0] != INIT) { return board[i][0]; } } for (int j = 0; j < COL; j++) { if (board[0][j] == board[1][j] && \ board[1][j] == board[2][j] && \ board[0][j] != INIT) { return board[0][j]; } } if (board[0][0] == board[1][1] && \ // board[1][1] == board[2][2] && \ board[1][1] != INIT) { return board[1][1]; } if (board[0][2] == board[1][1] && \ // board[1][1] == board[2][0] && \ board[1][1] != INIT) { return board[1][1]; } for (int i = 0; i < row; i++) { for (int j = 0; j < col; j++) { if (board[i][j] == INIT) // { return NEXT; } } } return DRAW; // } static void PlayerMove(char board[][COL], int row, int col) // { int x = 0; int y = 0; // <x,y> while (1) { printf("Please Enter Position <x,y># "); scanf("%d %d", &x, &y); if (x < 1 || y < 1 || x > 3 || y > 3) // { printf("Enter Position Error!
"); continue; } if (board[x - 1][y - 1] == INIT) // { board[x - 1][y - 1] = WHITE; break; } else { printf("Position Is Not Empty!
"); } } } static void ComputerMove(char board[][COL], int row, int col) // { while (1){ int x = rand() % row; int y = rand() % col; // if (board[x][y] == INIT){ board[x][y] = BLACK; break; } } } void Game() { char board[ROW][COL]; // InitBoard(board, ROW, COL); // srand((unsigned long)time(NULL)); // char result = 0; while (1){ ShowBoard(board, ROW, COL); // PlayerMove(board, ROW, COL); // result = IsEnd(board, ROW, COL); // if (result != NEXT){ break; } ShowBoard(board, ROW, COL); // ComputerMove(board, ROW, COL); // result = IsEnd(board, ROW, COL); // if (result != NEXT){ break; } } ShowBoard(board, ROW, COL); switch (result){ case WHITE: printf("You Win!
"); break; case BLACK: printf("You Lose!
"); break; case DRAW: printf("You == Computer!
"); break; default: printf("BUG!
"); //Do Nothing! break; } }
세 가지 결과 전시



이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기