程序实现占卜

167 阅读2分钟

本篇文章是通过JavaScript实现的小demo

文件放置位置

image.png

第一步、创建一个utils.js文件(自己写的一些函数,嫌麻烦的也可以不用创)

//生成概率相等的随机数
function randomNum(max, min) {
//如果max小于min交换数值,这里采用的是异或的方法
  if (max < min) {
    max = max ^ min;
    min = max ^ min;
    max = max ^ min;
  }
  return Math.floor(Math.random() * (max - min + 1) + min);
}
/* 求任意数字的和 */
function sum() {
  var res = 0;
  for (let i = 0; i < arguments.length; i++) {
    res += arguments[i];
  }
  return res;
}
//导出函数
module.exports = {
  randomNum,
  sum,
};

第二步、创建实现占逻辑的js文件

//引入自己写的方法 一个是获取随机数 一个是求和
const { randomNum, sum } = require("./utils");
//模仿三枚硬币获取三个随机数放入arr数组
let arr = [];
//把三枚硬币的和,放入arrSum数组
let arrSum = [];
//三个硬币一起抛一次,求和,获得一个爻(yao 第二声),一起抛六次整合后得到一个卦象
for (let i = 0; i < 6; i++) {
  //清空arr数组
  arr = [];
  //模仿三枚硬币,每次抛一个硬币获取一个随机数,并存入数组
  for (let j = 0; j < 3; j++) {
    //这里定义每一次抛的结果为2或3
    let number = randomNum(2, 3);
    //把获取的随机数放入数组
    arr.push(number);
  }
  //把抛三次硬币结果的和放入一个数组
  arrSum.unshift(sum(...arr));
}
//遍历获取到的数组实现卦象
//6属阴 7属阳 9属阳 8属阴
//阴阳表示符
//阴 --
//阳 ——
console.log(arrSum);
console.log("***** 卦象展示 *****");
//遍历数组获得卦象
arrSum.forEach(function (item, index) {
  if (index === 0) {
    console.log("***** 上卦 *****");
  } else if (index === 3) {
    console.log("***** 下卦 *****");
  }
  if (item === 7 || item === 9) {
    console.log("***** —— *****");
  } else {
    console.log("***** -- *****");
  }
});

效果展示

image.png
数组的最后一个表示 第一次抛硬币获得随机数的和,倒数第二个表示 第二次抛硬币获得随机数的和,依次类推。

特此声明:

本人并非迷信,只是最近在看易经相关的视频,单纯感觉有趣,所以仿照算卦逻辑,写出的程序。写的同时也提高了自己的代码逻辑和代码熟练度。