/*
*Copyright(c) 2015/5/16 CSDN博客
*All rights reserved.
*文件名称:main.c
*作 者:金叶
*完成日期:2015/5/16
*版本号:V2.0
*问题描述:双人黑JACK(21点)纸牌游戏
*/
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
void riffle(int card[]); //洗牌
//void Send_cards(int card[]); //发牌
int main()
{
int card[52]={102,103,104,105,106,107,108,109,110,111,112,113,114,202,203,204,205,206,207,208,209,210,211,212,213,214
,302,303,304,305,306,307,308,309,310,311,312,313,314,402,403,404,405,406,407,408,409,410,411,412,413,414,};
int *p;
p=card;
printf("洗牌测试\n");
riffle (p);
//Send_cards (p);
return 0;
}
void riffle(int card[])
{
int a,i,t;
srand(time(0));
for (i=0;i<52;i++){
int choose;
choose=card[i]/100;
if (i%10==0){
printf("\n");
}
switch (choose){
case 1:
if (card[i]%100==14){
printf("HA\t");
break;
}
else if (card[i]%100==13){
printf("HK\t");
break;
}
else if (card[i]%100==12){
printf("HQ\t");
break;
}
else if (card[i]%100==11){
printf("HJ\t");
break;
}
else{
printf("H%d\t",card[i]%100);
break;
}
case 2:
if (card[i]%100==14){
printf("SA\t");
break;
}
else if (card[i]%100==13){
printf("SK\t");
break;
}
else if (card[i]%100==12){
printf("SQ\t");
break;
}
else if (card[i]%100==11){
printf("SJ\t");
break;
}
else{
printf("S%d\t",card[i]%100);
break;
}
case 3:
if (card[i]%100==14){
printf("DA\t");
break;
}
else if (card[i]%100==13){
printf("DK\t");
break;
}
else if (card[i]%100==12){
printf("DQ\t");
break;
}
else if (card[i]%100==11){
printf("DJ\t");
break;
}
else{
printf("D%d\t",card[i]%100);
break;
}
case 4:
if (card[i]%100==14){
printf("CA\t");
break;
}
else if (card[i]%100==13){
printf("CK\t");
break;
}
else if (card[i]%100==12){
printf("CQ\t");
break;
}
else if (card[i]%100==11){
printf("CJ\t");
break;
}
else{
printf("C%d\t",card[i]%100);
break;
} //测试用程序
}
}
printf("\n\n");
printf("上面是正常牌序,后面是洗牌后的牌序\n");
for (i=0;i<52;i++){
a=rand()%52;
t=card[i];
card[i]=card[a];
card[a]=t;
}
for (i=0;i<52;i++){
int choose;
choose=card[i]/100;
if (i%10==0){
printf("\n");
}
switch (choose){
case 1:
if (card[i]%100==14){
printf("HA\t");
break;
}
else if (card[i]%100==13){
printf("HK\t");
break;
}
else if (card[i]%100==12){
printf("HQ\t");
break;
}
else if (card[i]%100==11){
printf("HJ\t");
break;
}
else{
printf("H%d\t",card[i]%100);
break;
}
case 2:
if (card[i]%100==14){
printf("SA\t");
break;
}
else if (card[i]%100==13){
printf("SK\t");
break;
}
else if (card[i]%100==12){
printf("SQ\t");
break;
}
else if (card[i]%100==11){
printf("SJ\t");
break;
}
else{
printf("S%d\t",card[i]%100);
break;
}
case 3:
if (card[i]%100==14){
printf("DA\t");
break;
}
else if (card[i]%100==13){
printf("DK\t");
break;
}
else if (card[i]%100==12){
printf("DQ\t");
break;
}
else if (card[i]%100==11){
printf("DJ\t");
break;
}
else{
printf("D%d\t",card[i]%100);
break;
}
case 4:
if (card[i]%100==14){
printf("CA\t");
break;
}
else if (card[i]%100==13){
printf("CK\t");
break;
}
else if (card[i]%100==12){
printf("CQ\t");
break;
}
else if (card[i]%100==11){
printf("CJ\t");
break;
}
else{
printf("C%d\t",card[i]%100);
break;
} //测试用程序
}
}
printf("\n\n");
}
void Send_cards(int card[])
{
static int i=0;
int j;
printf("游戏开始:\n");
printf("玩家拿牌:");
for (j=0;j<2;j++){
printf("%d\t",card[i]);
i++;
}
printf("\n");
printf("对家拿牌:");
for (j=0;j<2;j++){
printf("%d\t",card[i]);
i++;
}
}
目前先做到随机洗牌 后面做发牌,要牌,对比,计分。
未完待续。。。。。。