python五子棋游戏15*15_在STM32上运行五子棋小游戏(15x15)

本文介绍了如何在STM32上实现15*15的五子棋游戏,包括绘制棋盘、用户交互、AI算法。通过触摸屏落子,单片机根据棋盘权值分析最优落子位置。代码中包含棋盘数据存储、棋子绘制、权值计算及结果判断等功能,适合嵌入式爱好者学习研究。
摘要由CSDN通过智能技术生成

本程序算法资料来自下面网站.

----https://www.cnblogs.com/buptzym/archive/2012/06/20/2556052.html----

先定义一个数组 用于存储整个棋盘的数据.

u16 ChessBoard[15][15];//棋盘数据.

一.己方下棋 基础函数.

1.在屏幕上显示出来一个15*15的棋盘.

void DrawTable(void)//画出15x15的棋盘.

{

int i;

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

{

LCD_DrawLine(8,16+i*16,232,16+i*16);

LCD_DrawLine(8+i*16,16,8+i*16,240);

}

}

2.//两个数之差的绝对值

//x1,x2:需取差值的两个数

//返回值:|x1-x2|

u16 my_abs(u16 x1,u16 x2)

{

if(x1>x2)return x1-x2;

else return x2-x1;

}

3.//x,y是横纵坐标,Data是数组

//返回0:无子,1 :黑子,2:白子

u8 ReadData(u8 x,u8 y)

{

int temp;

temp=ChessBoard[x][y];

return temp;

}

4.//x,y是横纵坐标,Data是数组

//dat 0:无子,1 :黑子,2:白子

void WriteData(u8 x,u8 y,u8 dat)

{

ChessBoard[x][y]=dat;

}

5.//画出棋子,黑色或者白色.

void DrawChess(int x,int y,u16 color)

{

POINT_COLOR=color;  //画笔色....

LCD_Draw_ALLCircle(8+x*16,16+y*16,8);

}

二.己方下棋应用函数

1.根据触摸的位置在屏幕上落子.

将棋子限制在棋盘的交叉格上.

void TouchChess(u8 dat)//触摸屏落子,

{

int x,y;

int chess_x,chess_y;

for(x=0;x<15;x++)

{

if(my_abs(8+x*16,tp_dev.x[0])<8)//附近范围<8

{

chess_x=x;

}

}

for(y=0;y<15;y++)

{

if(my_abs(16+y*16,tp_dev.y[0])<8)

{

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值