C++游戏编程:卡牌游戏

CardGame

一段时间一直喜欢玩欢乐斗地主~~本来打算做出一个“跑得快”(有的地方叫争上游),技术有点欠缺,于是做出了一个类似打牌的卡牌游戏。
玩家将与两个电脑玩家进行游戏,一副牌总共有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<

界面如下:
C++游戏编程:卡牌游戏_第1张图片
C++游戏编程:卡牌游戏_第2张图片
C++游戏编程:卡牌游戏_第3张图片

你可能感兴趣的:(游戏编程)