题目描述:小包最近发明了一种新的麻将,具体的规则如下:总共有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解决“计算麻将听牌牌型”的问题。
### 协议背景
在麻将中,听牌指的是玩家手中只差几张牌即可完成胡牌的状态。这种状态可以通过分析玩家手中的牌型和可能的补牌来推算。以下是麻将听牌牌型的关系图,演示了不
利用 Java 实现麻将听牌规则是一个很有趣的挑战。在本文中,我们将详细梳理这一实现过程,包括版本对比、迁移指南、兼容性处理、实战案例、排错指南及生态扩展。
## 版本对比
首先,了解不同 Java 版本的变化是很重要的。在处理麻将规则时,我们需要评估各个版本的兼容性。
```mermaid
quadrantChart
title 兼容性分析
x-axis 项目复杂度
# Java麻将听牌判断
麻将是一款流行的桌面游戏,它有着丰富的游戏规则,其中“听牌”是一个重要的概念。听牌指的是玩家手中已有的牌组合满足胡牌条件,只需再摸到一张特定的牌即可胡牌。在本篇文章中,我们将探索如何使用Java进行麻将听牌判断,并提供相关的代码示例。
## 听牌判断的基本逻辑
在麻将中,判断一个玩家是否听牌通常需要检查他们手中的牌与牌型的关系。根据麻将规则,胡牌一般需要满足以下几种
算法思想胡的条件必须有一对将(两个相同的牌)除了将,其余牌必须为顺子或刻子算法(精简版)提取所有将牌去除所有刻子去除所有顺子没有牌了,胡;还有牌,不胡算法(完整版)提取所有将牌(如果要胡,将牌是必须存在的,而且将牌可能会有多种)取一对将牌,如果没有将牌了,则表示不能胡将手牌去除选取的将牌将剩余的手牌去除所有的刻子,去除所有的刻子后如果手牌没有了,则胡;手牌还有,则继续第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的文章开始本文就麻将中向听数的计算算法进行解说,该算法的特点是时间复杂度与手牌枚数及向听数无关的快速计算方法。后半部分将对示例程序进行说明,所以想早点尝试该算法的人推荐先看示例程序。另外,由于本文过于注重于严谨性,里面全是数学公式。背景在日麻中,手牌的和牌进度用向听数一词来表示,这里将其定义为:向听数 =「一副手牌到听牌时最小的自摸数」向听数计算需要分为七对子型,国士
转载
2024-04-18 09:56:50
263阅读
目录希望程序实现的功能Part 0 关于日麻的基本概念Part 1 输入部分Part 2 计算手牌的向听数计算面子、搭子、对子的数量顺子刻子对子搭子最后的检查计算向听数国士无双七对子一般形Part 3 计算进张Part 4 处理输出和主函数Part 5 效果 作为一个日麻爱好者,前两天刚学了Python的一些基础知识,想试着写一个类似于天凤牌理查询器的程序一开始感觉这个程序不是很难写的亚子,结果
转载
2024-04-25 14:45:56
300阅读
麻将通常有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种,代码格式为 "数
转载
2024-01-02 16:15:51
549阅读
声明
算法并非原创 , 但是来源已经忘记了 , 当时考虑算法的时候看了比较多的麻将胡牌算法 , 想寻找自己比较容易理解的 , 找了几篇,所以算法的出处已然忘记,不过还是感谢下原创吧 .
算法
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可以为任意数,胡牌里面有且只有一对!学霸哥哥:原来麻将还可以这样玩。好的 地址微信发给我,马上到!通过这个对话,我想大家应该都能明白麻将的胡牌公式是怎么样了,如果只是简单的麻将胡牌,我想算法实现起来就比较的
转载
2023-12-19 20:16:18
96阅读
之前用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
转载
2023-10-07 15:29:56
12阅读
# coding=gbk
"""
程序功能:
洗牌:将牌进行随机排列
发牌:1、初始化发牌,一下发两张
2、要牌,一次发一张
计分:2到10正常,JQK都是10分,考虑A的特殊性
胜负判断:比较电脑和玩家的分数大小,并记录
是否要牌
继续还是退出
"""
# 洗牌函数 shuffle作用是随机打乱列表
from random import shuffle
import rando
转载
2024-08-20 18:40:42
15阅读
声明: 算法并非原创 , 但是来源已经忘记了 , 当时考虑算法的时候看了比较多的麻将胡牌算法 , 想寻找自己比较容易理解的 , 找了几篇,所以算法的出处已然忘记,不过还是感谢下原创吧 . 算法理解之后就不难了 , 下面开始详细的阐述了.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评论