一段时间一直喜欢玩欢乐斗地主~~本来打算做出一个“跑得快”(有的地方叫争上游),技术有点欠缺,于是做出了一个类似打牌的卡牌游戏。
玩家将与两个电脑玩家进行游戏,一副牌总共有54张,洗牌后分为3叠,玩家随机得到一叠以开始。
每次只能出一张牌,牌的点数必须比上家的牌的点数大,无牌出则输入 0 以PASS。率先清空牌库的玩家获胜。
所谓的54张牌其实就是类似扑克牌的54个数字,当然出牌的形式就是输入自己“牌库”里的一个数字。
int c[] = {1,2,3,4,5,6,7,8,9,10,11,12,13,1,2,3,4,5,6,7,8,9,10,11,12,13,1,2,3,4,5,6,7,8,9,10,11,12,13,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}; //一副牌
源代码先给出:
#include
#include
#include
#include
using namespace std;
int c[] = {1,2,3,4,5,6,7,8,9,10,11,12,13,1,2,3,4,5,6,7,8,9,10,11,12,13,1,2,3,4,5,6,7,8,9,10,11,12,13,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}; //一副完整的牌
int player1[18];
int player2[18];
int player3[18]; //将牌分为三份
//游戏规则
void Instructions(){
char s;
cout<<"欢迎来到卡牌接龙游戏!"<>s;
if(s == 'y'){
cout<0){
for(int i = 53; i > 0; i--){
srand(unsigned(time(NULL)));
int currentRandom = rand() % i;
swap(c[i],c[currentRandom]);
}
a--;
}
//发牌, 分为三份
for(int i = 0;i < 18;i++){
player1[i] = c[i];
}
for(int i = 18;i < 36;i++){
player2[i-18] = c[i];
}
for(int i = 36;i < 54;i++){
player3[i-36] = c[i];
}
}
//二分搜索算法,为了找到要出的牌在牌库中的位置
int Binary_Search(int *a, int start, int end, int key){
int mid;
while(start <= end){
mid = (start + end) / 2;
if(a[mid] < key){
start = mid + 1;
}
else if (a[mid] > key){
end = mid - 1;
}
else{
return mid;
}
}
return -1;
}
//快速排序算法,用于排自己的手牌
void QuickSort(int *a, int left, int right){
if(left >= right){
return ;
}
int i = left;
int j = right;
int key = a[left];
while(i < j){
while(i < j && key <= a[j]){
j--;
}
a[i] = a[j];
while(i < j && key >= a[i]){
i++;
}
a[j] = a[i];
}
a[i] = key;
QuickSort(a,left,i-1);
QuickSort(a,i+1,right);
}
//出牌函数,出掉的牌 牌库中变为 0
void Play(int p,int *player,int round){
if(round == 1){
cout<<"你出牌 "< 0){
S_current = player[i];
Play(i,player,pc);
return S_current;
}
}
}
else{
for(i = 0;i < 18;i++){
if(player[i] > current){
S_current = player[i];
Play(i,player,pc);
return S_current;
}
}
}
if(pc == 0){
cout<<"电脑玩家1PASS"<>H_current;
if(H_current == 0){
cout<<"我PASS"<>H_current;
}
else{
cout<<"你无法出此牌!"<>H_current;
}
}
}
//判断输赢
bool Win(int *player){
int s = 0;
for(int i = 0;i < 18;i++){
s += player[i];
}
if(s == 0)
return true;
else
return false;
}
//宣布结果
void Result(bool S1,bool S2,bool H){
if(S1){
cout<