三子棋,和五子棋的原理是一樣的,當玩家或者是電腦的某一方先將各自的三個棋子下成一條線時誰就贏,遊戲就會結束。
遊戲會有三種結果:電腦贏、玩家贏、平局。在**中也需要這三種情況的判定。
要寫程式,就要清楚**需要幾個模組,可以分為以下幾個:
棋盤初始化
電腦、玩家分別走棋
輸贏的判定
先對頭檔案定義:
頭檔名 sanziqi.h
#ifndef __sanziqi_h__
#define __sanziqi_h__
#include
#include
#include
#define row 3 //三橫行
#define col 3 //三豎行
void initboard(char arr[row][col], int row, int col);
//棋盤初始化
void displayboard(char arr[row][col], int row, int col);
//棋盤的展示
void computermove(char arr[row][col], int row, int col);
//電腦下棋
void playermove(char arr[row][col], int row, int col);
//玩家下棋
char iswin(char arr[row][col], int row, int col);
//判斷輸贏
char isfull(char arr[row][col], int row, int col);
//判斷棋盤是否下滿 下滿則為平局
#endif
下來可以寫以上各個需求的具體實現:
sanziqi.c
#include"sanziqi.h"
void initboard(char arr[row][col], int row, int col)
//此處可以用memset函式實現,為展示清楚寫成for
}void displayboard(char arr[row][col], int row, int col)
}printf("\n");
}void computermove(char arr[row][col], int row, int col)
}}//電腦下棋採用了隨機的下法
void playermove(char arr[row][col], int row, int col)
else
}else
}}char iswin(char arr[row][col], int row, int col)
//行的判斷
for (i = 0; i < col; i++)
//列的判斷
if ((arr[0][2] == arr[1][1]) && (arr[1][1] == arr[2][0]) && arr[1][1] != ' ')
if ((arr[0][0] == arr[1][1]) && (arr[1][1] == arr[2][2]) && arr[2][2] != ' ')
//這兩個是斜行的判斷
else
if (isfull(arr, row, col) == 1)
//平局的返回值
else
}char isfull(char arr[row][col], int row, int col)
}//如果每個位置都不為空,證明已經平局
return
1;}
在實現了各個模組的功能之後,就可以將它們整合在一起。
如下是main.c
#include
#include
#include
#include"sanziqi.h"
int menu(void)
//選單選擇
void game()
if (ret == 'x')
else
if (ret == 'o')
else
if (ret == 'w')
}int main()
} while (1);
return
0; system("pause");
}
遊戲選單:
遊戲結果:
小遊戲 三子棋(C語言實現)
在電腦中存放時間有點久了,先把 寫一下,後邊有空加 與注釋。實現 game.h檔案 define crt secure no warnings 1 ifndef game h define game h include include include includeenum option defin...
C語言實現三子棋小遊戲
一 首先說一下具體思路 我們首先要想到的是三子棋的棋盤是乙個3 3的正方形棋盤,那麼這個棋盤我們可以用乙個二維陣列來實現。接下來就要想到具體要怎麼玩兒,首先讓電腦下乙個棋子走一步,然後玩家再下乙個棋子走一步。電腦下棋我們要產生一些隨機數,玩家下棋需要輸入具體的座標。最後就是判斷輸贏了 我們知道,三行...
C語言實現三子棋小遊戲
大致思路 三子棋其實運用到的是簡單的3 3的二維陣列,由玩家和電腦對局,這裡預設玩家的棋子是 x 電腦的棋子是 0 當然你也可以用其他的字元。當棋盤上一行或者一列或者交叉被下滿相同的棋子,則一方獲勝。主要板塊 列印選單 列印棋盤 玩家下棋 判斷輸贏 電腦下棋 判斷輸贏 具體實現 1,列印選單 voi...