第五章作題業

來源:互聯網
上載者:User

標籤:

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);

 }

 

第五章作題業

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.