项目三:双人骰子

项目三:双人骰子


应用说明:通过本节课的学习,我们将掌握按键模块和数码管模块的使用方法,了解双人骰子的游戏原理,

为后续学习更复杂的程序打下基础

除此之外,本节课是一个小游戏,也可以通过本节课增加学生们的兴趣,激发学生学习的积极性。

应用范围:各类小的创客比赛,游戏项目

一、导入(5分钟)

学习目的

xm3_1.jpg

1.了解双人骰子游戏的原理

2.学会按键模块和数码管模块的接线

3.学会按键模块和数码管模块的程序编写

二、新授(65分钟)

1.预展示结果(5分钟)

xm3_2.jpg

功能介绍:绿色按键代表玩家A,红色按键代表按键B,首先一名玩家按下对应的按键,此时数码管上的数字开始变化,

待玩家松开按键后,数码管上的数字停止变化,此时数码管上的数字就是改玩家的点数,待二名玩家都按下了按键之后,

数码管上显示结果,如果是玩家A的点数大,数码管上显示aaaa,如果是玩家b的点数大,数码管上显示bbbb,如果是

二个玩家的点数相等,数码管上显示cccc。

2.本节课所用的软硬件(5分钟)

所用器件数量
mixly 2.0软件1
C02mini主板1
齐护双按键开关模块1
齐护数码管模块1
C02 4pin线2
积木组件若干

3.硬件介绍(1分钟)

齐护双按键开关模块

齐护数码管模块

以上内容可参考:

4.图形化块介绍(1分钟)

齐护双按键开关模块相关块介绍

齐护数码管模块相关块介绍

以上内容可参考:

5.单个模块的简单使用(1分钟)

齐护双按键开关模块接线

齐护双按键开关模块程序

以上内容可参考:

6.双人骰子编程逻辑分析(30分钟)

xm3_3100f95c606b74b9d.jpg

逻辑分析:首先判断A按键是否按下,如果A按键按下,再判断A按键是否一直按住,如果A按键是一直按住,数码管上的数字开始循环显示1到6,每隔50毫秒切换一次数字,如果按键松开了,此时数码管上的数字停止跳动,并且记录下A玩家的点数

接着判断B按键是否按下,如果B按键按下,再判断B按键是否一直按住,如果B按键一直按住,数码管上的数字开始循环显示1到6,每隔50毫秒切换一次数字,如果按键松开了,此时数码管上的数字停止跳动,并且记录下B玩家的点数

如果已经记录过A玩家和B玩家的点数,再判断A玩家和B玩家点数的大小,如果A玩家的点数大,就显示aaaa,即A获胜,如果B玩家的点数大,就显示bbbb,即B玩家B获胜,如果二个玩家的点数相等,就显示cccc即平局

7.双人骰子项目分步实现(22分钟)

整体接线(5分钟)

xm1_27.jpg](https://z4a.net/image/VHoDgG)

按键模块接C02的P1端口,数码管模块接C02的P3端口

分步实现(17分钟)

xm3_5.png

1.数码管循环显示1到6,每隔50毫秒切换一次(5分钟)

程序

xm2_5.jpg](https://z4a.net/image/VWHLqJ)

效果:数码管循环显示1到6,每隔50毫秒切换一次,如果显示的数字大于6,又从1开始循环

2.按键按下数码管开始循环,松开数码管停止循环(5分钟)

程序

xm2_6.jpg](https://z4a.net/image/VWH8LK)

效果:按键按住的时候数码管开始循环显示数字,按键松开,数码管上的数字停止循环

3.判断A玩家和B玩家点数大小,并且显示结果(7分钟)

程序:

xm3_4.png

效果:首先A玩家按下按键,得出A玩家的点数,再B玩家按下按键,得出B玩家的点数,最后根据A玩家和B玩家点数的大小

显示不同的字符,如果A玩家的点数大,显示aaaa,如果B玩家的点数大,显示bbbb,如果相等,显示cccc。

三、巩固练习(15分钟)

在本节课所实现效果的基础上改变A、B按键按下后判断的时间,让判断的效果更加流畅

xm3_5.jpg

提示:修改此处的延时时间可以改变骰子转动的速度

四、课堂小结(5分钟)

本节课我们主要学习了以下内容

1.了解双人骰子游戏的原理

2.学会按键模块和数码管模块的接线

3.学会按键模块和数码管模块的程序编写

五、项目程序下载

下载到本地: 【双人骰子项目程序】

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C语言五子棋双人对战项目的架构可以分为以下几个模块: 1. 用户界面模块:负责显示游戏界面和接收用户输入。可以使用图形库或者命令行界面来实现。 2. 游戏逻辑模块:负责处理游戏规则和逻辑。包括判断胜负、落子、切换玩家等功能。 3. AI模块(可选):如果需要实现人机对战,可以添加一个AI模块,负责计算机玩家的落子策略。 4. 存储模块(可选):如果需要保存游戏进度或者记录游戏历史,可以添加一个存储模块,负责读写游戏数据。 5. 辅助函数模块:包含一些辅助函数,用于判断棋盘状态、检查落子是否合法等。 下面是一个简单的示例代码,展示了一个基本的五子棋双人对战项目的架构: ```c // 用户界面模块 void drawBoard(); void getUserInput(); // 游戏逻辑模块 void initGame(); void playGame(); int checkWin(); void switchPlayer(); // AI模块 void makeMove(); // 存储模块 void saveGame(); void loadGame(); // 辅助函数模块 int isValidMove(); int isBoardFull(); int main() { initGame(); playGame(); return 0; } void initGame() { // 初始化游戏数据 } void playGame() { while (!checkWin() && !isBoardFull()) { drawBoard(); getUserInput(); switchPlayer(); } // 游戏结束,显示结果 } int checkWin() { // 判断是否有玩家获胜 } void switchPlayer() { // 切换玩家 } void drawBoard() { // 绘制游戏界面 } void getUserInput() { // 获取用户输入 } void makeMove() { // AI计算落子位置 } void saveGame() { // 保存游戏进度 } void loadGame() { // 加载游戏进度 } int isValidMove() { // 检查落子是否合法 } int isBoardFull() { // 检查棋盘是否已满 } ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值