卡牌分组

满足最小分组的长度为其他分组的整数倍

export default (arr) => {
  // 对这副牌进行排序,升序、降序都可以
  arr.sort((a, b) => a - b)
  let min = Number.MAX_SAFE_INTEGER
  let dst = []
  let result = true
  for (let i = 0, len = arr.length, tmp = []; i < len; i++) {
    tmp.push(arr[i])
    for (let j = i + 1; j < len - 1; j++) {
      if (arr[i] === arr[j]) {
        tmp.push(arr[j])
      } else {
        if (min > tmp.length) {
          min = tmp.length
        }
        // 因为数组为引用类型,直接push会导致出错
        dst.push([].concat(tmp))
        tmp.length = 0
        i = j
        break
      }
    }
  }
  dst.every(item => {
    if (item.length % min !== 0) {
      result = false
      return false
    }
  })
  return result
}

原文地址:https://www.cnblogs.com/ygjzs/p/12234070.html

时间: 2024-10-12 12:56:46

卡牌分组的相关文章

卡牌分组([AtCoder ARC073]Ball Coloring)

1. 题目描述: 前两道题说了东东和东东爸过去的故事, 现在我们就预测东东未来几年在小学的生活. 小东东上小学时也许会喜欢一种玩具--卡牌. 这里为了出这道题就设每张卡牌只有一个非负整数属性值. 有一天, 小东东买了N包卡牌,每包里有两张卡牌( 设有一张卡片的属性值是xi,另一张的属性值是yi) (就是说小东东一共买了2N张卡牌) . 小东东要把每包里的两张卡牌都分开,并分别放到左右两堆(如果认为描述不清楚请仔细食用样例) . 小东东定义了以下的一些数值: Lmax:放在小东东左边卡牌堆里的卡牌

TCG卡牌游戏研究:《炉石战记:魔兽英雄传》所做的改变

转自:http://www.gameres.com/665306.html TCG演进史 说到卡牌游戏,大家会联想到什么呢? 是历史悠久的扑克牌.风靡全球的<MTG 魔法风云会>与<游戏王>.结合数位与现实的<三国志大战>.或是在手机上掀起收集热潮的<龙族拼图>和<百万亚瑟王>? 卡牌游戏这个统称,其内容可以跟各式各样的玩法结合,而暴风雪新推出的<炉石战记>(以下简称炉石)所选择的玩法,是让玩家自行组牌.进行对战的「集换式卡牌游戏」(

[JLOI2013]卡牌游戏

题目描述 N个人坐成一圈玩游戏.一开始我们把所有玩家按顺时针从1到N编号.首先第一回合是玩家1作为庄家.每个回合庄家都会随机(即按相等的概率)从卡牌堆里选择一张卡片,假设卡片上的数字为X,则庄家首先把卡片上的数字向所有玩家展示,然后按顺时针从庄家位置数第X个人将被处决即退出游戏.然后卡片将会被放回卡牌堆里并重新洗牌.被处决的人按顺时针的下一个人将会作为下一轮的庄家.那么经过N-1轮后最后只会剩下一个人,即为本次游戏的胜者.现在你预先知道了总共有M张卡片,也知道每张卡片上的数字.现在你需要确定每个

cocos2d-x 3.3 之卡牌设计 NO.6 Loading界面(异步加载图片,plist)

刚开始做卡牌的时候没有想到要做loading,因为小游戏资源不多. 但是后来不断的加图片,直到在真机上发现卡顿的问题,我才知道该需要加loading了...... 首先,我们先定义类: class Loading : public Layer { public: bool init(); CREATE_FUNC( Loading); static Scene* CreateScene(); int total_pic_num;//需加载图片数 int total_sound_num;//需加载声

卡牌游戏

卡牌游戏 个人信息:就读于燕大本科软件工程专业 目前大三; 本人博客:google搜索"cqs_2012"即可; 个人爱好:酷爱数据结构和算法,希望将来从事算法工作为人民作出自己的贡献; 编程语言:C++ 和 java ; 编程坏境:Windows 7 专业版 x64; 编程工具:vs2008; 制图工具:office 2010 powerpoint; 硬件信息:7G-3 笔记本; 真言 敢于承认不足,敢于去接触和学习,同时又沉稳而镇静 题目 百练 1003 How far can y

BZOJ 4205: 卡牌配对

4205: 卡牌配对 Time Limit: 20 Sec  Memory Limit: 512 MBSubmit: 173  Solved: 76[Submit][Status][Discuss] Description 现在有一种卡牌游戏,每张卡牌上有三个属性值:A,B,C.把卡牌分为X,Y两类,分别有n1,n2张. 两张卡牌能够配对,当且仅当,存在至多一项属性值使得两张卡牌该项属性值互质,且两张卡牌类别不同. 比如一张X类卡牌属性值分别是225,233,101,一张Y类卡牌属性值分别为11

cocos2d-X 卡牌手机游戏《刀塔传奇》完整源码下载

源码介绍 <刀塔传奇>--cocos2d-x手机游戏源码下载 <刀塔传奇>是一款以Dota故事为背景的动作卡牌手机游戏战斗DEMO,以创新的轻操作战斗玩法,打破传统卡牌游戏操作呆板.无脑等待的瓶颈,玩家指尖手动掌控英雄大招,把握施放大招的顺序,尽享酷炫技能带来的极致视觉体验.<刀塔传奇> iOS/安卓平台长时间高居排行榜榜首,创下了2014年手游人气神话. 大小:7 MB 测试环境 引擎版本:3.0 开发工具:vs2012 测试说明:基于cocos2d-x3.0和vs2

自然系卡牌主要增加血量m--4武侠联盟游戏

在<游戏降临>这一款手游中,有很多不同类型不同属性的卡牌,卡牌一共分为5个系,近百种卡牌,让玩家为之倾心.卡牌分为火,水,自然,雷,光5个系,火系卡牌主要增加攻击力,水系卡牌主要增加幸运,自然系卡牌主要增加血量,雷系卡牌主要增加敏捷,光系卡牌主要增加防御.每一种卡牌都有其特定的作用和效果,只要玩家善于运用和搭配,就能发挥卡牌的最大能量,引爆战争. 战术阵型的作用会愈来愈突出的.举个例子,你的球队实力2000,但却打不过实力1800的球队,这就是阵容战术在作怪!阵型战术的相克原理是:组织克防守,

【OpenGL】Shader实例分析(六)- 卡牌特效

转发请保持地址:http://blog.csdn.net/stalendp/article/details/30989295 本文将介绍怎么通过alpha通道来隐藏信息,并实现卡牌特效.运行效果如下: 代码如下: Shader "stalendp/imageShine" { Properties { _MainTex ("image", 2D) = "white" {} _NoiseTex("noise", 2D) = &qu