1. 程式人生 > >模擬洗牌遊戲

模擬洗牌遊戲

洗牌發牌

解釋在這裡插入圖片描述在這裡插入圖片描述

在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述

我的小程式碼

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void Shuffle(int A[][13]);
void Deal(int A[][13]);
void Print(int a,int b,int c);
int main()
{
    srand(time(NULL));
    int A[4][13]={0};
    Shuffle(A);
    Deal(A);
    return 0;
}
void Shuffle(int A[][13])
{
    int r,c;

    for(int i=1;i<=52;)
    {
        r=rand()%4;
        c=rand()%13;
        if(A[r][c]==0)
        {
            A[r][c]=i;
            i++;
        }
    }
}

void Deal(int A[][13])
{
   int find=0;
   for(int card=1;card<=52;)
   {

       for (int i = 0; i < 4; i++)
       {
           for (int j = 0; j < 13; j++)
           {
               if(A[i][j]==card)
               {

                   Print(card,i,j);
                   card++;
               }
           }

       }
   }
}
void Print(int a,int b,int c)
{
    printf("the %d is ",a);
    if(b==0) printf("hongtao ");
    if(b==1) printf("heitao ");
    if(b==2) printf("meihua ");
    if(b==3) printf("fangpian ");
    printf("%d\n",c+1);
}

心得

1.可以把card++;i++;放在if語句中
2.按照card的順序歷遍二維陣列來找到那個值