sdutoj 1101 Bridge Hands (桥牌)
题目链接: 1101 Bridge Hands (桥牌)
/*
*【题目描述】
* 四个人玩桥牌游戏,有52张扑克牌。
* 四个玩家分别是按照方位来起名字的,即N、E、S、W
* 摸牌顺序是顺时针
* 牌有四个花色,级别有小到大分别是:梅花(CLUBS)<方块(DIAMONDS)<黑桃(SPADES)<红桃(HEARTS)
* 还有每张牌有一个点数,分别是:2、3、4、5、6、7、8、9、T、J、Q、K、A
* 题目的意思是,给你一个摸牌的顺序,等四人摸完牌,让你按照花色和点数排序,然后输出结果。
*
*【题目的输入】
* 题目有多组数据的,输入有三行,第一行是一个字符,代表一个玩家的名字,
* 让这个玩家的下家开始摸牌,然后依次按顺时针的顺序摸牌。
* 第二行和第三行是扑克牌的初始顺序,每张牌是由2个字符组成,第一个字符是花色,第二个是点数
* 当输入#时全程序结束。
*
*【题目的输出】
* 让你按S、W、N、E的玩家顺序,输出每个玩家手中的排好顺序的牌。
*
*【思路】
* 就是一道模拟题,按部就班的做就行了。
* 1、判断出摸牌顺序;
* 2、排序是花色优先,点数是次要的。
* 那么就把花色的数值设置为梅花20、方块40、黑桃60、红桃80
* 点数按本身的数值算2就是2,3就是3,T就是10,J就是11等等
* 3、输出
*
*/#include <stdio.h>
#include <string.h>#define ZIFU 53
#define SIZE 27
#define BIAOJI 14int main()
{char player; //这人玩家的下家第一个抓牌char ch; //扑克牌char S[SIZE]; //南方玩家扑克牌序列int sFlag[2][BIAOJI]; //标记数组,下面同理char W[SIZE];int wFlag[2][BIAOJI];char N[SIZE];int nFlag[2][BIAOJI];char E[SIZE];int eFlag[2][BIAOJI];int i, j, k, l, m, n;while (scanf("%c", &player)){scanf("%*c"); //吸收回车if (player == '#') //程序结束{break;}memset(eFlag, 0, sizeof(eFlag)); //初始化memset(sFlag, 0, sizeof(sFlag));memset(wFlag, 0, sizeof(wFlag));memset(nFlag, 0, sizeof(nFlag));switch (player) //判断摸牌顺序{case 'N':nFlag[0][0] = 0;eFlag[0][0] = 1;sFlag[0][0] = 2;wFlag[0][0] = 3;break;case 'E':nFlag[0][0] = 3;eFlag[0][0] = 0;sFlag[0][0] = 1;wFlag[0][0] = 2;break;case 'S':nFlag[0][0] = 2;eFlag[0][0] = 3;sFlag[0][0] = 0;wFlag[0][0] = 1;break;case 'W':nFlag[0][0] = 1;eFlag[0][0] = 2;sFlag[0][0] = 3;wFlag[0][0] = 0;break;default : break;}j = k = l = m = 1; //初始化for (i=1; i<ZIFU*2-1; i++) //输入扑克牌{scanf("%c", &ch);if (i == 52){scanf("%*c"); //吸收第一行结束时的回车}switch (i%8) //四个人每摸完一次,共8个字符{case 1:if (eFlag[0][0] == 1){E[j++] = ch;}else if (sFlag[0][0] == 1){S[k++] = ch;}else if (wFlag[0][0] == 1){W[l++] = ch;}else{N[m++] = ch;}break;case 2:if (eFlag[0][0] == 1){E[j++] = ch;}else if (sFlag[0][0] == 1){S[k++] = ch;}else if (wFlag[0][0] == 1)
sdutoj 1101 Bridge Hands (桥牌)相关推荐
- Bridge Champ:Jelurida实践PlaytoOwn的Web 3社交游戏
Play-to-Own 为什么能引领Web3游戏 Web 3游戏将进入"Play-to-Own"的游戏新时代.解锁游戏中的经济活动将极大地扩大游戏产业的TAM,并加速价值创造. 以 ...
- Ardor公链生态与Jelurida产业区块链布局
Ardor公链 Ardor公链(ARDR)基于NXT公链,并于2018年1月1日推出了多链架构,旨在克服单链本质上的局限性.根据Ardor平台的白皮书,其主要目标是: 解决最终用户必须拥有作为手续费( ...
- 个人简历常用到的英语
个人简历常用到的英语 <一>; 个人品质 able 有才干的,能干的 adaptable 适应性强的 active 主动的,活跃的 aggressive 有进取心的 ambitiou ...
- 个人简历常用英语词汇
个人品质 able 有才干的,能干的 adaptable 适应性强的 active 主动的,活跃的 aggressive 有进取心的 ambitious 有雄心壮志的 amiable 和蔼可亲的 am ...
- 超越过去三年冠军,AAMAS2019 桥牌游戏论文揭秘
雷锋网 AI 科技评论按,近年来,AI 在博弈游戏中的研究成为研究者们关注的热点之一.2017 年,AlphaGo 成功击败人类最高围棋水平的代表柯洁,一度占据各大媒体的头条.之后,AlphaGo 不 ...
- [导入]第11届世界计算机桥牌软件锦标赛
新浪体育讯 10月4日,正在上海进行的2007年世界桥牌锦标赛上,第11届世界计算机桥牌锦标赛拉开帷幕.共八支队伍参赛. 比赛并不是参赛选手通过计算机对抗,而是计算机之间直接的较量,确切地说,是不同桥 ...
- 用c写的桥牌发牌代码
最近学桥牌,据说要经常自己做叫牌练习.为了偷懒不用发牌,随便写了一段发牌的程序. 我用的是cygwin.如果是别的系统,产生随机数洗牌那里要改,其它的都不用动. 大致思路是: 用整数51~0代表52张 ...
- route和bridge是什么意思_port link-mode bridge是什么意思
展开全部 工作在二层模式. bridge 英[brɪdʒ] 美[brɪdʒ] n 桥: 起联系作用的事物e68a8462616964757a686964616f31333433656131 ...
- django批量修改table_Django修改桥表(Django modify bridge table)
Django修改桥表(Django modify bridge table) 我的django应用程序中有两个模型,事件/用户,它们具有多对多的关系. 活动可以有很多与会者(用户). 用户可以参加很多 ...
最新文章
- 在 Ubuntu 配置 PPTP Server
- 两个下拉框相关联ajax,触发第二个下拉框以显示基于从第一个下拉框中选择的值的值ajax...
- [Hadoop][笔记]4个节点搭建Hadoop2.x HA测试集群
- [BZOJ2707]走迷宫
- java文本库,自定义文本库
- 韩国政府计划从Windows 7迁移到Linux
- java oca_OCA的Java拼图游戏第3部分
- c语言数据类型_C语言基础数据类型
- php 获取数组第一个元素的几种方法
- SPSS心理学量表总体或分维度用总分还是均分表示?【SPSS 061期】
- 《信号检测与估值理论》Matlab仿真,包括: 高斯-牛顿迭代法对正弦信号参数进行估计
- python利用经纬度画地图_使用Python实现画一个中国地图
- 354. 俄罗斯套娃信封问题--(每日一难phase2--day9)
- ISO9001、ISO14001和ISO45001体系审核时需要准备哪些资料?
- 【CCNA题库】Ti CCNA640-802V30版题库
- 安装win10专业版步骤
- matlab去除图片水印_一种基于MATLAB去图片水印方法
- switch怎么用字符c语言,switch怎么用c语言-switch用c语言讲解
- CocosCreator 子弹运动轨迹的绘制
- CSP 201809 第二题 买菜