(4)画出的数据流图比较适合(A)的算法
5.5下面将给出两个人玩的扑克牌游戏的一种玩法,试设计一个模拟程序,它的基本功能是: (1)发两手牌(利用随机数产生器)。 (2)确定赢者和赢牌的类型。
(3)模拟N次游戏,计算每种类型牌赢或平局的概率。要求用HIPO图描绘设计结果并且画出高层控制流程图。
扑克牌游戏规则如下:
(1)有两个人玩分别为A和B。
(2)一副扑克牌有52张牌,4种花色(黑桃、红桃、梅花、方块),每种花色的牌的点数按升序排列有2,3,4,.........,10,J,Q,K,A等13种。
(3)给每个人发三张牌,牌面向上,赢者立即可以确定。
(4)最高等级的一手牌成为同花,即3张牌均为同一种花色,最大的同花是同一种花色的Q,K,A。 (6)第三等级的牌是同点,即点数相同的三张牌,最大的同点是AAA。 (7)第四等级的牌是对子,即3张牌中有两张点数相同,最大的对子是A,A,K。
(8)第五等级的牌是杂牌,即除去上列4等之外的任何一手牌,最大的杂牌是不同花色的A.K,J。 (9)若两个人的牌类型不同,则等级高者胜;若等级相同,则点数高者胜;若点数也相同,则为平局。 程序:#include \int rabl(int a,int b,int *r) {
int l,k,m,i,p; k=b-a+1; l=2; while(i<=1) { } *r=k;
k=k+k+k+k+k; k=k%m; l=k/4+a;
if(l<=b) {p=l;i=i+1;}
}
return(p);
int max(int T[10][10]) { }
int E1(int T[10][10]) { }
int E2(int T[10][10]) { ||
else
(max(T[10][10])-2)==T[2][0])) // if(q=max(T[][10])) return 1;
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]
if(T[0][1]==T[1][1]&&T[1][1]==T[2][1])
return 1;
int t=0;
if(T[0][0]>T[1][0])
t=T[0][0];
else t=T[1][0];  if(t t=T[2][0];   return t;   else  return 0;    }    return 0;   int E3(int T[10][10])  {     }   int E4(int T[10][10])  {         }   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(\for(int j=0;j if(T[0][0]==T[1][0]&&T[0][0]!=T[2][0])    return 1;   if(T[0][0]==T[1][0]==T[2][0])    return 1;   else return 0;   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;                                                           for(int i=0;i<3;i++)  {      }   if(E1(A[][10])>E1(B[][10])){    }   else if(E1(A[][10]) else if(E1(A[][10])==E1(B[][10])&&E1(B[][10])==1) {       }   else if(E2(A[][10])>E2(B[][10]))  {    e2++;      e1++;   if(max(A[][10])>max(B[][10]))   else    printf(\赢,同花顺\\n\printf(\赢,同花顺\\n\ e1++;   printf(\赢,同花顺\\n\e1++;   printf(\赢,同花顺\\n\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);                                                            }   printf(\赢,顺子\\n\ else if(E2(A[][10]) else if(E2(A[][10])==E2(B[][10])&&E2(B[][10])==1)  {       }   else if(E3(A[][10])>E3(B[][10]))  {    }   else if(E3(A[][10]) else if(E3(A[][10])==E3(B[][10])&&E3(B[][10])==1)  {   e3++;   printf(\赢,同点\\n\e3++;   printf(\赢,同点\\n\e2++;   if(max(A[][10])>max(B[][10]))   else    printf(\赢,顺子\\n\printf(\赢,顺子\\n\ e2++;   printf(\赢,顺子\\n\