[問題] C語言的21點遊戲

看板C_and_CPP作者 (Hedy)時間13年前 (2011/03/28 00:30), 編輯推噓4(406)
留言10則, 5人參與, 最新討論串1/1
問題(Question):要設計一個21點的遊戲,是要從一副撲克牌中亂數發牌, 並印出數字和花色,但是我現在寫出來的程式只能印出數字, 我不知道要怎麼樣可以亂數完後並印出花色,只知道撲克牌 的四種花色的ASCII代碼分別是3,4,5,6,但不會將它寫進程式 程式碼(Code):(請善用置底文網頁, 記得排版) #include <stdio.h> #include <time.h> #define DEAL fair_deal int fair_deal(); //用隨機亂數取得一張介於1~13之間的牌 int getCardPoint(int card); //傳回一張牌所代表的點數 char getCardName(int card); //傳入一張牌並回報他的名稱 int main() { int card[5]; //玩家的牌 int computer_card[5]; //電腦的牌 int point; //玩家的點數 int cpoint; //電腦的點數 computer_card[0] = DEAL(); cpoint = getCardPoint(computer_card[0]); printf("莊家收到一張底牌\n"); computer_card[1] = DEAL(); cpoint = cpoint + getCardPoint(computer_card[1]); printf("莊家收到一張明牌:%c\n",getCardName(computer_card[1])); card[0] = DEAL(); point = getCardPoint(card[0]); printf("您收到一張底牌:%c目前總點數為%d\n",getCardName(card[0]),point); card[1] = DEAL(); point = point + getCardPoint(card[1]); printf("您收到一張牌:%c目前總點數為%d\n",getCardName(card[1]),point); } int fair_deal() { return rand()%13+1; } char getCardName(int card) { switch(card) { case 1: return 'A'; case 10: return 'T'; //10號牌由於占兩個字元, 故用T表示 case 11: return 'J'; case 12: return 'Q'; case 13: return 'K'; default: return card+'0'; } } int getCardPoint(int card) //傳回一張牌所代表的點數 { switch(card) { case 1: return 11; case 11: return 10; case 12: return 10; case 13: return 10; default: return card; } } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.114.192.110

03/28 00:32, , 1F
就直接印"紅心A"三個大字阿XD
03/28 00:32, 1F

03/28 00:34, , 2F
你可以參考HOW TO C裡面的範例 http://ppt.cc/1LzN
03/28 00:34, 2F

03/28 00:35, , 3F
程式出現這麼多魔法數字不太好, 建議改成enumeration
03/28 00:35, 3F

03/28 00:36, , 4F
ASCII Code 0x3 0x4 0x5 0x6
03/28 00:36, 4F

03/28 00:39, , 5F
沒看到原PO已經知道3456 "\3\4\5\6"
03/28 00:39, 5F

03/28 02:32, , 6F
巨集符號這樣定...一整個感覺很危險, 對巨集不熟 XD
03/28 02:32, 6F

03/28 02:40, , 7F
學微軟的啊,不過微軟是要做條件編譯
03/28 02:40, 7F

03/28 02:40, , 8F
#ifdef UNICODE 則 MessageBox 變成 MessageBoxW
03/28 02:40, 8F

03/28 02:43, , 9F
我只用過 #if !defined(DEBUG) #define DebugCode()
03/28 02:43, 9F

03/30 01:36, , 10F
直接把他當整數用就好了阿
03/30 01:36, 10F
文章代碼(AID): #1DZsOLv6 (C_and_CPP)