小明交換牌(C語言版)

小明交換牌

//小明和牌:名字 人:左手和右手     牌:花色和數字

// 交換:動詞    動作:把左手牌給右手,把右手的牌給左手

交換前:左手有一張牌、右手有一張牌(抓牌)

C語言中可以把名詞封裝成結構體、動詞封裝成函數


代碼:

#include <stdio.h>


//創建一個牌的結構體

typedef struct Poker{

    //花色和數字

    int color;      //花色

    int number;     //牌的數字

    

}Poker;


//創建一個手的結構體

typedef struct Hands{

    

    //手裏有牌

    Poker poker;

    

    

}Hands;

//創建一個人的類型

typedef struct Person{


    //擁有左手和右手

    Hands leftHand;         //人的左手

    Hands rightHand;        //人的右手

    

    

}Person;


//左手拿牌

//Poker leftHandTakePoker(Poker poker){

//

//    return poker;

//}

//交換牌

void changePoker(Poker* poker1 , Poker* poker2){                                                                                                                                               


    //交換牌

    Poker temp = *poker1;

    *poker1 = *poker2;

    *poker2 = temp;

}


//牌花色的枚舉

enum PokerColor{


    HEI_TAO,

    HONG_TAO,

    MEO_HUA,

    FANG_KUAI

};


//牌數字的枚舉

enum PokerNumber{

    A = 1,

    J = 11,

    Q,

    K

};


//牌的所有花色

char* colors[4] = {"♠︎","♡","♣︎","♢"};

//牌的所有數字

char* numbers[] = {"","A","2","3","4","5","6","7","8","9","10","J","Q","K"};



void showPoker(Poker poker1, Poker poker2){


    printf("左手:%s%s 右手:%s%s\n",colors[poker1.color],numbers[poker1.number], colors[poker2.color],numbers[poker2.number]);

    

}


int main(int argc, const char * argv[]) {


    //創建兩張牌分別是紅桃K和黑桃A

    Poker poker1 = {HONG_TAO,K};        //創建了紅桃K

    Poker poker2 = {HEI_TAO,A};

    

    //創建兩隻手

    Hands leftHand;

    Hands rightHand;

    

    //創建小明

    Person xiaoming;

    //小明有兩隻手

    xiaoming.leftHand = leftHand;

    xiaoming.rightHand = rightHand;

    //用小明的手去抓牌

    xiaoming.leftHand.poker = poker1;

    xiaoming.rightHand.poker = poker2;

    

    printf("======交換前=====\n");

    showPoker(xiaoming.leftHand.poker, xiaoming.rightHand.poker);

    

    //交換小明兩隻手裏的牌

    changePoker(&xiaoming.leftHand.poker, &xiaoming.rightHand.poker);

    

    printf("======交換後======\n");

    showPoker(xiaoming.leftHand.poker, xiaoming.rightHand.poker);

    

    return 0;

}



發佈了24 篇原創文章 · 獲贊 0 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章