炸金花

Time Limit:1000MS  Memory Limit:65536K

Total Submit:40 Accepted:19

Description

 炸金花是一个风靡全球的扑克游戏,喜欢玩他的人不计其数,不少人因为这个游戏发了家,而更多的人则输得倾家荡产。为了帮助赌徒们戒掉它,安徽科技学院决定派你去写一个程序,帮助赌徒们更好的认识这个游戏。 

  炸金花在这里被简化成这样一个情况:每一个人都会被随机的发到1~13中的任意三张牌,然后比较大小。比较大小的方式是这样的: 

  豹子:即三张一样的牌,同类型的豹子,数字大的更大,豹子大于任何其他情况。 

  顺子:即三张递增的连续的牌,比如(4,5,6),(1,2,3),都是顺子的话,谁的点数大则大,顺子大于对子和单张。 

  对子:即两张一样的牌带一张单牌,比如(1,1,4),(2,2,5),都是对子的话,谁的那一对大则大,如果那一对也一样,则比较单张的大小。对子大于单张。 

  单张:即三张牌不是上述的三种。单张的比较大小方式是,先比较最大的,再比较第二大的,再比较第三大的。 

  你的任务是,对于给定的牌,判断输赢

Input

多组输入,每组输入两行,第一行三个数是你的三张牌,第二行是对手的三张牌

Output

每组数据输出,若你赢输出you win,否则you lose

Sample Input

9 9 9
7 8 9

Sample Output

you win

Source

这个题只需不断的分类,但感觉自己写的这代码量还是有点多了,欢迎大家来此评论

#include <stdio.h>

void my_sort(int *x, int *y, int *z)
{
int t;
if ( *x > *y ) { t = *x; *x = *y; *y = t; }
if ( *x > *z ) { t = *x; *x = *z; *z = t; }
if ( *y > *z ) { t = *y; *y = *z; *z = t; }
} int judge_1(int *x, int *y, int *z)
{
if ( *x == *y && *y == *z )
return 1;
return 0;
} int judge_2(int *x, int *y, int *z)
{
if ( *y == *x + 1 && *y == *z -1 )
return 1;
return 0;
} int judge_3(int *x, int *y, int *z)
{
if ( *x == *y )
return *x;
else if ( *y == *z ) {
return *y;
}
return 0;
} int judge_4(int *x, int *y, int *z)
{
if ( *x == *y )
return *z;
else if ( *y == *z ) {
return *x;
}
return 0;
} void printY()
{
printf("you win\n");
} void printN()
{
printf("you lose\n");
} int main()
{
int a, b, c, x, y, z;
while ( ~scanf("%d%d%d%", &a, &b, &c) )
{
scanf("%d%d%d", &x, &y, &z);
my_sort(&a, &b, &c);
my_sort(&x, &y, &c);
if ( judge_1(&a, &b, &c) ) {
if ( judge_1(&x, &y, &z) ) {
if ( c > z ) {
printY();
}
else {
printN();
}
}
else {
printY();
}
}
else if ( judge_2(&a, &b, &c) ) {
if ( judge_2(&x, &y, &z) ) {
if ( c > z ) {
printY();
}
else {
printN();
}
}
else {
printY();
}
}
else if ( judge_3(&a, &b, &c) ) {
if ( judge_3(&x, &y, &z) ) {
if ( judge_3(&a, &b, &c) > judge_3(&x, &y, &z) ) {
printY();
}
else if ( judge_3(&a, &b, &c) < judge_3(&x, &y, &z) ) {
printN();
}
else if ( judge_4(&a, &b, &c) > judge_4(&x, &y, &z) ) {
printY();
}
else {
printN();
}
}
else {
printY();
}
}
else {
if ( c > z ) {
printY();
}
else if ( c < z ) {
printN();
}
else if ( b > y ) {
printY();
}
else if ( b < y ) {
printN();
}
else if ( a > x ) {
printY();
}
else if ( a < x ) {
printN();
}
}
} return 0;
}

akoj-1222-炸金花的更多相关文章

  1. 200行代码搞定炸金花游戏(PHP版)

    <?php/* * 游戏名称:炸金花(又名三张牌.扎金花) * 开发时间:2009.1.14 * 编 程:多菜鸟 * 来 源:http://blog.csdn.net/kingerq/archi ...

  2. XidianOJ 1044 炸金花

    题目描述 炸金花是一个风靡全球的扑克游戏,不少人因为这个游戏发了家,而更多的人则输得倾家荡产.为了帮助赌徒们戒掉它,现在决定派你去写一个程序,帮助赌徒们更好的认识这个游戏. 炸金花在这里被简化成这样一 ...

  3. 炸金花的JS实现从0开始之 -------现在什么都不会(1)

    新年结束了.回想起来唯一留下乐趣的就是在家和朋友玩玩炸金花. 遂有此文. 对不起,我这时候还没有思路. 让我捋一捋. ... ... 捋一捋啊... ... 好了.今天先这样吧: (1)先整理出所有的 ...

  4. 炸金花游戏(4)--炸金花AI基准测试评估

    前言: 本文将谈谈如何评估测试炸金花的AI, 其实这个也代表一类的问题, 德州扑克也是类似的解法. 本文将谈谈两种思路, 一种是基于基准AI对抗评估, 另一种是基于测试集(人工选定牌谱). 由于炸金花 ...

  5. 炸金花游戏(3)--基于EV(期望收益)的简单AI模型

    前言: 炸金花这款游戏, 从技术的角度来说, 比德州差了很多. 所以他的AI模型也相对简单一些. 本文从EV(期望收益)的角度, 来尝试构建一个简单的炸金花AI. 相关文章: 德州扑克AI--Prog ...

  6. 品鉴同事发来的炸金花的PHP程序代码

    今天同事发来了一个炸金花的PHP程序,这个代码实现了两个人通过各自的三张牌进行权重计算,得到分数进行比较得到谁的牌大,我觉得里面还有一些问题,代码如下: <?php /** 每张牌的分值为一个2 ...

  7. 自己写的微信小程序炸金花简单版

    app.json: { "pages":[ "pages/index/index" ], "window":{ "navigati ...

  8. IOS本地化。

    1,项目名本地化 点击项目,蓝色图标->info 最下面+号,添加chinese本地化. Supporting Files->infoPlist.strings 下会有两个文件,有一个是设 ...

  9. 【Android病毒分析报告】 - ZxtdPay 吸费恶魔

    本文章由Jack_Jia编写,转载请注明出处.  文章链接:http://blog.csdn.net/jiazhijun/article/details/11581543 作者:Jack_Jia    ...

随机推荐

  1. php session_start()报错 解决办法

    1.php.ini中的output_buffering=off 改成output_buffering=4096 2.php.ini中的session.save_path是否设置好了 3.php.ini ...

  2. 机器学习之分类问题实战(基于UCI Bank Marketing Dataset)

    导读: 分类问题是机器学习应用中的常见问题,而二分类问题是其中的典型,例如垃圾邮件的识别.本文基于UCI机器学习数据库中的银行营销数据集,从对数据集进行探索,数据预处理和特征工程,到学习模型的评估与选 ...

  3. Hibernate基础知识总结

    Hibernate是JDBC的轻量级的对象封装(encapsulation),它是一个独立的对象持久persistence层框架. hibernate要做的事,就是让对象投影到关系数据库中,然后实施化 ...

  4. 构建混合应用方式之WCF中继

    使用VPN或者ER服务建立云服务和本地服务网络通道来搭建混合应用的方式,需要网络设备的配合和比较复杂的网络配置,所以不是特别的方便.如果是不希望对本地网络环境做修改,而只是服务层面的混合,那么可以使用 ...

  5. 浅析ConcurrentHashMap

    一.导论 这些天一直在看关于多线程和高并发的书籍,也对jdk中的并发措施了解了些许,看到concurrentHashMap的时候感觉知识点很乱,有必要写篇博客整理记录一下. 当资源在多线程下共享时会产 ...

  6. 关于JAVA正则匹配空白字符的问题

    今天遇到一个字符串,怎么匹配空格都不成功!!! 我把空格复制到test.properties文件 显示“\u3000” ,这是什么? 这是全角空格!!! 查了一下    \s    不支持全角 1.& ...

  7. Memcached在windows下的基本使用

    1.Memcached是什么 Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动 ...

  8. visual studio错误中断处理

    点击将错误黏贴到剪贴板,复制到文本文件中.具体错误原因即可查出.

  9. 关于Mongo的一些坑

    和大多数人一样,从Mysql转到Mongo的过程中,思维上经历了很大的转变.下面来说几点我遇到的坑: 1.单文档16M 这个是最多人碰到的,我也碰到过,当然,幸好是因为操作有误,导致这种不正常的大量数 ...

  10. poj 1161 Walls

    https://vjudge.net/problem/POJ-1161 题意:有m个区域,n个小镇,有c个人在这些小镇中,他们要去某一个区域中聚会,从一个区域到另一个区域需要穿墙,问这些人聚到一起最少 ...