最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

C語言程序設(shè)計(jì)從入門到進(jìn)階【比特鵬哥c語言2023完整版視頻教程】(c語言基礎(chǔ)入

2023-04-09 15:14 作者:把我也送回家好不好  | 我要投稿

//無智商人機(jī)實(shí)現(xiàn)n子棋

//有智商的人機(jī)可否提供代碼

//復(fù)制可運(yùn)行

#define _CRT_SECURE_NO_WARNINGS


#include <stdio.h>


#include <stdlib.h>


#include <time.h>


//表格行,列


#define ROW 10


#define COL 10


//幾子連接則勝


#define GAME 5


//初始化數(shù)組


void InitArr(char arr[ROW][COL], int row, int col)


{


for (int i = 0; i < row; i++)


{


for (int j = 0; j < col; j++)


{


arr[i][j] = ' ';


}


}


}


//打印棋盤


void DisplayArr(char arr[ROW][COL], int row, int col)


{


for (int i = 0; i < row; i++)


{


for (int j = 0; j < col; j++)


{


if (j == col - 1) {


printf(" %c \n", arr[i][j]);


}


else {


printf(" %c |", arr[i][j]);


}


}


if (i == row - 1) continue;


for (int j = 0; j < col; j++)


{


if (j == col - 1) {


printf("---\n");


}


else {


printf("---|");


}


}


}


}




//判斷輸贏


int IsWin(char arr[ROW][COL], int x, int y)


{


//行


int right = 1;


int left = 1;


//列


int down = 1;


int up = 1;


//左斜


int rightup = 1;


int leftdown = 1;


//右斜


int leftup = 1;


int rightdown = 1;


//行


for (int i = 1; i < GAME; i++)


{


if (y + i <= COL && arr[x][y] == arr[x][y + i]) {


left++;


}


else


{


break;


}


}


for (int j = 1; j < GAME; j++)


{


if (y - j >= 0 && arr[x][y] == arr[x][y - j]) {


right++;


}


else


{


break;


}


}


if (right + left - 1 >= GAME) {


return 1;


}


//列


for (int i = 1; i < GAME; i++)


{


if (x + i <= ROW && arr[x][y] == arr[x + i][y]) {


down++;


}


else


{


break;


}


}


for (int j = 1; j < GAME; j++)


{


if (x - j >= 0 && arr[x][y] == arr[x - j][y]) {


up++;


}


else


{


break;


}


}


if (down + up - 1 >= GAME) {


return 1;


}


//左斜


for (int i = 1; i < GAME; i++)


{


if (x + i <= ROW && y + i <= COL && arr[x][y] == arr[x + i][y + i]) {


leftdown++;


}


else


{


break;


}


}


for (int j = 1; j < GAME; j++)


{


if (x - j >= 0 && y - j >= 0 && arr[x][y] == arr[x - j][y - j]) {


rightup++;


}


else


{


break;


}


}


if (leftdown + rightup - 1 >= GAME) {


return 1;


}


//右斜


for (int i = 1; i < GAME; i++)


{


if (x + i <= ROW && y - i >= 0 && arr[x][y] == arr[x + i][y - i]) {


rightdown++;


}


else


{


break;


}


}


for (int j = 1; j < GAME; j++)


{


if (x - j >= 0 && y + j <= COL && arr[x][y] == arr[x - j][y + j]) {


leftup++;


}


else


{


break;


}


}


if (rightdown + leftup - 1 >= GAME) {


return 1;


}


return 0;


}


//判斷是否平局


int IsDraw(char arr[ROW][COL]) {


for (int i = 0; i < ROW; i++) {


for (int j = 0; j < COL; j++) {


if (arr[i][j] == ' ') {


return 0;


}


}


}


printf("游戲結(jié)束>\n平局");


return 1;


}

//玩家下棋


int PlayerMove(char arr[ROW][COL], int row, int col)


{


while (1)


{


printf("玩家下棋>\n請輸入坐標(biāo)> ");


int x;


int y;


scanf("%d %d", &x, &y);


if (arr[x - 1][y - 1] == ' ' && x >= 1 && x <= row && y >= 1 && y <= col) {


arr[x - 1][y - 1] = '*';


int a = IsWin(arr, x - 1, y - 1);


if (a) {


printf("玩家贏!!!!!!\n");


return 0;


}


if (IsDraw(arr)) {


return 0;


}


return 1;


}


else


{


printf("坐標(biāo)錯(cuò)誤或者被占用,重新輸入\n");


}


}


}


//電腦下棋


int ComputerMove(char arr[ROW][COL], int row, int col)


{


printf("電腦下棋>\n");


while (1)


{


int x;


int y;


x = rand() % row;


y = rand() % col;


if (arr[x][y] == ' ') {


arr[x][y] = '#';


int a = IsWin(arr, x, y);


if (a) {


printf("電腦贏!!!!!!\n");


return 0;


}


if (IsDraw(arr)) {


return 0;


}


return 1;


}


}


}






void playgame() {


char arr[ROW][COL] = { 0 };


//初始化數(shù)組


InitArr(arr, ROW, COL);


//打印棋盤


DisplayArr(arr, ROW, COL);


//開始


while (1)


{


//玩家下棋


int playnum = PlayerMove(arr, ROW, COL);


DisplayArr(arr, ROW, COL);


if (!playnum) {


break;


}


//電腦下棋


int computernum = ComputerMove(arr, ROW, COL);


DisplayArr(arr, ROW, COL);


if (!computernum) {


break;


}


}


}




int main() {


int choose;


srand((unsigned int)time(NULL));


do {


printf("**************************\n");


printf("**********1.play**********\n");


printf("**********0.exit**********\n");


printf("**************************\n");


printf("請選擇>");


scanf("%d", &choose);


switch (choose)


{


case 1:


playgame();


break;


case 0:


printf("退出游戲成功");


break;


default:


printf("輸入數(shù)字錯(cuò)誤,重新輸入!\n");


break;


}


} while (choose);


return 0;


}

C語言程序設(shè)計(jì)從入門到進(jìn)階【比特鵬哥c語言2023完整版視頻教程】(c語言基礎(chǔ)入的評論 (共 條)

分享到微博請遵守國家法律
汾西县| 淮北市| 武定县| 昌吉市| 铅山县| 贡山| 灵石县| 罗定市| 呼玛县| 肇庆市| 开平市| 镇雄县| 双流县| 丹江口市| 福安市| 建阳市| 桦甸市| 高唐县| 时尚| 宣城市| 吴忠市| 大悟县| 竹北市| 金沙县| 呼伦贝尔市| 阿克苏市| 吴川市| 常德市| 竹北市| 开鲁县| 融水| 安庆市| 曲麻莱县| 贡嘎县| 大英县| 吴江市| 华安县| 凯里市| 莱州市| 南召县| 于都县|