题目描述:小包最近发明了一种新的麻将,具体的规则如下:总共有36张,每张是1~9。每个数字4张。你手里有其中的14张,如果这14张满足如下条件,即算作和牌14张中有2张相同数字的,称为雀头。除去上述2张,剩下12张可以组成4个顺子或刻子。顺子的意思是递增的连续3个数字(例如234,567等),刻子的意思是相同数字的3个数字(例如111,777)例如:1 1 1 2 2 2 6
转载 2024-08-06 19:32:12
140阅读
通过Python计算麻将型 在麻将游戏中,有一种重要的计算需求,就是根据已知的计算出可以形成的可能组合。这对于提高游戏策略、增强游戏体验至关重要。以下就详细阐述如何使用Python解决“计算麻将型”的问题。 ### 协议背景 在麻将中,指的是玩家手中只差几张即可完成胡的状态。这种状态可以通过分析玩家手中的型和可能的补牌来推算。以下是麻将型的关系图,演示了不
原创 5月前
45阅读
利用 Java 实现麻将规则是一个很有趣的挑战。在本文中,我们将详细梳理这一实现过程,包括版本对比、迁移指南、兼容性处理、实战案例、排错指南及生态扩展。 ## 版本对比 首先,了解不同 Java 版本的变化是很重要的。在处理麻将规则时,我们需要评估各个版本的兼容性。 ```mermaid quadrantChart title 兼容性分析 x-axis 项目复杂度
原创 6月前
42阅读
# Java麻将判断 麻将是一款流行的桌面游戏,它有着丰富的游戏规则,其中“”是一个重要的概念。指的是玩家手中已有的组合满足胡条件,只需再摸到一张特定的即可胡。在本篇文章中,我们将探索如何使用Java进行麻将判断,并提供相关的代码示例。 ## 判断的基本逻辑 在麻将中,判断一个玩家是否通常需要检查他们手中的型的关系。根据麻将规则,胡一般需要满足以下几种
原创 8月前
139阅读
算法思想胡的条件必须有一对将(两个相同的)除了将,其余必须为顺子或刻子算法(精简版)提取所有将去除所有刻子去除所有顺子没有了,胡;还有,不胡算法(完整版)提取所有将(如果要胡,将是必须存在的,而且将可能会有多种)取一对将,如果没有将了,则表示不能胡将手去除选取的将将剩余的手去除所有的刻子,去除所有的刻子后如果手没有了,则胡;手还有,则继续第5步判断将手去除所有的顺子
转载 2023-10-24 11:23:39
86阅读
关于如何从34张中取13张组成最大番数下面开始进入正题,正常情况下,如果要从34张中取13张,算了下排列组合,要进行:34!/13!/21!=927983760次运算,太恐怖了,一般程序猿应该不会干这种事吧。 没办法了,只好逐个拆解分析,只提取有效的结果进行比对…一、公式分析日本麻将一般有的模式有三大种类: 1、国士无双:十三张幺九+任意一种幺九 这个就简单了,一共14种情况
#coding:utf8 ##################### #作者:skillart #bolg: # ##################### # 数据格式:类型=value/100, 数值=value%10 # [111-119] 万 # [121-129] # [131-139] # [141-149] # [211-219] 饼 # [221-22
转载 2024-01-16 18:16:15
20阅读
本文机翻至作者@tomohxx的文章开始本文就麻将中向数的计算算法进行解说,该算法的特点是时间复杂度与手枚数及向数无关的快速计算方法。后半部分将对示例程序进行说明,所以想早点尝试该算法的人推荐先看示例程序。另外,由于本文过于注重于严谨性,里面全是数学公式。背景在日麻中,手的和牌进度用向数一词来表示,这里将其定义为:向数 =「一副手时最小的自摸数」向计算需要分为七对子型,国士
目录希望程序实现的功能Part 0 关于日麻的基本概念Part 1 输入部分Part 2 计算的向计算面子、搭子、对子的数量顺子刻子对子搭子最后的检查计算数国士无双七对子一般形Part 3 计算进张Part 4 处理输出和主函数Part 5 效果 作为一个日麻爱好者,前两天刚学了Python的一些基础知识,想试着写一个类似于天凤理查询器的程序一开始感觉这个程序不是很难写的亚子,结果
麻将通常有13张,在打的时候随着吃,碰越来越少。总数应该维持在3*n + 1,n=0~4,比如1张,4张,7张或10张。胡时,加一张(可能是自摸或吃碰来的一张)组成n个顺子或暗刻,外加一个麻将对。 这里要研究的要点是: 1. 给出3n + 2张如何判断是否已经胡,所有的胡可能组合; 2. 如果给出3n+1张如何判断是否已经挺,挺哪些。 这两个问题其实主要是第一个问题,也就是如何判断
转载 2017-03-26 23:37:00
989阅读
2评论
引题:背景:判断和牌SA酱开始喜欢上了打麻将,但是他是新手,没办法一眼看出牌和没和,所以想要你帮助他写出一段代码,判断这18张和没和牌。输入格式:一行,输入14张面的代码,不同之间用空格隔开。的顺序是随机的。每张面对应一个由两个字符组成的代码,具体规则如下(共34种,每一种各4张):万子9种,代码为格式 "数字 + 大写M",例如五万的代码是"5M";筒子9种,代码格式为 "数
声明 算法并非原创 , 但是来源已经忘记了 , 当时考虑算法的时候看了比较多的麻将算法 , 想寻找自己比较容易理解的 , 找了几篇,所以算法的出处已然忘记,不过还是感谢下原创吧 . 算法 1.将麻将抽象为数字 数字 {01 ~ 09} 表示 {1 ~ 9} 筒数字 {11 ~ 19} 表示 {1 ~ 9} 条数字 {21 ~ 29} 表示 {1 ~ 9} 万数字 {31 33 35 37
转载 2021-08-12 08:12:03
4011阅读
最先实现的就是算法的实现。 需求:碰杠胡  ,不能吃 ,不能听 ,仅仅能自摸胡,当中癞子能够做随意可是不能碰和杠。 写的时候还不会玩麻将,还是老板教的。^_^ 最麻烦的是胡算法。之前搜到的都是不包括癞子正常的胡,用的是%3余2,当中余数2就是余的将的意思。 可是有癞子就不能这么用了。仅仅好自己写一个了。 一个有136张,万,饼,条,东西南北中发白34种。 有四个癞子是直接就胡的,最
转载 2015-01-31 09:36:00
357阅读
2评论
          今天尝试写了一个简单麻将的胡算法,规则很简单,看代码:#include<stdio.h>#include<string.h>/*1,2,3,4,5,6,7,8,9 万 11,12,13,14,15,16,17,18,19 索 21,22,23,24,25,26,27,28,29 饼*///胡规则:要一...
原创 2021-06-01 13:50:25
2140阅读
声明算法并非原创 , 但是来源已经忘记了 , 当时考虑算法的时候看了比较多的麻将算法 , 想寻找自己比较容易理解的 , 找了几篇,所以算法的出处已然忘记,不过还是感谢下原创吧 .算法1.将麻将抽象为数字数字 {01 ~ 09} 表示
转载 2022-02-24 11:38:22
2750阅读
姐姐:你去帮我和闺蜜打麻将?学霸哥哥:可是我不会打麻将呀!姐姐:你不是学霸吗?我教你一个麻将公式,我闺蜜可是单身哟!学霸哥哥:什么公式?姐姐:麻将公式: AAA*M+ABC*N+BB,WMN可以为任意数,胡里面有且只有一对!学霸哥哥:原来麻将还可以这样玩。好的 地址微信发给我,马上到!通过这个对话,我想大家应该都能明白麻将的胡公式是怎么样了,如果只是简单的麻将,我想算法实现起来就比较的
之前用vba写过,当时的思路不清楚,也没有python这样强大的工具,写了好长时间。现在想想,真的是太太太落后了。磨刀不误砍柴工,学习还是大有裨益的。麻将和牌规则:胡的基础型: (1)11、123、123、123、123 (2)11、123、123、123、111(1111,下同) (3)11、123、123、111、111 (4)11、123、111、111、111 (5)11、111、11
# coding=gbk """ 程序功能: 洗牌:将进行随机排列 发牌:1、初始化发牌,一下发两张 2、要,一次发一张 计分:2到10正常,JQK都是10分,考虑A的特殊性 胜负判断:比较电脑和玩家的分数大小,并记录 是否要 继续还是退出 """ # 洗牌函数 shuffle作用是随机打乱列表 from random import shuffle import rando
  声明: 算法并非原创 , 但是来源已经忘记了 , 当时考虑算法的时候看了比较多的麻将算法 , 想寻找自己比较容易理解的 , 找了几篇,所以算法的出处已然忘记,不过还是感谢下原创吧 .   算法理解之后就不难了 , 下面开始详细的阐述了.1. 将麻将抽象为数字  数字 {01 ~ 09} 表示  {1 ~ 9} 筒  数字 {11 ~ 19} 表示  
转载 2024-04-22 09:43:12
239阅读
最近在做一款叫做“卡五星”的三人麻将,湖北,麻将里只有筒和条(没有万)以及中发白这些。 其他的特殊功能暂且不提,其中有一个需求是玩家后需要将与胡有关系的显示出来给其他玩家看。 举个例子,比如说我的手是1234677筒,此时我胡5筒(4,6),那么就要讲4筒,6筒显示出来。又比如788
转载 2018-06-12 22:23:00
293阅读
2评论
  • 1
  • 2
  • 3
  • 4
  • 5