扑克牌游戏比大小用C++编程,自动生成一副扑克牌,并可以洗牌.然后人和电脑分别交替抓牌,抓过的牌按后来居上依次放置.首先双方从各自牌的下面取出一张牌,进行比大小,大的为胜.依此比完
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/25 00:36:32
扑克牌游戏比大小用C++编程,自动生成一副扑克牌,并可以洗牌.然后人和电脑分别交替抓牌,抓过的牌按后来居上依次放置.首先双方从各自牌的下面取出一张牌,进行比大小,大的为胜.依此比完
扑克牌游戏比大小用C++编程,
自动生成一副扑克牌,并可以洗牌.然后人和电脑分别交替抓牌,抓过的牌按后来居上依次放置.首先双方从各自牌的下面取出一张牌,进行比大小,大的为胜.依此比完后,统计人和电脑的胜利的次数,最后宣布比赛结果.要求电脑能够说出一些调侃的话.界面美观,形象.
扑克牌游戏比大小用C++编程,自动生成一副扑克牌,并可以洗牌.然后人和电脑分别交替抓牌,抓过的牌按后来居上依次放置.首先双方从各自牌的下面取出一张牌,进行比大小,大的为胜.依此比完
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<windows.h>
using namespace std;
int sum = 0;
int pc_win = 0;
int man_win = 0;
void swap(int a[],int m,int n,char s[] ){ //交换两个牌(用于洗牌)
int c = a[m];
a[m] = a[n];
a[n]= c;
char d = s[m];
s[m] = s[n];
s[n]= d;
}
void xipai(int a[],int n,char s[]){ //洗牌
int i =1,j = 1;
for(i = 0;i < n;i ++){
do{
j = rand()%52;
}while( j == i);
swap(a,i,j,s);
}
}
void fapai(int a[],int b[],int c[],char s[],char ps[],char ms[]){ //发牌
int i = 0,m = 25,n = 25;
for(i = 0;i < 52;i++){
if(i % 2) {
b[m] = a[i];
ps[m--] = s[i];
}
else {
ms[n] = s[i];
c[n--] = a[i];
}
}
}
void play(int b[],int c[],char* m[],char ps[],char ms[]){//游戏开始
int a1 = 0 ,a2 = 0;
int i = 0;
for( ;i < 26;i++){
if(b[i] == c[i])
cout<<"电脑出的牌是"<<ps[i] <<m[b[i]]<<", \t你出的牌是"<<ms[i]<<m[c[i]]<<endl;
else if(b[i] > c[i]){
a1++;
cout<<"电脑出的牌是"<<ps[i] <<m[b[i]]<<", \t你出的牌是"<<ms[i]<<m[c[i]]<<endl;
}else{
a2++;
cout<<"电脑出的牌是"<<ps[i] <<m[b[i]]<<", \t你出的牌是"<<ms[i]<<m[c[i]]<<endl;
}
Sleep(300);
}
sum ++;
if (a1 == a2)
cout<<"\n\n平局了"<<endl;
if (a1 > a2){
pc_win ++;
cout<<"\n\n可惜你输了"<<endl;
}
if(a1 < a2){
man_win ++;
cout<<"\n\n恭喜你赢了"<<endl;
}
}
void show(int a[],char* m[],char ms[]){
int i = 0;
cout<<"你有的牌和顺序是:"<<endl;
for (i = 0;i < 26; i++)
cout <<ms[i]<<m[a[i]]<<' ';
cout<<endl;
}
void showscore (){
if(sum == 0){
cout<<"还没比呢,着什么急啊"<<endl;
return;
}
printf("现在的大比分是:%d:%d",man_win,pc_win);
if(man_win > pc_win)
cout<<"你领先呢,恭喜"<<endl;
else if(man_win < pc_win)
cout<<"你落后呢,加油"<<endl;
else if(man_win == pc_win)
cout<<"战局很焦灼,再接再厉"<<endl;
}
void start(int a[],int b[],int c[],char* m[],char s[],char ps[],char ms[]){
char i = 0;
srand((unsigned int)time(0));
cout<<"欢迎来到比大小游戏中,请选择:\n1、开始游戏 2、显示比分 3、退出游戏 "<<endl;
while(i = getch()){
switch(i){
case '1':
xipai(a,52,s);
fapai(a,b,c,s,ps,ms);
show(c,m,ms);
play(b,c,m,ps,ms);
break;
case '2':
showscore();
break;
case '3':
return;
}
cout<<"\n欢迎来到比大小游戏中,请选择:\n1、开始游戏 2、显示比分 3、退出游戏 "<<endl;
}
}
int main(){
int a[60] = {0},pc[30] = {0},man[30] = {0};
char s[60] = {0},pc_s[30] = {0},man_s[30] = {0};
char* m[14] = {"0","1","2","3","4","5","6","7","8","9","10","J","Q","K"};
int i;
for(i = 0;i < 13;i ++){
s[i] = 3;
s[i+13] = 4;
s[i + 26] =5;
s[i+39] = 6;
a[i] = a[i +13] =a[i+26] = a[i + 39] = i+1;
}
start(a,pc,man,m,s,pc_s,man_s);
cout<<"欢迎再次来玩本游戏"<<endl;
return 0;
}