码迷,mamicode.com
首页 > 编程语言 > 详细

斗地主数组模拟实现(仅大体部分)

时间:2016-03-11 06:41:34      阅读:240      评论:0      收藏:0      [点我收藏+]

标签:斗地主

(游戏类代码判断情况比较多 往往是核心最多)
以下代码ckeck部分亦待修改
#include<stdio.h>
#include<stdlib.h>
#include <time.h>
#include<string.h>
#define n 14
#define m 4
void paixu(int v[])
{
int i=0,j=0,t=0;
for(i=0;i<20;i++)
{ 
  for(j=0;j<19-i;j++)  { if(v[j]>v[j+1]) {t=v[j+1];v[j+1]=v[j];v[j]=t;} }
}
 
}
void display(int v[])
{
int i=0;
printf("\n");
paixu(v);
for(i=0;i<20;i++)
  {
  if (v[i]!=0&&v[i]<11) printf("%3d",v[i]);
  if (v[i]==11) printf(" J ");
  if (v[i]==12) printf(" Q ");
  if (v[i]==13) printf(" k ");
  if (v[i]==14) printf(" A ");
  if (v[i]==15) printf(" 2 ");
  if (v[i]==16) printf(" 小王 ");
  if (v[i]==17) printf(" 大王 ");

 }
printf("\n");
}
void fapai(int a[],int b[],int c[])
{
printf("\n 玩家 n1 a的牌 \n");
display(a);
printf("\n 玩家 n2 b的牌 \n");
display(b);
printf("\n 玩家 n3 c的牌 \n");
display(c);
}
int check(int v[])
{ 
 int i=0,count=0;
 if(v[i]!=0) count++;
 if(count==0) { printf(" \n win\n ");}
 return count;
}
 void player(int aa[],int c[],int cc[])
{   
int i,j,k;
int count=0;
int xx=0,x;
for(i=0;i<20;i++)
  { cc[i]=0; if(aa[i]!=0) count++; } 
  printf(" \n count=%d \n ",count); 

        if(count==0) {printf(" \n enter anycard \n ");scanf("%d",&x);cc[0]=x;printf(" \n cc%d \n ",cc[0]);for(i=0;i<20;i++)if(c[i]==c[0])c[i]=0; }
        if(count==1) {printf(" \n enter onecard \n ");scanf("%d",&x);cc[0]=x;printf(" \n cc%d \n ",cc[0]);for(i=0;i<20;i++)if(c[i]==c[0])c[i]=0; }
        if(count==2) {printf(" \n enter twocards \n ");scanf("%d",&x);cc[0]=x;scanf("%d",&x);cc[1]=x;printf(" \n cc%d , %d \n ",cc[0],cc[1]); } 


     paixu(cc);
}
void playee(int cc[],int b[],int bb[])
{   
int i,j,k;
int count=0;
int xx=0,x;
for(i=0;i<20;i++)
  { bb[i]=0; if(cc[i]!=0) count++; } 
  printf(" \n count=%d \n ",count); 

        if(count==0) 
{
printf(" \n enter anycard \n ");//for(i=0;i<20;i++)if(b[i]>cc[19]){ bb[0]=b[i]; b[i]=0;}
 }
       
     
     paixu(bb);
} 

void play(int a[],int b[],int c[])
{ 
int aa[20]={0},na=0;
int bb[20]={0},nb=0;
int cc[20]={0},nc=0;
 int num=5;
while(num--)
{
 player(aa,c,cc);  nc=check(c);
 playee(cc,b,bb);  nb=check(b);
 playee(bb,a,aa);  na=check(a);
//if(na<num)num=a; if(nb<num)num=b; if(nc<num) num=c;
 } 
}
void main()
{
int r,l;
int x[n][m]={0};
int a[20]={0},b[20]={0},c[20]={0};
int i,j,k=0;
	time_t t;
	srand((unsigned)time(&t));

for(i=0;i<n;i++)
 {
   for(j=0;j<m;j++)
   {
    x[i][j]=i+3;
 //  printf("%3d",x[i][j]);
   } 
}
//x[13][0]=16;
x[13][1]=17;
x[13][2]=0;
x[13][3]=0;
while(k<17)   
 {
 
	r=rand()%14;
        l=rand()%4;
  if(x[r][l]!=0){ a[k]=x[r][l];x[r][l]=0;k++;}
//  else      continue;
       
     }
k=0; 
while(k<17)
   {
 
	r=rand()%14;
        l=rand()%4;
  if(x[r][l]!=0){ b[k]=x[r][l];x[r][l]=0;k++;}
  // else      continue;
     }
k=0;
 for(i=0;i<14;i++)
{  for(j=0;j<4;j++)
   {
   if(x[i][j]!=0) { c[k]=x[i][j]; k++; }
   }
}


 fapai(a,b,c);
play(a,b,c);
//num();

}


斗地主数组模拟实现(仅大体部分)

标签:斗地主

原文地址:http://wzsts.blog.51cto.com/10251779/1749701

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!