精華區beta C_and_CPP 關於我們 聯絡資訊
之前看大家都在寫猜數字啊!還有其他的 今天去玩game掏的王牌十三支 其實還蠻好玩的 所以就想說來寫這程式看看 如果有興趣的可以一起討論 首先 我先把程式分成三個地方 1 洗牌: 按一個key 產生4組各13個數字(1~52) 2 排牌: 輸入13個數字 輸出3組 5 5 3 3 看誰贏: 輸入兩組3個數字 輸出誰贏 寫簡單點 不比花色 我是用 0-12 是黑桃 13-25是紅心 26-38是方塊 39-51是梅花 我先把第一個洗牌寫出來 #include <stdio.h> #include <stdlib.h> #include <time.h> int A[52]; int i; for(i=0;i<52;i++) A[i]=i+1; int j; srand(time(0)); int temp; for (i=0;i<52;i++) { j=rand()%52; temp=A[i]; A[i]=A[j]; A[j]=temp; } for(i=0;i<52;i++) { if(!i%13) printf("\n"); printf("%5d",A[i]); } printf("\n"); 這樣已經把洗牌給寫好了 第二個判斷牌型 1. 同花順(連號 花色一樣) 2. 鐵支(四支一樣) 3. 葫蘆(三張一樣兩張一樣) 4. 同花(比最大數字) 5. 順(連號) 6. 三條(三張一樣兩張不一樣) 7. 2對(兩個 兩個相同) 8. 一對(兩個相同) 9. 烏龍 _______________________________ 第三堆 >第二堆 >第一堆 張數 (5) (5) (3) 剩下的晚點在來寫 有興趣的可以一起討論一起寫 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.168.209.8
drkkimo:好像蠻不錯的 07/21 13:32
> -------------------------------------------------------------------------- < 作者: stonehomelaa (cousin) 看板: C_and_CPP 標題: Re: [心得] 樸克牌13支 時間: Fri Jul 21 17:52:52 2006 ※ 引述《papalun (謎樣人物)》之銘言: : for (i=0;i<52;i++) : { : j=rand()%52; : temp=A[i]; : A[i]=A[j]; : A[j]=temp; : } 本來我也認為打亂陣列是這麼做的 不過之前看了深度學習C++網站上的試讀章節 裡面範例有提到兩種做法 其一是陣列元素由後往前與其前的隨機位置對調 for (i = 52 - 1; i > 0; i--) { j = rand() % (i+1); if(i == j) continue; temp = A[i]; A[i] = A[j]; A[j] = temp; } 另一個是由前往後與剩餘元素對調,但最後一個不須再對調 for (i = 0; i < 52 - 1; i++) { j = rand() % (52-1); if(j == 0) continue; temp = A[i]; A[i] = A[j]; A[j] = temp; } 而書上說原po的做法會造成錯誤的機率分佈 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.130.83.81
drkkimo:說到一個重點了 07/21 18:28