zoukankan      html  css  js  c++  java
  • 魔方 打乱步骤生成 算法

    之前一直想写个魔方计算器来着,以前一直用的都是魔方小站上的那个,虽然经典,但是太不美观了,而且我是个前端,那页面,那代码,简直不忍直视,所以想自己写一个。可是各种原因一直没机会写完,只写了核心打乱部分。

    但是由于我魔方水平有限,所以这个算法还是参考至魔方小站,只是重新写了下代码:

    (function() {
        function checkmove(move, arr) { // 检测步骤合理性
            var l = arr.length;
            return move == arr[l - 1] || (move == arr[l - 2] && (move / 2 | 0) == (arr[l - 1] / 2 | 0));
        }
    
        function rndCube(maxSteps) { // 生成随机打乱步骤
            var cubeArr = [], // 打乱步骤数组
                cubeStr = "", // 打乱步骤字符串
                cube = ["R", "L", "F", "B", "U", "D"], // 步骤
                types = ["", "", "'", "'", "2"], // 步骤附加条件
                r, // 随机数
                i;
    
            maxSteps = maxSteps || 25
    
            for (i = 0; i < maxSteps; i++) {
                do {
                    r = Math.random() * 6 | 0;
                } while (checkmove(r, cubeArr));
                cubeArr.push(r);
                cubeStr += cube[r] + types[Math.random() * 5 | 0] + " ";
            }
    
            return cubeStr;
        }
    
        console.log(rndCube());
    })();

    这个代码基本上就是这个计时器的核心部分了。

    那个记录下载的功能,我打算用js实现,而不是提交到后台然后下载。
    js下载文件方法 小胡子哥 博客里写过,但是有点小问题需要修改下才能满足我的要求。
    真心要抽个时间写一下,不然就老了。

  • 相关阅读:
    泛式之争
    测试的本质
    动态语言与静态语言
    对象之间的关系
    关于“重复”的一段交流
    装饰器与子类化
    类的设计质量
    抽象跟难
    Unity经典游戏编程之:球球大作战
    关于Unity 中对UGUI制作任务系统的编程
  • 原文地址:https://www.cnblogs.com/52cik/p/js-cube-disrupt-algorithm.html
Copyright © 2011-2022 走看看