斗地主记牌器V1.0

好久没玩斗地主,上线之后,送了我个记牌器。。。要说这个记牌器啊,是真的好用,特别是在快结束的时候,能推测其他玩家手中还剩什么牌,简直是欢乐豆收割神器啊哈哈哈哈哈。。。。。

但是嘞,送我的记牌器过期了怎么办。。。。。还是自己做个吧。。。。。。。

于是就有了。。。。。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
//斗地主记牌器无敌简陋版V1.0
//可能不再更新!!!

//使用说明:
//开局之后先输入自己手中的牌,其中输入d代表大王,x为小王,1为A,0为10,jqk对应JQK,其它为数字
//然后再其他两位玩家出牌后,需要自己手动输入
//注意自己出的牌不用重复输入
//则记牌器中显示的剩余值为其他玩家手中的牌
//每新开一轮需要重新跑程序
//无终止条件

#include <iostream>

//输出记牌器
#define SHOW printf("D X 2 A K Q J 10 9 8 7 6 5 4 3\n%d %d %d %d %d %d %d  %d %d %d %d %d %d %d %d\n\n", D, X, card[2], card[1], card[13], card[12], card[11], card[10], card[9], card[8], card[7], card[6], card[5], card[4], card[3]);

using namespace std;

int main(void) {
    int D = 1, X = 1;
    int card[14];
    for (int i = 1; i < 14; i++)
        card[i] = 4;
    char ch;
    SHOW;
    while (cin >> ch) {
        if (ch == '\n') continue;
        switch (ch) {
            case 'd': D--; break;
            case 'x': X--; break;
            case '1': card[1]--; break;
            case '2': card[2]--; break;
            case '3': card[3]--; break;
            case '4': card[4]--; break;
            case '5': card[5]--; break;
            case '6': card[6]--; break;
            case '7': card[7]--; break;
            case '8': card[8]--; break;
            case '9': card[9]--; break;
            case '0': card[10]--; break;
            case 'j': card[11]--; break;
            case 'q': card[12]--; break;
            case 'k': card[13]--; break;
        }
        SHOW;
    }
    return 0;
}

怎么样,很简陋对吧。。。。嗯,只是个小想法,没有深入做(还不是技术不行。。。。。

虽然以后我不会再更新这个了(也可能会),但这里有几个小想法分享给大家!

斗地主记牌器V2.0
– 加入图形化界面
– 优化显示,在牌数为0时显示变灰色

斗地主记牌器V3.0
– 通过模式识别,可以分析用户的牌,并实现自动计数功能

斗地主记牌器V4.0
– 通过机器学习,学习用户出牌习惯
– 根据学习成果分析其他用户最可能的剩余牌
– 根据学习成果为使用者制定出牌策略

PS 这不就是AI嘛。。。。。。
PPS 上边那句话好有“设计感”。。。。。。(冷。。。



Leave a Reply

Your email address will not be published. Required fields are marked *