C语言的三子棋,用22天总结了一份完美的SQL学习笔记

}

else

{

printf(“该输入的坐标已经被占用\n”);

}

}

else

{

printf(“输入坐标错误\n”);

}

}

}

[](()电脑下棋


电脑设置两个随机值,再将进行条件判断

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

{

printf(“电脑走>\n”);

while (1)

{

int x = rand() % row;

int y = rand() % col;

if (board[x][y] == ’ ')

{

board[x ][y ] = ‘#’;

break;

}

}

}

[](()三子棋的判断胜负


是否有3个"@“能否连接成一条直线如果有则玩家获胜,是否有3个”#"能否连接成一条直线如果有则玩家获胜,如果棋盘已满没有获得胜利则为平均。

int IsFull(char board[ROW][COL], int row, int col)

{

int i = 0;

int j = 0;

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

{

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

{

if (board[i][j] == ’ ')

{

return 0;

}

}

}

return 1;

}

char IsWin(char board[ROW][COL], int row, int col)

{

int i = 0;

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

{

if (board[i][0] == board[i][1] && board[i][1] == board[i][2] && board[i][0] != ’ ')

{

return board[i][0];

}

}

for (i = 0; i < col; i++)

{

if (board[0][i] == board[1][i] && board[1][i] == board[2][i] && board[0][i] != ’ ')

{

return board[0][i];

}

}

if (board[0][0] == board[1][1] && board[1][1] == board[2][2] && board[1][1] != ’ ')

return board[1][1];

if (board[0][2] == board[1][1] && board[1][1] == board[2][0] && board[1][1] != ’ ')

return board[1][1];

if (IsFull(board, row, col))

{

return ‘Q’;

}

return ‘C’;

}

[](()总代码


#pragma once

#include<time.h>

#include<stdlib.h>

#include<stdio.h>

#define ROW 3

#define COL 3

//初始化棋盘

void InitBoard(char board[ROW][COL], int row, int col);

//打印棋盘

void DisplayBoard(char board[ROW][COL], int row, int col);

//玩 《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》开源 家下棋

void PlayerMove(char board[ROW][COL], int row, int col);

//电脑下棋

void ComputerMove(char board[ROW][COL], int row, int col);

//判断游戏的输赢

char IsWin(char board[ROW] Java开源项目【ali1024.coding.net/public/P7/Java/git】 [COL], int row, int col);

void InitBoard(char board[ROW][COL], int row, int col)

{

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

{

int j = 0;

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

{

board[i][j] = ’ ';

}

}

}

void DisplayBoard(char board[ROW][COL], int row, int col)

{

int i = 0;

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

{

int j = 0;

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

{

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

if (j < col - 1)

printf(“|”);

}

printf(“\n”);

if (i < row - 1)

{

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

{

printf(“—”);

if (j < col - 1)

printf(“|”);

}

}

printf(“\n”);

}

}

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

{

int x = 0;

int y = 0;

while (1)

{

printf(“请选择第三子棋坐标>”);

scanf(“%d%d”,&x,&y);

if ((x >= 1 && x <= row) && (y >= 1 && y <= col))

{

if (board[x - 1][y - 1] == ’ ')

{

board[x - 1][y - 1] = ‘@’;

break;

}

else

{

printf(“该输入的坐标已经被占用\n”);

}

}

else

{

printf(“输入坐标错误\n”);

}

}

}

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

{

printf(“电脑走>\n”);

while (1)

{

int x = rand() % row;

int y = rand() % col;

if (board[x][y] == ’ ')

{

board[x ][y ] = ‘#’;

break;

}

}

}

int IsFull(char board[ROW][COL], int row, int col)

{

int i = 0;

int j = 0;

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

{

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

{

if (board[i][j] == ’ ')

{

return 0;

}

}

}

return 1;

}

char IsWin(char board[ROW][COL], int row, int col)

{

int i = 0;

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

{

if (board[i][0] == board[i][1] && board[i][1] == board[i][2] && board[i][0] != ’ ')

{

return board[i][0];

}

}

for (i = 0; i < col; i++)

{

if (board[0][i] == board[1][i] && board[1][i] == board[2][i] && board[0][i] != ’ ')

{

return board[0][i];

}

}

if (board[0][0] == board[1][1] && board[1][1] == board[2][2] && board[1][1] != ’ ')

return board[1][1];

if (board[0][2] == board[1][1] && board[1][1] == board[2][0] && board[1][1] != ’ ')

return board[1][1];

最后总结

搞定算法,面试字节再不怕,有需要文章中分享的这些二叉树、链表、字符串、栈和队列等等各大面试高频知识点及解析

最后再分享一份终极手撕架构的大礼包(学习笔记):分布式+微服务+开源框架+性能优化

image

= board[2][i] && board[0][i] != ’ ')

{

return board[0][i];

}

}

if (board[0][0] == board[1][1] && board[1][1] == board[2][2] && board[1][1] != ’ ')

return board[1][1];

if (board[0][2] == board[1][1] && board[1][1] == board[2][0] && board[1][1] != ’ ')

return board[1][1];

最后总结

搞定算法,面试字节再不怕,有需要文章中分享的这些二叉树、链表、字符串、栈和队列等等各大面试高频知识点及解析

最后再分享一份终极手撕架构的大礼包(学习笔记):分布式+微服务+开源框架+性能优化

[外链图片转存中…(img-7VZQZtmi-1650617123860)]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值