C語言細講 小專案練習(井字棋遊戲)

2021-09-25 16:42:31 字數 3706 閱讀 4297

text.**件

#define _crt_secure_no_warnings 1

#ifndef __text__h_

#define __text__h_

#define row 3

#define col 3 //巨集定義

#includevoid menu(); //列印選單函式

void initboard(char board[row], int row, int col,int set); //初始化棋盤函式

void showboard(char board[row], int row, int col);//列印棋盤函式

char iswin(char board[row], int row, int col); //判斷輸贏函式

void computermove(char board[row], int row, int col);//電腦移動函式

void playermove(char board[row], int row, int col); //玩家移動函式

static int isfull(char board[row], int row, int col); //判斷棋盤是否以滿函式

void game();//遊戲進行主要函式

#endif

text.c檔案

#include

"text.h"

#include

#include

/*********************

函式功能:列印選單

輸入值:無

輸出值:無

*********************/

void

menu()

/**********************************

函式功能:初始化棋盤

輸入值:乙個二維陣列、行、列、設定的初值

輸出值:無

**********************************/

void

initboard

(char board[

][row]

,int row,

int col,

int set)}}

/*****************************

函式功能;列印棋盤

輸入值:經過初始化的二維陣列、行、列

輸出值:無

******************************/

void

showboard

(char board[

][row]

,int row,

int col)

}printf

("\n");

if(i < row-1)

}printf

("\n");

}}}/*******************

函式功能:井字棋遊戲的主要執行函式

輸入值:無

輸出值:無

*******************/

void

game()

;initboard

( board, row, row,

' ')

;showboard

(board, row, col)

;while(1

) num=

isfull

( board, row, col);if

(num ==1)

computermove

(board, row, col)

;printf

("電腦移動:\n");

showboard

(board, row, col)

; ret =

iswin

(board, row, col);if

(ret !=

' ')

num =

isfull

(board, row, col);if

(num ==1)

}if(num ==1)

if(ret ==

'0')

else

}/********************************

函式功能:判斷是否輸贏

輸入值:初始化過的二維陣列、行列

輸出值:'o'||'x'||' '

*********************************/

char

iswin

(char board[

][row]

,int row,

int col)

if(board[0]

[i]== board[1]

[i]&& board[1]

[i]== board[2]

[i]&&board[0]

[i]!=

' ')

//判斷豎行

if(board[0]

[0]== board[1]

[1]&& board[1]

[1]== board[2]

[2]&& board[0]

[0]!=

' ')

//判斷對角線

if(board[0]

[2]== board[1]

[1]&& board[1]

[1]== board[2]

[0]&& board[0]

[2]!=

' ')

//判斷對角線

}return

' ';

}/***********************

函式功能:電腦移動

輸入值:初始化的二維陣列

輸出值:無

************************/

void

computermove

(char board[

][row]

,int row,

int col)}}

/**********************

函式功能:玩家移動

輸入值:初始化的二維陣列,行,列

輸出值:無

***********************/

void

playermove

(char board[

][row]

,int row,

int col)

else

}else}}

/**********************

函式功能:判斷棋盤是否滿了

輸入值:初始化的二維陣列、行、列

輸出值:0或1,0代表沒有滿,1代表滿了

***********************/

static

intisfull

(char board[

][row]

,int row,

int col)}}

return1;

}

main.c

#include

"text.h"

intmain()

}while

(input)

;return0;

}

C語言井字棋

include include include include 主要邏輯 使用者資料 棋盤 儲存使用者資料 正好對應3 3的乙個棋盤的九個資料點 每個裡面乙個x,y對應棋盤中的乙個填棋子的位置 struct point char map 14 14 struct point data 4 4 代表九...

小白 c語言編寫井字棋遊戲

本人小白一枚,編寫井字棋遊戲純粹興趣使然,其中必有不當或錯誤之處,還望大佬們批評指正。初始化棋盤 定義乙個字元陣列,對不同元素賦相應的值,構成棋盤邊框。初始化棋盤 void inimap 編寫其餘相關函式 除了棋盤初始化函式外,還需編寫落子函式 勝負判斷函式 棋盤列印函式等函式。還可以列印分隔線,輸...

C 實現井字棋遊戲

初步實現雙玩家輸入,操作遊戲 下一步將實現人機博弈 include lwww.cppcns.comt iostream using namespace std void player1 void 玩家1輸入 操作 函式 void player2 void 玩家2輸入 操作 函式 void game ...