第五章作题业

5.5

下面将给出两个人玩的扑克牌游戏的一种玩法,试设计一个模拟程序,它的基本功能是:

(一)(1)发两手牌(利用随机数产生器)。

(二)(2)确定赢者和赢牌的类型。

扑克牌游戏规则如下:

(1)有两个人玩分别为A和B。

(2)一副扑克牌有52张牌,4种花色(黑桃、红桃、梅花、方块),每种花色的牌的点数按升序排列有2,    3,4,.........,10,J,Q,K,A等13种。

(3)给每个人发三张牌,牌面向上,赢者立即可以确定。

(4)最高等级的一手牌成为同花,即3张牌均为同一种花色,最大的同花是同一种花色的Q,K,A。

(5)第二等级的牌称为顺子,即点数连续的3张牌,最大的顺子是花色不同的Q,K,A

(6)第三等级的牌是同点,即点数相同的三张牌,最大的同点是AAA。

(7)第四等级的牌是对子,即3张牌中有两张点数相同,最大的对子是A,A,K。

(8)第五等级的牌是杂牌,即除去上列4等之外的任何一手牌,最大的杂牌是不同花色的A.K,J。

(9)若两个人的牌类型不同,则等级高者胜;若等级相同,则点数高者胜;若点数也相同,则为平局。

程序如下:

#include "stdio.h"

int rabl(int a,int b,int *r)

{

int l,k,m,i,p;

k=b-a+1;

l=2;

while(i<=1)

{

k=k+k+k+k+k;

k=k%m;

l=k/4+a;

if(l<=b)

{

p=l;i=i+1;

}

}

*r=k;

return(p);

}

int max(int T[10][10])

{

int t=0;

if(T[0][0]>T[1][0])

t=T[0][0];

else t=T[1][0];

if(t<T[2][0])

t=T[2][0];

return t;

}

int E1(int T[10][10])

{

if(T[0][1]==T[1][1]&&T[1][1]==T[2][1])

return 1;

else

return 0;

}

int E2(int T[10][10])

{

int q=0;

if(((max(T[10][10])-1)

==T[0][0]||(max(T[10][10])-1)

==T[1][0]||(max(T[10][10])-1)

==T[2][0])&&((max(T[10][10])-2)

==T[0][0]||(max(T[10][10])-2)

==T[1][0]||(max(T[10][10])-2)

==T[2][0]))

if(q=max(T[][10]))

return 1;

else

return 0;

}

int E3(int T[10][10])

{

if(T[0][0]==T[1][0]==T[2][0])

return 1;

else

return 0;

}

int E4(int T[10][10])

{

if(T[0][0]==T[1][0]&&T[0][0]!=T[2][0])

return 1;

else if(T[0][0]==T[2][0]&&T[0][0]!=T[1][0])

return 1;

else if(T[1][0]==T[2][0]&&T[1][0]!=T[0][0])

return 1;

else

return 0;

}

void main()

{

int times=0,e1=0,e2=0,e3=0,e4=0,e5=0;

int A[10][10],B[10][10];

int r1=2,r2=3;

printf("请输入游戏的次数\n");

scanf("%d",×);

for(int j=0;j<times;j++)

{

for(int i=0;i<3;i++)

{

A[i][0]=rabl(1,13,&r1);

A[i][1]=rabl(14,17,&r2);

B[i][0]=rabl(1,13,&r1);

B[i][1]=rabl(14,17,&r2);

}

if(E1(A[][10])>E1(B[][10]))

{

e1++;

printf("A赢,同花顺\n");

}

else if(E1(A[][10])<E1(B[][10]))

{

e1++;

printf("B赢,同花顺\n");

}

else if(E1(A[][10])==E1(B[][10])&&E1(B[][10])==1)

{

e1++;

if(max(A[][10])>max(B[][10]))

printf("A赢,同花顺\n");

else

printf("B赢,同花顺\n");

}

else if(E2(A[][10])>E2(B[][10]))

{

e2++;

printf("A赢,顺子\n");

}

else if(E2(A[][10])<E2(B[][10]))

{

e2++;

printf("B赢,顺子\n");

}

else if(E2(A[][10])==E2(B[][10])&&E2(B[][10])==1)

{

e2++;

if(max(A[][10])>max(B[][10]))

printf("A赢,顺子\n");

else

printf("B赢,顺子\n");    }

else if(E3(A[][10])>E3(B[][10]))

{

e3++;

printf("A赢,同点\n");

}

else if(E3(A[][10])<E3(B[][10]))

{

e3++;

printf("B赢,同点\n");

}

else if(E3(A[][10])==E3(B[][10])&&E3(B[][10])==1)

{

e3++;

if(max(A[][10])>max(B[][10]))

printf("A赢,同点\n");

else

printf("B赢,同点\n");

}

else if(E4(A[][10])>E4(B[][10]))

{

e4++;

printf("A赢,对子\n");

}

else if(E4(A[][10])>E4(B[][10]))

{

e4++;

printf("B赢,对子\n");

}

else if(E4(A[][10])==E4(B[][10])&&E4(B[][10])==1)

{

e4++;

if(max(A[][10])>max(B[][10]))

printf("A赢,对子\n");

else

printf("B赢,对子\n");

}

else

{

if(max(A[][10])>max(B[][10]))

printf("A赢,杂牌\n");

else

printf("B赢,杂牌\n");

}

}

printf("同花顺赢牌概率为%d\n,

顺子赢牌概率  为%d\n,

同点赢牌概率  为%d\n,

对子赢牌概率  为%d\n,

杂牌赢牌概率  为%d\n"

,e1/times,e2/times,e3/times,e4/times,e5/times);

}

时间: 2024-12-10 19:18:50

第五章作题业的相关文章

java学习之第五章编程题示例(初学篇)

1 /* 2 Animal.java 3 */ 4 package animal; 5 6 public abstract class Animal { 7 public abstract void cry(); 8 public abstract String getanimalName(); 9 } 1 //Dog.java 2 package animal; 3 4 public class Dog extends Animal 5 { 6 7 String aa="旺旺"; 8

第五章课后题

1.团队模式和团队的开发模式有什么关系?答: 首先来解释一下这两个名词: 我查资料了解了一下,团队模式,更偏向于多人合作的那种,而且我理解的"团队"会是一种多人合作的情况下,长期磨合后的一个组织,他们是相互了解的,是拥有巨大的默契存在的. 对于团队的开发模式我并没有查到具体的解释,但对于开发模式,是有查到几种开发模式,比如瀑布开发模式.快速应用开发模式等等,我们在其他的课上有学过这些模式,所以我在这里认为开发模式是更偏向于后边的"模式"两个字的,更注重方法,用什么方

第五章 实验题

1 身高预测 每个父母都关心自己孩子成人后的身高,据有关生理卫生知识与数理统计分析表明,影响孩子成人后身高的因素包括遗传.饮食习惯和体育锻炼等.小孩成人后的身高与其父母的身高和自身的性别密切相关. 设faHeight为父亲的身高,moHeight为母亲的身高,身高预测公式为: 男性成人时的身高=(faHeight+moHeight)*0.54cm 女性成人时的身高=(faHeight*0.932+moHeight)/2cm 此外,若喜爱体育锻炼,则可增加身高2%:若有良好的卫生饮食习惯,则可增加

第五章函数

第五章 函数 5.1 函数的本质及应用场景 截至目前:面向过程编程(可读性差/可重用性差) 对于函数编程: 本质:将N行代码拿到别处并给他起一个名字,以后通过名字就可以找到这段代码并执行 应用场景: 代码重复执行 代码特别多超过一屏,可以选择通过函数进行代码的分割 # 面向过程编程 user_input = input('请输入角色:') if user_input == '管理员': import smtplib from email.mime.text import MIMEText fro

第五章 电子星球

                   第五章         电子星球   山高高兮.路长长,岁月悠悠兮.转眼空.   镇楼竹: 1. 秀竹一枝自宛然, 莫愁风雨损华年. 几番颠扑呈贞骨, 露重霜寒节更坚. 2. 纤纤凤竹长漓边, 不共山花斗野妍. 时对清流摇倩影, 溪流常伴乐怡然. 3. 坚节何愁风雨多, 晴天朗日更婆娑. 生凉不荫趋炎客, 惹得骚人为咏歌.   咏经典物理.戏现代理论物理: 在山泉水洁如冰, 溅玉飞珠迸有声. 流入大江清浊混, 滔滔何日见澄明.     一.   批驳现代理论

第十五章 文件属性类的实现

                  第十五章    文件属性类的实现        根用户的权限也不能是无限大.必须考虑到保护用户的隐私!用户的文件内容.程序代码可设置为根用户也不能观看,只能是文件拥有者可以查看.修改.但根用户可以删除一切非根用户的文件.也可以查看用户的目录.所以,i_mode字符更改如下:      BU16 i_mode; // 描述文件的访问权限:文件的读.写.执行权限  // i_mode.15-13  ftype; 文件类型: 0-符号软连接文件, // 1-硬连接文

《Python核心编程》 第五章 数字 - 课后习题

课后习题  5-1 整形. 讲讲 Python 普通整型和长整型的区别. 答:普通整型是绝大多数现代系统都能识别的. Python的长整型类型能表达的数值仅仅与你机器支持的(虚拟)内存大小有关. 5-2 运算符 (a) 写一个函数,计算并返回两个数的乘积 (b) 写一段代码调用这个函数,并显示它的结果 答: def pro(a,b): p = a*b return p a = int(raw_input("a=")) b = int(raw_input("b="))

第五章 循环和关系表达式

第五章  循环和关系表达式 5.1  for循环 5.1.1  for循环的使用 For循环的组成部分完成下面4个步骤: 1)        设置初始值: 2)        执行测试,看看循环是否应当继续运行: 3)        执行循环体: 4)        更新用于测试的值. For循环的形式如下: for (init-expresstion; test-expresstion; update-expresstion) body-statement 说明: 1)        C++将

JavaScript DOM编程艺术-学习笔记(第五章、第六章)

第五章: 1.题外话:首先大声疾呼,"js无罪",有罪的是滥用js的那些人.js的father 布兰登-艾克,当初为了应付工作,10天就赶出了这个js,事后还说人家js是c语言和self语言"约"的产物,(百度百科说的,这些).....一个可怜的孩子-js.然后命运弄"人",js此时已世人皆知.可能是因为js的毁誉参半,它老爸才不想承认它吧.如果js会说话,它可能会给它布兰登-艾克说,"你当初怎么不把*******在墙上".这