生成棋盤玩家1與玩家2對戰,哪個玩家率先有連續5子連線,哪個玩家贏。
組成:二維陣列:board[row][col],定義乙個row*col的棋盤。
主要邏輯:
顯示棋盤,提示使用者下子,下子後判斷
1.顯示棋盤很簡單,慢慢湊棋盤就好
2. 使用者下子,注意兩個條件:棋子在棋盤裡,下子位置未被占用。
3.判斷是最難的,
方法:從下子位置的8個方向(上,下,左,右,右上,右下,左上,左下)計算相同棋子數目,然後將對角的棋子數相加,等於5說明有5子連線
主要函式中用到三個主要實現函式:
showboard(board, row, col);//展示棋盤
playermove(board, row, col, cur);//玩家下注,cur表示哪個玩家下子
judge(board, row, col);//判斷5子連線
getcount(board[col], row, col, dir)//計算方向dir相同棋子數
標頭檔案#ifndef __fivechree_h__
#define __fivechee_h__
#include
#include
#pragma warning(disable:4996)
#define row 10//棋盤行數
#define col 程式設計客棧10//棋盤列數
#define init '*'//棋盤初始化
#define player1 1
#define player2 2
#define next 3//繼續往下下
#define draw 4//棋盤下滿 平局
//8個方向
#define up 10
#define right_up 11
#define right 12
#define right_down 13
#define down 14
#define left_down 15
#define left 16
#define left_up 17
extern void menu();
extern void game();
#endif
main函式原始檔
#include"fivechree.h"
int main()
} printf("byebye\n");
system("pause");
return 0;
}函式定義原始檔
#include"fivechree.h"
static int x = 0;
static int y = 0;
void menu()
static void showboard(int board[col], int row, int col)
} }printf(" ");
for (int i =1; i <= row; i++)
printf("\n");
for (int i = 1; i <= row; i++)
printf("\n"); }}
static void playermove(int board[col], int row, int col, int who)
if (board[x - 1][y - 1] == init)
printf("postion is not empty\n"); }}
static int getcount(int board[col], int row, int col, int dir)
if (_x>=1 || _x<=row || _y>=1 || _y<=col)
else
} else
}return count;
}//如何判斷:從下子位置的8個方向(上,下,左,右,右上,右下,左上,左下)
//計算相同棋子數目,然後將對角的棋子數相加,等於5說明有5子連線
static int judge(int board[col], int row, int col)
count1 = getcount(board, row, col, right_up)\
+ getcount(board, row, col, left_down);
//printf("%d\n", count1);
if (count1 >= 4)
count1 = getcount(board, row, col, right)\
+ getcount(board, row, col, left);
//printf("%d\n", count1);
if (count1 >= 4)
count1 = getcount(board, row, col, right_down)\
+ getcount(board, row, col, left_up);
if (count1 >= 4)
for (int i = 0; i < row; i++)
} }return draw;
}void game();
//memset(board, init, row*col);
int result = 0;
int cur = player1;
showboard(board, row, col);//先展示棋盤
while (1)
cur = (cur == player1 ? player2 : player1);//三目表示式,注意不是 player1 ? player2 : player1
} showboard(board, row, col);
switch (result)
}本文標題: c語言實現雙人五子棋遊戲
本文位址:
C語言實現雙人對戰五子棋遊戲
在編寫五子棋遊戲前首先對整個專案進行分析 1 五子棋的介面繪製及顯示 2 對輸入的資料進行寫入 3 判斷輸入的資料多對應的位置上是否可以下棋其中包括檢測此位置是否為空及是否超出下棋的有效位置 越界超出棋盤大小 4 判斷五個棋子相連的情況 5 檢測勝利 6 整合所有函式功能實現雙人對戰的效果 以下內容...
C語言實現 五子棋遊戲
之前我們實現了關於電腦版的三子棋的遊戲玩法和思路,今天我們來實現五子棋的玩法和思路 和三子棋的很多思路很相似 define crt secure no warnings include include include define row 10 define col 10 char border r...
C語言實現五子棋
首先展示結果,這是執行以後出現的效果,在 定義棋盤大小 int p maximus maximus 儲存對局資訊 char buff maximus 2 1 maximus 4 3 輸出緩衝器 int cx,cy 當前游標位置 int now 當前走子的玩家,1代表黑,2代表白 int wl,wp ...