当前位置: 首页 > 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.hkea.cn/news/14307951/

相关文章:

  • 沈北新区建设局网站深汕特别合作区
  • 网站制作报价开南宁网站托管
  • 中国城乡与建设部网站中国建设银行网站
  • aspx网站如何架设上海网站建设-中国互联
  • 成都网站制作在线163企业邮箱免费注册
  • 怎么做网站鹅蛋生蚝图片类网站建设
  • 广州网站制作费用泰州住房和城乡建设厅网站首页
  • 做dj选歌是哪个网站当今做哪个网站致富
  • 全国互联网安全管理服务平台官网上海牛巨微seo
  • 怎样做公司网站建设app制作永久免费
  • 建设博物馆网站快速开发企业网站
  • 云南建投第十建设有限公司网站现货交易平台排名
  • 某些网站dns解析失败有哪些做设计交易网站有哪些
  • 张家港网站建设门店顾村网站建设
  • 男人最爱的做网站请人做网站合同
  • 国内卡一卡二卡三网站视频手机软件下载平台哪个好
  • 知名中文网站建设西安旅游服务网站建设
  • c 开发微网站开发wordpress知更鸟破解
  • 网站建设上的新闻安徽省建设厅网站职称
  • 怎么建设自己的网站婚纱手机网站
  • 高密微网站建设福步外贸论坛网官网
  • 青岛网站建设 上流wordpress打不开自定义
  • phpcms v9 网站模板wordpress打不开后台
  • 阿里巴巴国际网站首页视频怎么做哪个网站可以做计算机二级的题
  • 网站设计服务表手机网页如何制作
  • 广宗网站建设wordpress设置静态内容缓存时间
  • 网站的组成柳州市住房和城乡建设局网站首页
  • 网站托管流程wordpress时间插件下载地址
  • 做个网站需要什么步骤如何评估一个网站
  • 站长之家alexa排名怎么看公司做网站是com好还是cn好