首页 > 其他分享 >ARM开发板-五子棋

ARM开发板-五子棋

时间:2023-08-04 19:35:47浏览次数:32  
标签:游戏 检查 五子棋 开发板 棋子 棋盘 ARM

c语言项目-五子棋游戏

  1. 开发环境:linux虚拟机内,Ubuntu,画板。
  2. IDE:Sublime-Text
  3. 编程语言:c语言
  4. 最终运行环境:arm-6818开发板(800*480)

所用的知识:系统io,数组,指针,内存拷贝,条件判断,循环,函数,枚举,宏定义,结构体,线程,字库

设计意图:运行在arm-6818开发板的一款触摸式五子棋游戏,游戏模式为人人对战。

设计之初:第一次做这样的项目,所以不知道从哪里下手,只有自己摸索,完全是靠着自己脑袋想出来的,代码也是一点点写出来的。

运行样例:
image

代码历程:
先在main函数里打开开发板的lcd和触摸屏的驱动,棋盘背景图。首先是将棋盘图显示在开发板上,其中用的是循环和memcpy内存拷贝函数。这样一个完整的棋盘图就显示在开发板上了,接下来就是让你点击棋盘时棋子能落到棋盘的点上,刚刚好好,一厘不差。我先是得到棋盘上每个落棋点的坐标,然后根据两点间的距离公式,找到距离你触摸点最近的那个落棋点,然后根据在开发板画圆的特性,在上面画棋子。之后初始化整个棋盘,在此之前定义一个棋盘结构体,里面分别是typedef enum { EMPTY, BLUE, RED } ChessPiece;,初始化整个棋盘使每个落棋点都置为空(EMPTY),为了阻止在同一位置下了两次棋子,所以在放旗子之前都会进行判断if(board[m][n] == EMPTY),为真我才填充棋子。最后就是判断输赢的逻辑,五子棋的判断逻辑无非就是,同一个棋子在其横竖对角线,连续有五个相同颜色的棋子就赢,所以就有了循环遍历每个棋子,分别是横向检查里的向左检查,向右检查;纵向检查里的向上检查和向下检查;主对角线的向左上检查和向右下检查;副对角线的向右上检查和向左下检查;定义一个全局变量记录每个棋子有连续五个的次数,一旦变量大于等于5,该玩家即获胜。最后为背景因为开启一个线程,游戏结束线程取消。总体来说这样一个五子棋游戏难度并不是很大。再接再厉!

标签:游戏,检查,五子棋,开发板,棋子,棋盘,ARM
From: https://www.cnblogs.com/bcc0729/p/17606776.html

相关文章

  • 联发科MTK6761_MT6761安卓核心板开发板方案定制
    MT6761安卓核心板集成了蓝牙、FM、WLAN和GPS模块,是一个高度集成的基带平台,结合了调制解调器和应用处理子系统,支持LTE/LTE-A和C2K智能手机应用。该芯片集成了工作频率高达2.0GHz的ARM®Cortex-A53和强大的多标准视频编解码器。此外,还包括一组广泛的接口和连接外围设备,用于连接相机......
  • 【OpenHarmony内核编程接口】介绍定时器管理两种定时器以及案例演示
    前言本文介绍了内核编程接口之软定时器软定时器软定时器含义软件定时器(Timer),是基于系统时钟tick且由软件来模拟的定时器,当经过设定的tick计数值后会触发用户定义的回调函数ps1:定时器触发函数的执行,不是线程ps2:当定时器到期时,将执行回调函数以运行特定的代码ps3:定时精度......
  • 【HarmonyOS】API9网络buffer图片加载
    ​ 【引言】HarmonyOS中加载网络图片常用的方法是直接给Image组件添加图片的网络地址,申请网络权限ohos.permission.INTERNET后就可以通过url加载对应的图片了,如HarmonyOS官网中的写法:Image('https://www.example.com/example.JPG') 【问题概述】但是日常开发中有些图片是......
  • 基于分级安全的OpenHarmony架构设计
     本文转载自 OpenHarmony TSC 官方微信公众号《峰会回顾第1期 | 基于分级安全的OpenHarmony架构设计》演讲嘉宾 | 付天福回顾整理 | 廖   涛排版校对 | 李萍萍 嘉宾简介付天福,OpenHarmony技术指导委员会安全及机密计算TSG负责人,华为公司科学家委员会副......
  • 正点原子ARM裸机开发002---VScode软件安装与使用
    一、下载安装VScodeWindows:直接拖拽软件文件夹中的安装包进行安装Ubuntu:用filezilla传输到Ubuntu下~/linux/tool文件夹中使用以下命令进行安装:sudodpkg-icode_1.32.3-1552606978_admin64.deb 安装完成以后,去文件---计算机---usr---share---application文件......
  • pycharm配置QtDesigner
    一、安装需要的库pipinstallpyqt5pipinstallpyqt5-tools 二、配置QtDesigner 配置 QtDesignerName:QtDesignerGroup:QtProgram:C:\python\venv\Lib\site-packages\qt5_applications\Qt\bin\designer.exeWorkingdirectory:$ProjectFileDir$ 配置 PyUICNa......
  • 解决pycharm书写html有注释的情况下,会有多余空格情况
    一、情况截图(看着有点不舒服)二、解决方法三、验证......
  • pycharm使用技巧汇总
    pycharm使用技巧汇总0、安装pycharm略。1、指定虚拟环境 2、创建代码块pycharm自定义代码片段https://www.cnblogs.com/andy9468/p/8988501.htmlpycharm中python模板代码自动生成https://www.cnblogs.com/andy9468/p/8302701.html 3、远程调试远程调试忽略上传文件......
  • Pycharm配置less编译生成的css文件到指定目录
    一、当前演示项目目录二、标记less文件夹为资源目录不标记其实也不影响三、打开FileWatchers(文件监视器)在主菜单中选择"File"(文件)>"Settings"(设置)(Windows/Linux)或"PyCharm"(Windows)/"Preferences"(Mac)或者使用快捷键"Ctrl+Alt+S"(Windows/Linux)或&qu......
  • iTOP-STM32MP157开发板一键烧写 QT 程序到开发板
    1根据上一小节设置好编译套件后,打开自己的qt工程,然后点击qtcreator里面的项目,把编译器切换成上一章节设置好的的编译器,如下图所示:2然后打开要编译的QT代码的pro文件,在里面添加以下代码,这俩行代码的意思是说把编译的可执行程序下载到开发板的/opt目录下并执行。target.pa......