C 언어 는 간이 판 삼자 기 게임 을 실현 한다.

9071 단어 C 언어삼자 장기
본 고의 실례 는 여러분 에 게 C 언어 가 삼자 기 게임 을 실현 하 는 구체 적 인 코드 를 공유 하 였 으 며,여러분 에 게 참고 하 시기 바 랍 니 다.구체 적 인 내용 은 다음 과 같 습 니 다.
다 중 파일 이란 무엇 입 니까?
대부분의 대형 프로젝트 의 헤더 파일 과 원본 파일 이 매우 많 습 니 다.우 리 는 모든 코드 를 같은 파일 에 쓸 수 없습니다.이렇게 하면 코드 의 읽 기와 유지 에 불편 합 니 다.보통 서로 다른 기능 에 따라 코드 를 여러 소스 파일 과 헤더 파일 에 각각 씁 니 다. 
게임 소개
삼자 기 는 간단 한 2 인 게임 으로 쌍방 이 3X3 의 바둑판 에서 돌아 가면 서 떨 어 지고 한 직선 에 세 개의 연속 적 이 고 같은 바둑 알 이 나 올 때 바로 이긴다.이 프로그램 은 게이머 들 로 하여 금 먼저 자 리 를 잡 게 하고,컴퓨터 는 바둑판 에 랜 덤 으로 자 리 를 잡 게 한다.게임 종료 시 승 부 를 표시 합 니 다.유 저 는 게임 을 계속 할 지 여 부 를 선택 할 수 있 습 니 다.
코드 구현
chess.h
보통 우 리 는 헤더 파일 에 유형의 정의,구조 체 정의,매크로 정의,함수 성명,include 포함 등 내용 을 씁 니 다.

#ifndef _CHESS_H_
#define _CHESS_H_
 
#include<stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include<windows.h>
#pragma warning(disable:4996)
 
#define ROW 3
#define COL 3
 
#define BLACK_PIECE 'X'
#define WHITE_PIECE 'O'
 
void InitBoard(char board[ROW][COL], int row, int col);
void ShowBoard(char board[ROW][COL], int row, int col);
void PlayerMove(char board[ROW][COL], int row, int col);
int ComputerMove(char board[ROW][COL], int row, int col);
char CheckWin(char board[ROW][COL], int row, int col);
 
#endif
chess.c
원본 파일 에는 chess.h 라 는 헤더 파일 이 포함 되 어 있 기 때문에 이 chess.c 파일 에 서 는 헤더 파일 에 정 의 된 내용 을 사용 할 수 있 습 니 다.사용자 정의 형식,사용자 정의 함수,표준 입 출력 함수 등 을 사용 할 수 있 습 니 다.
include 의 경로 문 제 는<>를 사용 하여 포 함 된 헤더 파일 을 지정 할 때 컴 파일 러 는 시스템 헤더 파일 라 이브 러 리 에서 찾 고''를 사용 하여 포 함 된 헤더 파일 을 사용 하면 컴 파일 러 는 현재 프로그램 디 렉 터 리 에서 찾 습 니 다.include 에 포 함 된 파일 은 절대적 인 경로 일 수도 있 고 상대 적 인 경로 일 수도 있 습 니 다.한 마디 로 하면 헤더 파일 의 저장 경로 와 현재 원본 파일 의 관계 가 정확 하면 됩 니 다.

#include "chess.h"
 
 
//    
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] = ' ';
 }
 }
}
 
void ShowBoard(char board[][COL], int row, int col)
{
 printf("  | 1 | 2 | 3 |
"); int i = 0; for (; i < row; i++){ printf("----------------
"); printf(" %d | %c | %c | %c |
", i + 1, board[i][0], board[i][1], board[i][2]); } printf("----------------
"); } // void PlayerMove(char board[][COL], int row, int col) { int x = 0; int y = 0; printf("
"); printf("---------- ----------
"); printf("
"); while (1){ printf(" <x,y>:"); scanf("%d%d", &x, &y); if (x >= 1 && x <= row && y >= 1 && y <= col){ if (board[x - 1][y - 1] == ' '){ board[x - 1][y - 1] = 'X'; break; } else{ printf(" , !
"); } } else{ printf(" !
"); } } } // int ComputerMove(char board[][COL], int row, int col) { int x = 0; int y = 0; printf("
"); printf("---------- ----------
"); printf("
"); while (1){ for (x = 0; x <= 2; x++){ // , ! for (y = 0; y <= 2; y++){ if (board[x][y] == ' '){ board[x][y] = 'X'; if (CheckWin(board, ROW, COL) == 'X'){ board[x][y] = 'O'; // , while , Sleep(500); return 0; } else{ board[x][y] = ' '; // } } } } if (board[1][1] == ' '){ // , board[1][1] = 'O'; Sleep(500); return 0; } else{ // , 。 for (x = 0; x <= 2; x += 2){ for (y = 0; y <= 2; y += 2){ if (board[x][y] == ' '){ board[x][y] = 'O'; Sleep(500); return 0; } } } } x = rand() % row; // ,0―2 y = rand() % col; if (board[x][y] == ' '){ board[x][y] = 'O'; Sleep(1000); break; } printf("
"); } } static int IsFull(char board[ROW][COL], int row, int col) { int i = 0; int j = 0; for (i = 0; i < row; i++){ for (j = 0; j < col; j++){ if (board[i][j] == ' ') return 0; } } // return 1; } // BLACK_PIECE 'X' // WHITE_PIECE 'O' // , 'Q' // , 'C' // or or char CheckWin(char board[ROW][COL], int row, int col) { int i = 0; for (; i < row; i++){ // if (board[i][0] != ' ' && board[i][0] == board[i][1] && board[i][1] == board[i][2]){ return board[i][0]; } } for (i = 0; i < col; i++){ // if (board[0][i] != ' ' && board[0][i] == board[1][i] && board[1][i] == board[2][i]){ return board[0][i]; } } if (board[0][0] != ' ' && board[0][0] == board[1][1] && board[1][1] == board[2][2]){ return board[0][0]; } if (board[0][2] != ' ' && board[0][2] == board[1][1] && board[1][1] == board[2][0]){ return board[1][1]; } // if (IsFull(board, row, col) == 1){ return 'Q'; } // return 'C'; }
main.c
생각 을 정리 하고 운행 의 틀 을 세우다.
1.게임 메뉴,선택 플레이/안 플레이
2.바둑판 인쇄
3.플레이어 슬롯
4.바둑판 인쇄
5.컴퓨터 소켓
6.바둑판 인쇄
7.…
8.승부 보이 기
9.게임 메뉴 로 돌아 가 플레이/안 하기

#include "chess.h"
 
void Menu()
{
 printf("
"); printf("---------- ----------
"); printf("
"); printf("******************************
"); printf("* 1.Play *
"); printf("* 2.Exit *
"); printf("******************************
"); printf("
"); printf("Please Enter Select:"); } void Game() { char board[ROW][COL] = { 0 };// char ret = 0; InitBoard(board, ROW, COL); ShowBoard(board, ROW, COL);// while (1){ PlayerMove(board, ROW, COL);// ShowBoard(board, ROW, COL);// // ret = CheckWin(board, ROW, COL); if (ret != 'C'){ break; } ComputerMove(board, ROW, COL);// ShowBoard(board, ROW, COL);// // ret = CheckWin(board, ROW, COL); if (ret != 'C'){ break; } } if (ret == 'X'){ printf("---------- !----------
"); } else if (ret == 'O'){ printf("---------- !----------
"); } else if (ret == 'Q'){ printf("---------- !----------
"); } } int main() { int select = 0; int quit = 0; srand((unsigned int)time(NULL)); while (!quit){ Menu(); scanf("%d", &select); switch (select){ case 1: Game(); while (!select); break; case 2: printf("Game Over!
"); break; default: printf("Enter Error!
"); break; } } system("pause"); return 0; }
테스트 결과


더 많은 재 미 있 는 클래식 게임 을 통 해 주 제 를 실현 하고 여러분 에 게 공유 합 니 다.
C++클래식 게임 모음
python 클래식 게임 모음
python 러시아 블록 게임 집합
JavaScript 클래식 게임 을 계속 합 니 다.
자바 클래식 게임 모음
javascript 고전 게임 모음
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기