首页 > 其他分享 >uniapp js 数独小游戏 n*n 看控制台的打印 数独 1.0

uniapp js 数独小游戏 n*n 看控制台的打印 数独 1.0

时间:2024-08-28 14:04:01浏览次数:11  
标签:uniapp arr 1.0 value sdNum let Math const 数独

uniapp js  数独小游戏 n*n  看控制台的打印 game.vue
<template>   <view> 4567</view> </template> <script setup lang="ts"> import { ref } from 'vue' import { onShow } from '@dcloudio/uni-app' const sdNum = ref(9) const rowList = ref([]) const rowListNew = ref([]) const rightList = ref([]) onShow(() => {   generateShuDu() }) // 初始化数独 const generateArr = () => {   const arr = []   for (let i = 0; i < sdNum.value; i++) {     arr[i] = []     for (let j = 0; j < sdNum.value; j++) {       arr[i][j] = 0     }   }   console.log(arr)   return arr } // 生成1-9的随机整数 const generateRandom = () => {   //   return Math.floor(Math.random() * 9 + 1)   return Math.floor(Math.random() * sdNum.value + 1) } const generateShuDu = () => {   const arr = generateArr()   console.log(11122233)   console.log(arr)
  //生成数独   for (let i = 0; i < sdNum.value; i++) {     let time = 0     for (let j = 0; j < sdNum.value; j++) {       arr[i][j] = time === sdNum.value ? 0 : generateRandom()       if (arr[i][j] === 0) {         // 不是第一列,则倒退一列         if (j > 0) {           j -= 2           continue         } else {           // 是第一列,则倒退到上一行的最后一列           i--           j = Number(sdNum.value) - 1           continue         }       }       if (isCorret(arr, i, j)) {         time = 0 // 初始化time,为下一次填充做准备       } else {         time++ // 次数增加1         j-- // 继续填充当前格       }     }   }   rightList.value = JSON.parse(JSON.stringify(arr))   console.log('rightList')   console.log(rightList.value)
  //  随机删除部分数独内容   delSomeList(arr) } // 是否满足行、列和3X3区域不重复的要求 const isCorret = (arr, row, col) => {   if (sdNum.value != 9) {     return checkRow(arr, row) && checkLine(arr, col)   } else {     return checkRow(arr, row) && checkLine(arr, col) && checkNine(arr, row, col)   } }
// 检测行是否符合标准 const checkRow = (arr, row) => {   for (let j = 0; j < Number(sdNum.value) - 1; j++) {     if (arr[row][j] === 0) {       continue     }     for (let k = j + 1; k < sdNum.value; k++) {       if (arr[row][j] === arr[row][k]) {         return false       }     }   }   return true } // 检测列是否符合标准 const checkLine = (arr, col) => {   for (let j = 0; j < Number(sdNum.value) - 1; j++) {     if (arr[j][col] === 0) {       continue     }     for (let k = j + 1; k < sdNum.value; k++) {       if (arr[j][col] === arr[k][col]) {         return false       }     }   }   return true } // 检测3X3是否符合标准 const checkNine = (arr, row, col) => {   // 获得左上角的坐标   const j = Math.floor(row / 3) * 3   const k = Math.floor(col / 3) * 3   // 循环比较   for (let i = 0; i < 8; i++) {     if (arr[j + Math.floor(i / 3)][k + (i % 3)] === 0) {       continue     }     for (let m = i + 1; m < 9; m++) {       if (         arr[j + Math.floor(i / 3)][k + Math.round(i % 3)] ===         arr[j + Math.floor(m / 3)][k + Math.round(m % 3)]       ) {         return false       }     }   }   return true } // 随机删除部分数独内容 const delSomeList = (arr) => {   // 随机隐藏的个数  randomNum   //   const randomNum = Math.floor(Math.random() * 30) + 50   const randomNum = Math.floor(Math.random() * 10) + 4   for (let a = 0; a < randomNum; a++) {     const i = Math.floor(Math.random() * sdNum.value)     const j = Math.floor(Math.random() * sdNum.value)     arr[i][j] = ''   }   rowList.value = JSON.parse(JSON.stringify(arr))   rowListNew.value = JSON.parse(JSON.stringify(arr))   console.log(111)   console.log(rowList.value)   console.log(rowListNew.value) } </script>
<style lang="scss"> </style>

标签:uniapp,arr,1.0,value,sdNum,let,Math,const,数独
From: https://www.cnblogs.com/dreammiao/p/18384522

相关文章

  • 移动端+PC端源码,智慧城管执法系统,后端框架:springboot,移动端:uniapp
    市管理综合执法管理平台实现执法办案、业务全流程在线办理,依托移动端+PC端的“两端”应用模式,保障能够通过信息化手段进行日常的执法办案工作,强化执法监督功能。提供了案件在线办理、当事人信用管理、文书电子送达、沿街店铺分析等功能,全面赋能执法队员,提高执法队员办案效率。......
  • uniapp 在线预览pdf 或者 文件
    页面代码:<template><view><web-view:src="fileUrl"></web-view></view></template><script>exportdefault{data(){return{fileUrl:"&quo......
  • Dependency-Checkc操作手册V1.0(互联网及内网使用)
                  Dependency-Check操作手册二〇二四年八月Dependency-Check操作手册拟制:___________________   日期:___________________校对:___________________   日期:___________________审核:_________......
  • uniapp微信小程序获取小程序新版本
    functioncheckUpdate(){//使用该接口,可以获知是否有新版本小程序、新版本是否下载好以及应用新版本的能力。constupdateManager=uni.getUpdateManager()updateManager.onCheckForUpdate(function(res){//请求完新版本信息的回调console.log(res.hasUp......
  • vue3uniapps使用富文本mp-html插件
    1.实现效果具体需求:顶部是搜索栏,包括搜索结果个数,目前跳到第几个,包含上一个、下一个按钮。富文本区域关键词高亮黄色,当前关键词为高亮橙色。如图2.版本号用到vue3和uniapp,mp-html插件版本是v2.5.0,插件地址:https://ext.dcloud.net.cn/plugin?id=805用npm方式打包放到......
  • 使用 UniApp 实现摄像头视频流的接入并在页面上显示视频流
    UniApp是一个使用Vue.js开发所有前端应用的框架,它支持一次开发,多端部署(包括H5、小程序和APP)。下面我将展示如何使用UniApp实现摄像头视频流的接入,并在页面上显示视频流。我还会提供一些使用场景以及代码优化建议。使用场景直播应用:用户可以实时分享自己的画面。在线......
  • C++实现的数独游戏
    数独游戏是什么数独(Sudoku)是一种基于数字的逻辑推理游戏,起源于18世纪的瑞士数学家莱昂哈德·欧拉(LeonhardEuler)的拉丁方阵,但现代数独的规则由美国架桥杂志在20世纪后半叶所推广,随后在日本得到了广泛流行,并被命名为“数独”(意为“数字独立”)。如今,数独已经成为一种在世界各......
  • uniapp源码 进销存 小程序 可生成H5页面和APP,前后端全开源小程序 进销存管理系统多用
    现在市面上这个前后端进销存大都存在BUG,不知道大家有没有发现,1.采购管理不能退货和跳转页面缺失BUG,需要刷新一下就是在退货审核管理那里去确认成功退货,商品库存还是显示采购入库时的数量。2.销售管理库存为0还能进行出库,(最后显示没有库存)(前提是修复了采购那里的BUG)3.销售......
  • 基于SpringBoot的智慧党建系统+uniapp移动端+LW示例参考
    1.项目介绍技术栈+环境:SpringBoot+thymeleaf+uniapp+IDEA+Navicat+MySQL功能介绍:后端功能:首页管理(轮播图、通知公告、新闻管理)、用户管理(用户信息、用户反馈、用户订单、用户动态)、其他管理(题库管理、任务管理)移动端:学习模块、游戏学习模块、打卡签到、积分商城、问题咨......
  • 基于SpringBoot+Vue+uniapp的安康学院新型冠状病毒肺炎疫情防控专题网站的详细设计和
    文章目录前言详细视频演示具体实现截图技术栈后端框架SpringBoot前端框架Vue持久层框架MyBaitsPlus系统测试系统测试目的系统功能测试系统测试结论为什么选择我代码参考数据库参考源码获取前言......