当前位置: 首页 > news >正文

做吃穿住行网站网络营销型网站

做吃穿住行网站,网络营销型网站,央企网站群建设,长春手机网站大家好#xff0c;我是 V 哥。首先要公布一个好消息#xff0c;V 哥原创的《鸿蒙HarmonyOS NEXT 开发之路 卷1#xff1a;ArkTS 语言篇》图书终于出版了#xff0c;有正在学习鸿蒙的兄弟可以关注一下#xff0c;写书真是磨人#xff0c;耗时半年之久#xff0c;感概一下…大家好我是 V 哥。首先要公布一个好消息V 哥原创的《鸿蒙HarmonyOS NEXT 开发之路 卷1ArkTS 语言篇》图书终于出版了有正在学习鸿蒙的兄弟可以关注一下写书真是磨人耗时半年之久感概一下希望可以帮助到正在入门鸿蒙开发的小伙伴一书在手 ArkTS无优。 今天要给大家分享一个 ArkTS小游戏的开发五子棋游戏通过这个小游戏的学习可以帮助小伙伴们快速开发出自己的第一款纯血鸿蒙应用先上图 五子棋游戏介绍 1. 这个五子棋游戏包含以下功能 使用15x15的标准棋盘支持双人轮流下棋黑棋先手自动判断胜负任意方向五连即胜游戏结束提示重新开始功能触摸交互支持 2. 视觉反馈 黑色棋子代表玩家1白色棋子代表玩家2棕色(#CBA)棋盘背景 3. 使用方法 点击棋盘格子下棋当一方达成五连时弹出胜利提示点击重新开始按钮重置游戏 4. 游戏规则 黑棋先手白棋后手轮流下棋棋子只能下在空白处率先在横、竖、斜任意方向形成五连者获胜游戏结束后需要点击重新开始才能开始新游戏 5. 该代码使用了HarmonyOS的ArkUI框架主要特性包括 使用Grid布局实现棋盘State管理游戏状态TouchTarget处理触摸事件AlertDialog显示胜利提示Flex布局实现整体界面二维数组存储棋盘状态 注意V哥在测试时使用的是模拟器在真实设备运行时可能需要根据屏幕尺寸调整单元格大小修改.width(30)和.height(30)的数值以获得最佳显示效果。 下面是详细代码实现及解释按照以下思路即可完美实现。 五子棋游戏代码分析 这段代码实现了一个简单的五子棋游戏使用了ArkTSArk TypeScript语言。下面我将详细解释每个部分的功能帮助你理解代码。 1. 导入和声明 Entry Component struct GobangGame {Entry 和 Component 是装饰器用于标记这是一个页面组件。struct GobangGame 定义了一个名为 GobangGame 的结构体表示五子棋游戏的主界面。 2. 状态变量 State board: number[][] Array(15).fill(null).map(() Array(15).fill(0))State currentPlayer: number 1 // 1: 黑棋, 2: 白棋State gameOver: boolean falseState 表示这些变量是可变的状态。board 是一个15x15的二维数组表示棋盘初始值为0空位1表示黑棋2表示白棋。currentPlayer 表示当前玩家1为黑棋2为白棋。gameOver 表示游戏是否结束。 3. 构建UI build() {Column() {// 游戏标题Text(this.gameOver ? 游戏结束 : 当前玩家: ${this.currentPlayer 1 ? 黑棋 : 白棋}).fontSize(20).margin(10)// 重新开始按钮Button(重新开始).onClick(() this.resetGame()).margin(5)// 棋盘Column() {ForEach(this.board, (row: number[], rowIndex: number) {Row() {ForEach(row, (cell: number, colIndex: number) {Column().width(30).height(30).border({ width: 1, color: #999 }).backgroundColor(this.getCellColor(cell)).onTouch((event: TouchEvent) {if (event.type TouchType.Down) {this.handleClick(rowIndex, colIndex)}})}, (colIndex: number) colIndex.toString())}}, (rowIndex: number) rowIndex.toString())}.margin(10)}.width(100%).height(100%).justifyContent(FlexAlign.Center)}build() 方法用于构建页面的UI。使用 Column 和 Row 布局容器来排列元素。显示当前玩家或游戏结束信息。提供一个“重新开始”按钮点击后调用 resetGame() 方法重置游戏。使用 ForEach 循环渲染棋盘每个单元格是一个 Column设置了宽度、高度、边框和背景颜色并绑定了触摸事件。 4. 获取单元格颜色 private getCellColor(value: number): ResourceColor {return value 1 ? #000 : value 2 ? #fff : #CBA}getCellColor 方法根据单元格的值返回相应的颜色 1黑棋返回黑色 (#000)2白棋返回白色 (#fff)0空位返回浅灰色 (#CBA) 5. 处理点击事件 private handleClick(row: number, col: number) {if (this.gameOver || this.board[row][col] ! 0) returnlet newBoard [...this.board]newBoard[row][col] this.currentPlayerthis.board newBoardif (this.checkWin(row, col)) {this.gameOver trueAlertDialog.show({ message: ${this.currentPlayer 1 ? 黑棋 : 白棋}获胜! })} else {this.currentPlayer this.currentPlayer 1 ? 2 : 1}}handleClick 方法处理玩家点击棋盘的动作 如果游戏已经结束或该位置已有棋子则不处理。否则在指定位置放置当前玩家的棋子。检查是否有玩家获胜如果有则显示胜利提示并结束游戏。否则切换到下一个玩家。 6. 检查胜利条件 private checkWin(row: number, col: number): boolean {const directions [[[-1, 0], [1, 0]], // 垂直[[0, -1], [0, 1]], // 水平[[-1, -1], [1, 1]], // 主对角线[[-1, 1], [1, -1]] // 副对角线]for (let direction of directions) {let count 1for (let i 0; i direction.length; i) {let dx direction[i][0]let dy direction[i][1]let x row dxlet y col dywhile (x 0 x 15 y 0 y 15 this.board[x][y] this.currentPlayer) {countx dxy dy}}if (count 5) return true}return false}checkWin 方法检查当前玩家是否在某个方向上连成五子 定义了四个方向垂直、水平、主对角线和副对角线。对每个方向进行检查统计连续相同棋子的数量。如果任意方向上有五个或更多相同的棋子则返回 true表示当前玩家获胜。 7. 重置游戏 private resetGame() {this.board Array(15).fill(null).map(() Array(15).fill(0))this.currentPlayer 1this.gameOver false}resetGame 方法重置游戏状态 清空棋盘。将当前玩家设置为黑棋1。设置 gameOver 为 false表示游戏未结束。 最后小结 这段代码实现了一个完整的五子棋游戏包括棋盘绘制、玩家交互、胜负判断和游戏重置功能。通过理解每个部分的功能你可以更好地掌握如何使用ArkTS开发类似的游戏应用。最后需要游戏源码的伙伴可以到 Gitee 下载V 哥已经把源代码上传到 Giteehttps://gitee.com/wgjava/GobangGame欢迎一起交流鸿蒙原生开发。关注威哥爱编程鸿蒙开发共前行。
http://www.w-s-a.com/news/801383/

相关文章:

  • 在线网站备案站长seo综合查询工具
  • 网站根 html网站建设行业数据
  • 网站公司做的网站有最字设计说明室内设计
  • 在线网站代码生成我想做个百度网站怎么做
  • 网站的建设费用分为长治市建设厅官方网站
  • 做网站都有哪些费用建设免费手机网站
  • 网站 组成代码做网站图片怎么插
  • 2020中国企业500强榜单南宁seo标准
  • 北美购物网站排名烟台专业的网站建站公司
  • 门户网站设计特点营销策划咨询机构
  • 天津做网站就到徽信xiala5中国营销型网站
  • 外汇网站建设制作深圳三站合一网站建设
  • 深圳坂田网站设计公司有哪些学校网站建设管理办法
  • 太原建设银行网站中山营销型网站设计
  • 广东省建设厅官方网站多少钱江苏省江建集团有限公司建设网站
  • 网站开发主流服装网站开发课程设计
  • 在iis里面创建网站wordpress响应式视频
  • 学设计哪个网站好网页设计音乐网站
  • 可以自己做斗图的网站上海模板建站多少钱
  • 山东川畅信息技术有限公司网站建设网站开发任务书
  • 网站排版设计欣赏搭建公司介绍网站
  • 网站弹窗是怎么做的长沙智优营家
  • 手机网站菜单设计模板菜单网站图片素材
  • 浙江网站推广爱企查企业查询入口
  • 公司网站平台vs2012网站开发课程设计
  • 哪些方法可以建设网站做网站失败
  • 龙岗网站建设技术wordpress左右两栏
  • 电子商务网站开发与应用的介绍怎么查询域名是否备案
  • 想做一个自己设计公司的网站怎么做的权威发布型舆情回应
  • 做ppt用的音效网站python基础教程网易