[C++] 考前不負責猜題-發牌程式
#include <iostream>
#include <iomanip>
#include <ctime>
#define swap(x,y) {int t=x;x=y;y=t;}//定義交換的函式
using namespace std;
void shuffle(int [], int); //改成用教授上課說的方式
int main()
{
srand(time(NULL));
const int MAX = 52; //設定最大值(陣列個數)
int poker[MAX];
char sign;
for(int i=0;i<MAX;i++)
poker[i] = i+1;//把牌排好
shuffle(poker,MAX);
cout << "player1\tplayer2\tplayer3\tplayer4\n"
<< "-------\t-------\t-------\t-------\n";
for(int i=0;i<MAX;i++)//輸出牌
{
sign = poker[i]%4 + 3;//請看ASCii的3~6號
cout << setw(2) << sign << setw(3) << poker[i]%13+1 << "\t";
if((i+1)%4==0)
cout << endl;
}
system("pause");
return 0;
}
void shuffle(int poker_in[], const int MAX)//洗牌函式
{
int change1,change2,temp;
for(int i=0;i<10000;i++)
{
change1 = rand()%MAX;
change2 = rand()%MAX;
//如果用了最前面定義的那個swap()就可省下下面這三行
temp = poker_in[change2];
poker_in[change2] = poker_in[change1];
poker_in[change1] = temp; //亂數交換牌換一萬次總該乾淨了吧
//用法就是以下這樣
//swap(poker_in[change1],poker_in[change2]);
//這樣就可以交換兩數了
//其實用template就可以寫出甚麼形態都可以交換的函式
}
}
看看就好...
因為這程式用的東西都在考試範圍裡ˊˋ
想說陣列和函式的應用(8-3)老師堅持會考...
這隻程式難度比樂透低 應該不難了解@@
祝大家考試順利!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.7.59
推
11/18 14:33, , 1F
11/18 14:33, 1F
→
11/18 14:34, , 2F
11/18 14:34, 2F
※ 編輯: sb0917 來自: 125.232.115.72 (11/18 21:21)
推
11/19 07:33, , 3F
11/19 07:33, 3F
→
11/19 15:29, , 4F
11/19 15:29, 4F
推
11/19 16:55, , 5F
11/19 16:55, 5F
推
11/19 17:47, , 6F
11/19 17:47, 6F
→
11/19 18:52, , 7F
11/19 18:52, 7F
→
11/19 18:52, , 8F
11/19 18:52, 8F
→
11/19 19:57, , 9F
11/19 19:57, 9F
※ 編輯: sb0917 來自: 140.112.7.59 (11/19 19:59)