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下载文件方法 小胡子哥 博客里写过,但是有点小问题需要修改下才能满足我的要求。
    真心要抽个时间写一下,不然就老了。

  • 相关阅读:
    dotnet 新项目格式与对应框架预定义的宏
    dotnet 线程静态字段
    dotnet 线程静态字段
    dotnet 通过 WMI 拿到显卡信息
    dotnet 通过 WMI 拿到显卡信息
    dotnet 通过 WMI 获取指定进程的输入命令行
    dotnet 通过 WMI 获取指定进程的输入命令行
    dotnet 通过 WMI 获取系统信息
    dotnet 通过 WMI 获取系统信息
    PHP show_source() 函数
  • 原文地址:https://www.cnblogs.com/52cik/p/js-cube-disrupt-algorithm.html
Copyright © 2011-2022 走看看