国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(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ǔ)入的評論 (共 條)

分享到微博請遵守國家法律
确山县| 安岳县| 鸡西市| 绍兴县| 宣汉县| 施秉县| 双牌县| 仁化县| 巴林左旗| 南丹县| 资中县| 武胜县| 磐石市| 定襄县| 新源县| 广水市| 凤台县| 东辽县| 宁夏| 清苑县| 甘泉县| 灯塔市| 沙湾县| 徐汇区| 武隆县| 淅川县| 宣武区| 佛山市| 瑞丽市| 常熟市| 昌平区| 潍坊市| 广丰县| 乌兰浩特市| 会东县| 奉贤区| 中卫市| 沁源县| 临海市| 宜兰县| 黑山县|