【c語言】實現最簡單的三子棋
無人工智慧,介面簡單,手動輸入座標x x
**如下 環境:vs2015
game.h
#pragma once
#ifndef __game_h__
#define __game_h__
#include #include #include #include #define row 3
#define col 3
void init_board(char board[row][col], int row, int col); //棋盤陣列初始化
void display_board(char board[row][col], int row, int col); //棋盤封裝顯示
void player_board(char board[row][col], int row, int col); //棋手下棋
void comp_board(char board[row][col], int row, int col); //機器下棋
int jud_win(char board[row][col], int row, int col); //判斷輸贏
int jud_full(char board[row][col], int row, int col); //判斷下滿
#endif //__game_h__
game.c
#define _crt_secure_no_warnings 1
#include "game.h"
void init_board(char board[row][col], int row, int col) //棋盤陣列初始化
void display_board(char board[row][col], int row, int col) //棋盤封裝顯示
}void player_board(char board[row][col], int row, int col) //棋手下棋
else
}else
system("cls");
display_board(board, row, col);
if (jud_win(board, row, col) == 1)//判斷輸贏...
else if (jud_win(board, row, col) == 3)
else comp_board(board, row, col);
}void comp_board(char board[row][col], int row, int col) //機器下棋
} system("cls");
printf("電腦已下:>\n");
display_board(board, row, col);
if (jud_win(board, row, col) == 2)//判斷輸贏...
else if (jud_win(board, row, col) == 3)
else player_board(board, row, col);
}int jud_win(char board[row][col], int row, int col)//判斷輸贏
for (i = 0; i < row; i++) //機器行判斷
for (i = 0; i < col; i++) //玩家列判斷
for (i = 0; i < col; i++) //機器列判斷
if ((board[0][0]) == (board[1][1]) && (board[1][1]) == (board[2][2]) && (board[0][0]) == '0')
return 1; //玩家斜判斷
if ((board[0][2]) == (board[1][1]) && (board[1][1]) == (board[2][0]) && (board[0][2]) == '0')
return 1;
if ((board[0][0]) == (board[1][1]) && (board[1][1]) == (board[2][2]) && (board[0][0]) == 'x')
return 2; //機器斜判斷
if ((board[0][2]) == (board[1][1]) && (board[1][1]) == (board[2][0]) && (board[0][2]) == 'x')
return 2;
if(jud_full(board, row, col))return 3;
}int jud_full(char board[row][col], int row, int col) //判斷下滿
return 1;
}
test.c
#define _crt_secure_no_warnings 1
#include "game.h"
void menu()
void menu2()
void game()
//display_board(board, row, col);//棋盤封裝
}int main()
} while (i != 0);
return 0;
}
三子棋小遊戲
簡單版的三子棋遊戲並不難,就只是運用二維陣列和呼叫各個函式。現在來分析遊戲的思路,首先在螢幕上列印乙個選擇遊戲的選單,這個簡單,就只需要呼叫乙個函式輸出就可以了,玩家選擇開始遊戲就進入遊戲函式,首先要初始化二維陣列,可以用memset 來進行初始化,然後在螢幕上列印出三子棋的棋盤,這個也簡單,知識簡...
三子棋小遊戲
game.h define crt secure no warnings ifndef game h define game h include include include include define rows 3 行數 define cols 3 列數void initboard char ...
三子棋小遊戲
一 井字雙人對戰遊戲 3子棋遊戲 分析 1.棋盤模擬。因為棋盤上的交叉點正好是3行3列,因此用乙個3行3列的二維陣列即可。資料初始值為0,表示未有妻子落下 值為1表示落下的是1好選手棋子,之位2表示的是2號選手的棋子。2.是否連成一條線檢測。對剛落下的妻子檢查所在的行是否都是同一選手的棋子 同樣再檢...