| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2699 人关注过本帖
标题:请问如何用VS写出基本的麻将AI
只看楼主 加入收藏
gaosi
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2016-7-21
结帖率:0
收藏
已结贴  问题点数:20 回复次数:6 
请问如何用VS写出基本的麻将AI
求一段代码
输入一串数字(每个数字对应麻将的一张牌 数字个数<=14)
输出一个数字 这个数字是麻将规则下 目前应该打出来的牌
我不太懂编程 但是我知道人类分析麻将是如何分析的 这里贴出来 求大神们指导代码应该怎么写

方法说明:

 先要定义一些概念(这里跟网上的麻将基础教程是一样的)
孤张:单张牌 没有其他牌和他形成对子或者搭子
举例: 单张字牌是孤张  1万在手中没有1、2、3万的时候是孤张  5条在没有3-7条时是孤张
孤张向下分为三种:
幺九:19万 19饼 19条
偏张:28万饼条
中张:3-7


搭子:万饼条中 2张有关系的牌组成搭子
比如12万 57条 89饼都算作搭子
搭子向下有3种情况:
坎张、单边张、两边
坎张是等中间那张 即57条
单边张是只能等一侧的一张 如12万、89饼
两边就是两边都能等的 如 34条 67万

对子:两张一样的牌……

面子:形成abc或者ddd形式的 比如 234万 666饼  东风东风东风




牌效率理论是 面子>对子>搭子>孤张
搭子中 两边>坎张=单边张
孤张中 中张>偏张>幺九>字牌


程序的过程就是  然后确定每一张牌的类型 给他赋值 寻找效率最低的牌(得分最低的) 把它打出去 就这样


说明:
1:不考虑有效牌丢失的问题 就算3万被别人打出去3个 我们假装不知道。但是对于死张要知道 就是某个牌被人杠过 这张牌就彻底死了 不要再去等它了 输入的时候输入一些死张 让程序也要学会处理
2:不考虑胡牌问题 胡牌的计算更麻烦
3:复合牌应该怎么弄我没有思路 求大神们一并考虑复合牌应该怎么写  比如122334万 这个是一个完整型 你要是弄出来2个对子+2个孤张就太傻了……
搜索更多相关主题的帖子: 麻将 如何 网上 
2016-07-21 22:33
pengzhanggui
Rank: 5Rank: 5
等 级:职业侠客
威 望:8
帖 子:161
专家分:344
注 册:2015-7-20
收藏
得分:7 
網上有很多類似的代碼了,比如鬥地主的。自己下載來看看就知道了

来找我试试看
2016-07-22 14:48
xiangyue0510
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:86
帖 子:938
专家分:5244
注 册:2015-8-10
收藏
得分:7 
以下是引用pengzhanggui在2016-7-22 14:48:15的发言:

網上有很多類似的代碼了,比如鬥地主的。自己下載來看看就知道了

我感觉你想多了,他这种事典型的不会走就想跑的。不知道怎么说
2016-07-22 15:39
yangfrancis
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:141
帖 子:1510
专家分:7661
注 册:2014-5-19
收藏
得分:7 
那几个概念的思路理得太简单,按照那个来设计AI很容易打出很低级的牌。比如在3445和3459两种牌面里,这个AI会认为9是孤张,把它的估价计算为比3445低,事实上3445只能胡4,且自己已抓了两个,是很差的牌。
2016-07-22 18:04
gaosi
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2016-7-21
收藏
得分:0 
以下是引用yangfrancis在2016-7-22 18:04:42的发言:

那几个概念的思路理得太简单,按照那个来设计AI很容易打出很低级的牌。比如在3445和3459两种牌面里,这个AI会认为9是孤张,把它的估价计算为比3445低,事实上3445只能胡4,且自己已抓了两个,是很差的牌。
我在试着想一些综合性比较高的算法 但是从算法就不会 更别提程序实现了
2016-07-23 16:36
xiangyue0510
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:86
帖 子:938
专家分:5244
注 册:2015-8-10
收藏
得分:0 
以下是引用gaosi在2016-7-23 16:36:22的发言:

我在试着想一些综合性比较高的算法 但是从算法就不会 更别提程序实现了

你这个软件比较复杂了,有不同规则的问题,有人机交互(或者是网络版,那就有网络联机等)
不像一个简单的软件,实现一个简单的功能。你需要一个很好的顶层设计才行的。
2016-07-26 15:09
pengzhanggui
Rank: 5Rank: 5
等 级:职业侠客
威 望:8
帖 子:161
专家分:344
注 册:2015-7-20
收藏
得分:0 
回复 5楼 gaosi
比如什麽算法?

来找我试试看
2016-07-26 16:59
快速回复:请问如何用VS写出基本的麻将AI
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015326 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved