好运留下来,烦恼丢出去,龙年大吉各位

2024-02-10 15:52

本文主要是介绍好运留下来,烦恼丢出去,龙年大吉各位,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

// 主函数
const main = () => {console.log(`---魔术开始---`);// 生成初试牌组let cardList = [];let noRandom = false;cardList = createCardList(noRandom);console.log(`---您获取的初始牌组是${JSON.stringify(cardList)}---`);console.log(`————————————————————————————————————————————————————————————————————————————————————`);// 根据名字字数移动对应次数的牌组let nameNumber = 2;cardList = moveNameNum(cardList, nameNumber);console.log(`---您的名字是${nameNumber}个字,需要移动${nameNumber}次---`);console.log(`---您移动${nameNumber}次之后的牌组是${JSON.stringify(cardList)}---`);console.log(`————————————————————————————————————————————————————————————————————————————————————`);// 头三张重新插入牌组中间,获取隐藏牌,并藏在屁股下面const result_3 = topThreeInsert(cardList);cardList = result_3.cardList;console.log(`---您头三张牌重新插入之后的牌组是${JSON.stringify(cardList)},您的隐藏牌是${result_3.hiddenCard}---`);console.log(`————————————————————————————————————————————————————————————————————————————————————`);cardList.shift();console.log(`---您藏起隐藏牌之后的牌组是${JSON.stringify(cardList)},您的隐藏牌是${result_3.hiddenCard}---`);console.log(`————————————————————————————————————————————————————————————————————————————————————`);// 根据南北方人,再将对应头几张牌插入中间// 北方人-1,南方人-2,不清楚-3let personNumber = 2;const result_4 = placePersonInsert(cardList, personNumber);cardList = result_4.cardList;console.log(`---您${personNumber === 1 ? '是北方人' : personNumber === 2 ? '是南方人' : '不知道自己是哪里人'},所以你要将头${personNumber}张牌重新插入---`);console.log(`---您将头${personNumber}张牌重新插入之后的牌组是${JSON.stringify(cardList)},您的隐藏牌是${result_3.hiddenCard}---`);console.log(`————————————————————————————————————————————————————————————————————————————————————`);// 根据姓别丢掉对应个数的牌// 男士丢掉头1张,女士丢掉头2张let genderNumber = 1;cardList = moveCardBasedOnGender(cardList, genderNumber);console.log(`---您是${genderNumber === 2 ? '女' : '男'}性,所以你要丢掉头${genderNumber}张牌---`);console.log(`---您丢掉头${genderNumber}张牌之后的牌组是${JSON.stringify(cardList)},您的隐藏牌是${result_3.hiddenCard}---`);console.log(`————————————————————————————————————————————————————————————————————————————————————`);// 根据“见证奇迹的时刻”移动七次cardList = cardListMove(cardList);console.log(`---您根据“见证奇迹的时刻”移动七次之后的牌组是${JSON.stringify(cardList)},您的隐藏牌是${result_3.hiddenCard}---`);console.log(`————————————————————————————————————————————————————————————————————————————————————`);// 好运留下来,烦恼扔出去cardList = leaveGoodLuckDisCardTroubles(cardList);console.log(`---您最终的牌组是${JSON.stringify(cardList)}---`);console.log(`---您藏起来的牌是${result_3.hiddenCard}, 你手上的牌是${cardList[0]}---`);if (result_3.hiddenCard == cardList[0]) {console.log(`---好事成双,祝大家龙年大吉---`);} else {console.log(`---大侠请重新来过---`);}
}// 创建生成对应的牌组
const createCardList = (noRandom) => {let cardInitList = [];if (noRandom) { // 固定牌组cardInitList = [4, 2, 6, 1];} else { // 随机生成牌组const length = 4;for (let i = 0; i < length; i++) {const randomNum = Math.floor(Math.random() * 900);// 随机生成1~9的数字牌cardInitList.push(randomNum % (4 * 2) + 1);}}// 撕开合并cardList = cardInitList.concat(cardInitList);return cardList;
}// 移动名字字数对应的次数
const moveNameNum = (cardInitList, num) => {// 默认1num = num ? num : 1;// 获取需要移动的牌const frontList = cardInitList.slice(0, num);// 获取保留的牌const backList = cardInitList.slice(num, cardInitList.length);// 进行移动const cardList = backList.concat(frontList);return cardList;
}// 首三张插入牌组中间
const topThreeInsert = (cardInitList) => {// 获取头三张牌const topThreeList = cardInitList.slice(0, 3);// 保留下来的牌组const reserveList = cardInitList.slice(3, cardInitList.length);// 将头三张牌重新插到剩下的牌中间,那不包含首尾位置let cardList = reserveList;topThreeList.forEach(i => {// 随机生成插入位置,不包含首尾let insertIndex = (Math.floor(Math.random() * 900) % (reserveList.length - 2)) + 1;// 将牌插入牌组const handList = cardList.slice(0, insertIndex);handList.push(i);cardList = handList.concat(cardList.slice(insertIndex, cardList.length));})return {cardList,// 隐藏牌(藏屁股下面的)hiddenCard: cardList[0]};
}// 根据那方人在将对应牌插入牌组中间
const placePersonInsert = (cardInitList, num) => {// 默认1num = num ? num : 1;// 获取需要重新插入的头几张牌const needList = cardInitList.slice(0, num);// 保留下来的牌组const reserveList = cardInitList.slice(num, cardInitList.length);// 将需要重新插入的牌插到剩下的牌中间,那不包含首尾位置let cardList = reserveList;needList.forEach(i => {// 随机生成插入位置,不包含首尾let insertIndex = (Math.floor(Math.random() * 900) % (reserveList.length - 2)) + 1;// 将牌插入牌组const handList = cardList.slice(0, insertIndex);handList.push(i)cardList = handList.concat(cardList.slice(insertIndex, cardList.length));})return {cardList};
}// 根据姓别丢弃对应个数的牌
const moveCardBasedOnGender = (cardInitList, num) => {// 默认1num = num ? num : 1;let cardList = cardInitList.slice(num, cardInitList.length);return cardList;
}// 根据“见证奇迹的时刻”移动七次
const cardListMove = (cardInitList) => {const strValue = '见证奇迹的时刻';const strLength = strValue.length;let cardList = cardInitList.concat(cardInitList).concat(cardInitList);cardList = cardList.slice(strLength, strLength + cardInitList.length);return cardList;
}// 好运留下来,烦恼扔出去
const leaveGoodLuckDisCardTroubles = (cardInitList) => {let cardList = cardInitList;while (cardList.length > 1) {cardList.push(cardList.shift());cardList.shift();console.log(`---好运留下来,烦恼扔出去---`);console.log(`---此时,您手上的牌组是${JSON.stringify(cardList)}---`);}return cardList;
}// 好运留下来,烦恼扔出去 第二版
const leaveGoodLuckDisCardTroubles_1 = (cardInitList) => {let cardList = cardInitList;// 本次牌组长度是偶数还是奇数let currflag = 2;// 上一次牌组长度是偶数还是奇数let prevFlag = 2;// 是不是第一次let isInit = true;while (cardList.length > 1) {let list = [];// 获取本次牌组长度是偶数还是奇数currflag = cardList.length % 2 === 0 ? 2 : 1;if (isInit || (prevFlag % 2 === 0)) { // 第一次循环或者上一次是偶数是,丢到位置在偶数的牌,保留位置在奇数的牌isInit = false;cardList.forEach((item, index) => {if (index % 2 === 0) {list.push(item);}})cardList = list;} else { // 反之丢到位置在奇数的牌,保留位置在偶数的牌cardList.forEach((item, index) => {if (index % 2 !== 0) {list.push(item);}})cardList = list;}// 将本次牌组长度是偶数还是奇数赋值给上一次牌组长度是偶数还是奇数,供下一次循化使用prevFlag = currflag;console.log(`---好运留下来,烦恼扔出去---`);console.log(`---此时,您手上的牌组是${JSON.stringify(cardList)}---`);}return cardList;
}// 函数运行
main();

这篇关于好运留下来,烦恼丢出去,龙年大吉各位的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/697509

相关文章

别为大文件烦恼!mp4文件太大怎么变小?3个管用方法

你是否曾经遇到过mp4视频文件过大的困扰?每当想要分享或存储mp4文件时,巨大的文件就成了阻碍。明明感觉感觉没占用多少空间,但是设备却常常出现空间过满警告。 没多少空间的设备真是让人大为恼火,没人想多花一份钱买设备。那么只能选择把文件变小,节省空间了。mp4文件太大怎么变小?在这篇文章中,我们将分享三种有效的方法,帮助你轻松解决mp4文件过大的问题。 还等什么呢?请屏幕外的读者和我们一起按步骤

uniapp树洞烦恼分享系统 微信小程序设计与实现 80igt

目录 博主介绍技术栈系统设计🌟文末获取源码+数据库🌟具体实现截图后端前端java类核心代码部分展示可行性论证个人心得系统测试操作可行性源码获取详细视频演示 博主介绍 👇🏻 博主介绍:👇🏻 专注于Vue Java、python nodejs php小程序技术领域和毕业项目实战✌全网粉丝50W+,博客专家、CSDN特邀作者、CSDN新星计划导师、全栈领域优质创作者,cs

杭中国高铁“走出去”的意义

http://www.docin.com/p-828394913.html?Ju1UrEFab http://www.docin.com/p-828394904.html?1B31q http://www.docin.com/p-828394894.html?p9s3o8eq9v http://www.docin.com/p-828394889.html?bAF64a http://www

告别文档处理烦恼,PDF Guru Anki一键搞定所有

前言 知识就像烛光,能照亮一个人,也能照亮无数人,科技之光更是如此;这一理念深刻地影响了我们如何看待和应用新技术。正是在这样的背景下,一款集PDF处理与高效学习工具于一体的软件——PDF Guru Anki应运而生,它不仅代表了技术创新的力量,更是开发者对提升用户工作学习效率的深刻洞察与不懈追求。 开发团队由一群热爱技术、勇于创新的专业人士组成。他们深知在信息化时代,处理PDF文档和学习管理已

Kettle邮件发不出去_已解决

参考网上各种教程,配置了kettle的相关信息,奈何就是发不出去,哪里都没问题,而且执行还不报错,将信息故意填错,执行也不报错。 配置如下: 执行的日志一直是这样:     研究半天,发现不是配置问题,根本就不执行,加到JOB中也不行,JOB前后加上START和SUCCESS还是不行。   最后,我发现Kettle中,好像有两个Mail工具,而且长的一模一样: 在j

分贝通助力云天励飞“甩掉”每月报销烦恼

技术创新和应用落地两手抓,已经是每一家人工智能企业突破瓶颈、快速发展的共同选择。可在组织的日常运营中,如何提升创新效率,保证项目建设又快又好完成,人效是关键。作为国内领先的人工智能企业,云天励飞率先选择从费用支出的角度寻找人效升级突破。 企业介绍 云天励飞成立于2014年8月,是拥有算法、芯片和大数据全栈式能力的人工智能企业。凭借“算法芯片化”的核心能力和“端云协同”的技术路线,云天励飞在智慧

BUUCTF派大星的烦恼

解压得到一张图片没啥有用信息 根据下面题目提示,用010editor打开图片发现一段16进制字符串 派大星最近很苦恼,因为它的屁股上出现了一道疤痕!我们拍下了它屁股一张16位位图,0x22,0x44代表伤疤两种细胞,0xf0则是派大星的赘肉。还原伤疤,知道是谁打的派大星!(答案为32位的一串字符串) 注意:得到的 flag 请包上 flag{} 提交 在010editor直接

HOJ 1876经理的烦恼

http://acm.hit.edu.cn/hoj/problem/view?id=1867 哎~这道题re了很多次。后来找到原因竟然是 #define maxn 1000010+5   的错误,因为这里的C++提交不支持 宏定义有+的运算改为     #define maxn 1000010就过了 解题思路:树状数组C[i]存的是A[i-lowbit[i]+1]~A[i]中的素数的个数。之

ios去水印软件免费版,精选五大高效工具,告别水印烦恼!

随着社交媒体的普及,越来越多的人喜欢在网络上分享自己的生活点滴。在分享视频时,水印往往会影响美观。为了帮助大家解决这个问题,本文为您推荐五大高效免费的iOS去水印软件,让您轻松告别水印烦恼! 软件一:奈斯水印助手(小程序) 推荐指数:☆☆☆☆☆ 奈斯水印助手是一款简单易用的去水印小程序,可以帮助用户快速去除视频中的水印。 特点: 1、操作简便,一键去除水印。 2、支持多种视频格式。

NYOJ 237 游戏高手的烦恼 POJ3041-Asteroids ( 二分图的最大匹配 )

链接: NYOJ 237  游戏高手的烦恼:click here~~ POJ  3041 Asteroids           :click here~~ 题意: 两题一样,翻译不同而已。 有一位传说级游戏高手,在闲暇时间里玩起了一个小游戏,游戏中,一个n*n的方块形区域里有许多敌人,玩家可以使用炸弹炸掉某一行或者某一列的所有敌人。他是种玩什么游戏都想玩得很优秀的人,所以,他决