生活随笔
收集整理的這篇文章主要介紹了
游戏算法-洗扑克牌
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
游戲算法-洗撲克牌
撲克牌洗牌算法中關(guān)鍵點(diǎn):隨機(jī)值的算法及撲克牌的設(shè)計。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>#define CARD_NUM 52
typedef struct _card_tag
{char m_card_num;char m_suit; // 3:heart 4:club 5:diomand 6:spade
} card_t;card_t arrCards[CARD_NUM];void PrintCard(card_t arrCard[])
{int i = 0;for (i = 0; i < CARD_NUM; i++){if ((i != 0) && (i % 13 == 0)){printf("\n\n");}printf("%d%c ", arrCard[i].m_suit, arrCard[i].m_card_num);}printf("\n\n");
}void Shuffle(card_t arrCard[])
{int i = 0;int nTmp = 0;char nSuit = 3;char chCard = 0; for (i = 0; i < CARD_NUM; i++){if ((i != 0) && (i % 13 == 0)){nSuit++;}nTmp = i % 13;switch(nTmp){case 0:arrCard[i].m_card_num = 'A';break;case 9:arrCard[i].m_card_num = '0';break;case 10:arrCard[i].m_card_num = 'J';break;case 11:arrCard[i].m_card_num = 'Q';break;case 12:arrCard[i].m_card_num = 'K';break;default:arrCard[i].m_card_num = '1' + nTmp;break;}arrCard[i].m_suit = nSuit;}PrintCard(arrCard);srand(time(NULL));for (i = 0; i < CARD_NUM; i++){nTmp = rand() % 52;chCard = arrCard[nTmp].m_card_num;nSuit = arrCard[nTmp].m_suit;arrCard[nTmp].m_card_num = arrCard[i].m_card_num;arrCard[nTmp].m_suit = arrCard[i].m_suit;arrCard[i].m_card_num = chCard;arrCard[i].m_suit = nSuit;}PrintCard(arrCard);
}int main()
{int n = 0;Shuffle(arrCards);scanf("%d", n);return 0;
}
總結(jié)
以上是生活随笔為你收集整理的游戏算法-洗扑克牌的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。