user-0 提问: 求求大神提供程序或者思路

回复:
user: user-1
content: 希望对你有帮助：https://blog.csdn.net/it_xiangqiang/category_10581430.html 希望对你有帮助：https://blog.csdn.net/it_xiangqiang/category_10768339.html

user: user-0
content: 引用 5 楼 寻开心的回复:定义一个数组   const char*  Cards[] = {"None", "A", "2", "3", "4","5","'6", "7", "8", "9", "10","J","Q", "K", }  从这里取值就行了 ， 甚至你都可以把 ♠ ♥ ♦ ♣加进去， 例如 “♠A” 实现一次出一张牌的就可以了

user: user-0
content: 引用 5 楼 寻开心的回复:定义一个数组   const char*  Cards[] = {"None", "A", "2", "3", "4","5","'6", "7", "8", "9", "10","J","Q", "K", }  从这里取值就行了 ， 甚至你都可以把 ♠ ♥ ♦ ♣加进去， 例如 “♠A” #include<stdio.h> #include<stdlib.h> #include<time.h> int Judgment(int d,int x[],int y[],int z[]); void player(int *p) {  	int i,j,temp; 	for(i=0;i<12;i++){ 		for(j=0;j<12-i;j++){ 			if(p[j]>p[j+1]){ 				temp=p[j]; 				p[j]=p[j+1]; 				p[j+1]=temp;	 			} 		} 	 }  } int main () { 	int a[4][13],b[52]={0}; 	char ch[]={'3','4','5','6','7','8','9','T','J','Q','K','A','2'}; 	int i,j,m,n,num=0; 	int p1[13],p2[13],p3[13],p4[13]; 	int p11=0,p22=0,p33=0,p44=0; 	srand(time(NULL)); 	for(i=0;i<4;i++){ 	    for(j=0;j<13;j++){         	a[i][j]=j+1; 	}  	} 	int flag=1,h=0;  	while(1) 	{ 		flag=1; 		n=rand()%52; 		for(m=0;m<num;m++) 		{ 			if(n==b[m]){ 				flag=0;  				break; 		    }     	}  		if(flag==1) 		{ 			b[num++]=n; 			if(h<13)p1[p11++]=a[n/13][n%13],h++; 			if(h>=13&&h<26)p2[p22++]=a[n/13][n%13],h++; 			if(h>=26&&h<39)p3[p33++]=a[n/13][n%13],h++; 			if(h>=39&&h<52)p4[p44++]=a[n/13][n%13],h++; 		}	 		if(h==52) 		break;	 	}  	player(p1); 	player(p2); 	player(p3); 	player(p4);	 	p11=0,p22=0,p33=0,p44=0; 	int r1=0,r2=0,r3=0,r4=0; 	printf("player1:\n"); 	while (1) {            printf("%c ", ch[p1[p11++]]);            r1++;            if(r1==13){ 		       printf("\n"); 		       break; 	       }     }     printf("player2:\n"); 	while (1) {            printf("%c ", ch[p2[p22++]]);            r2++;            if(r2==13){ 		       printf("\n"); 		       break; 	       }     }     printf("player3:\n"); 	while (1) {            printf("%c ", ch[p3[p33++]]);            r3++;            if(r3==13){ 		       printf("\n"); 		       break; 	       }     }     printf("player4:\n"); 	while (1) {            printf("%c ", ch[p4[p44++]]);            r4++;            if(r4==13){ 		       printf("\n"); 		       break; 	       }     }     printf("\n");     p11=0,p22=0,p33=0,p44=0;     int t1=13,t2=13,t3=13,t4=13;     int d,k=0,k1=0,k2=0,k3=0,k4=0;     printf("<<——扑克牌大乱斗——对弈开始！——>>\n\n");     printf("player1: %d \n",p1[p11]); 	d=p1[p11]; 	p1[p11]=-1;     t1--;     p11=13-t1;      while(1)     {     	if(p2[p22]>d){ 		    printf("player2: %c \n",ch[p2[p22]]);             k2=1; 			d=p2[p22]; 			p2[p22]=-1; 			t2--; 			if(t2==0){ 		    	printf("\n获得胜利的是：player2 !"); 		    	break; 		    } 			p22=13-t2; 			if(Judgment(d,p1,p3,p4)==1){ 	            while(p2[k]==-1){            		k++; 		    } 	    	p22=k,k=0; 	    	printf("player1: 要不起\nplayer3: 要不起\nplayer4: 要不起\n");             printf("player2: %c \n",ch[p2[p22]]);            	k2=1;         	d=p2[p22];         	p1[p22]=-1;             t2--;          	if(t2==0){ 		        printf("\n获得胜利的是：player2 !"); 		        break; 	     	}     	    p22=13-t2;         	} 		}     	else{     		while(p2[p22]<=d&&p22<13){     			p22++; 			} 			if(p22<13){ 			    printf("player2: %c \n",ch[p2[p22]]); 			    k2=1; 				d=p2[p22]; 				p2[p22]=-1; 				t2--; 			    if(t2==0){ 		            printf("\n获得胜利的是：player2 !"); 		            break; 		        } 				p22=13-t2;  	        	if(Judgment(d,p1,p3,p4)==1){ 	         	    while(p2[k]==-1){            		    k++; 		        } 	    	    p22=k,k=0; 	    	    printf("player1: 要不起\nplayer3: 要不起\nplayer4: 要不起\n");             	printf("player2: %c \n",ch[p2[p22]]);             	k2=1;         	    d=p2[p22];         	    p1[p22]=-1;             	t2--;          	    if(t2==0){ 		            printf("\n获得胜利的是：player2 !"); 		            break; 	     	    }     	        p22=13-t2;         	    } 			} 			if(p22==13&&k2==1) printf("player2: 要不起\n"),k2=0,p22=13-t2; 		} 		if(p3[p33]>d){ 		    printf("player3: %c \n",ch[p3[p33]]); 		    k3=1; 			d=p3[p33]; 			p3[p33]=-1; 			t3--; 			if(t3==0){ 			    printf("\n获得胜利的是：player3 !"); 		        break; 	    	}  			p33=13-t3; 			if(Judgment(d,p1,p2,p4)==1){     	    	while(p3[k]==-1){         		k++; 	    		} 	    		p33=k,k=0; 	    		printf("player1: 要不起\nplayer2: 要不起\nplayer4: 要不起\n");     	    	printf("player3: %c \n",ch[p3[p33]]);     	    	k3=1;     	    	d=p3[p33];     	    	p3[p33]=-1;     	    	t3--;     	    	if(t3==0){ 		    	    printf("\n获得胜利的是：player3 !"); 		            break; 	        	}      	    	p33=13-t3; 	    	} 		}     	else{     		while(p3[p33]<=d&&p33<13){     			p33++; 			}	 			if(p33<13){ 			    printf("player3: %c \n",ch[p3[p33]]); 			    k3=1; 				d=p3[p33]; 				p3[p33]=-1; 				t3--; 			    if(t3==0){ 			        printf("\n获得胜利的是：player3 !"); 		            break; 	        	}  				p33=13-t3; 				if(Judgment(d,p1,p2,p4)==1){     	        	while(p3[k]==-1){             		k++; 	        	} 	    		p33=k,k=0; 	    		printf("player1: 要不起\nplayer2: 要不起\nplayer4: 要不起\n");     	    	printf("player3: %c \n",ch[p3[p33]]);     	    	k3=1;     	    	d=p3[p33];     	    	p3[p33]=-1;     	    	t3--;     	    	if(t3==0){ 		    	    printf("\n获得胜利的是：player3 !"); 		            break; 	        	}      	    	p33=13-t3; 	    	} 			} 			if(p33==13&&k3==1) printf("player3: 要不起\n"),k3=0,p33=13-t3; 		}  		if(p4[p44]>d){ 		    printf("player4: %c \n",ch[p4[p44]]); 		    k4=1; 			d=p4[p44]; 			p4[p44]=-1; 			t4--; 			if(t4==0){ 			    printf("\n获得胜利的是：player4 !"); 		        break; 	    	} 			p44=13-t4; 			if(Judgment(d,p1,p2,p3)==1){     	        while(p4[k]==-1){     	        k++; 		        } 	     	    p44=k,k=0; 		        printf("player1: 要不起\nplayer2: 要不起\nplayer3: 要不起\n");     	        printf("player4: %c \n",ch[p4[p44]]);     	        k4=1;     	        d=p4[p44];     	       	p4[p44]=-1;     	        t4--;          	    if(t4==0){ 			    printf("\n获得胜利的是：player4 !"); 		        break; 	            }     	        p44=13-t4; 	        } 		}     	else{     		while(p4[p44]<=d&&p44<13){     			p44++; 			} 			if(p44<13){ 			    printf("player4: %c \n",ch[p4[p44]]); 			    k4=1; 				d=p4[p44]; 				p4[p44]=-1; 				t4--; 				if(t4==0){ 			        printf("\n获得胜利的是：player4 !"); 		            break; 	    	    } 				p44=13-t4;  				if(Judgment(d,p1,p2,p3)==1){     	        	while(p4[k]==-1){     	        	k++; 		        	} 	     	     	p44=k,k=0; 		        	printf("player1: 要不起\nplayer2: 要不起\nplayer3: 要不起\n");     	        	printf("player4: %c \n",ch[p4[p44]]);     	        	k4=1;     	        	d=p4[p44];     	        	p4[p44]=-1;     	        	t4--;          	     	if(t4==0){ 			        printf("\n获得胜利的是：player4 !"); 		            break; 	             	}     	        	p44=13-t4; 	        	} 			} 			if(p44==13&&k4==1) printf("player4: 要不起\n"),k4=0,p44=13-t4; 		} 		if(p1[p11]>d){ 		    printf("player1: %c \n",ch[p1[p11]]); 		    k1=1; 			d=p1[p11]; 			p1[p11]=-1; 			t1--; 			if(t1==0){ 			    printf("\n获得胜利的是：player1 !"); 		    	break; 	    	} 			p11=13-t1; 			if(Judgment(d,p2,p3,p4)==1){     	    	while(p1[k]==-1){     			k++; 		    	} 		    	p11=k,k=0;  		    	printf("player2: 要不起\nplayer3: 要不起\nplayer4: 要不起\n");     	    	printf("player1: %c \n",ch[p1[p11]]);     	    	k1=1;     	    	d=p1[p11];     	    	p1[p11]=-1;     	    	t1--;     	    	if(t1==0){ 		        	printf("\n获得胜利的是：player1 !"); 		          	break; 		        }     	    	p11=13-t1; 	    	} 		}     	else{     		while(p1[p11]<=d&&p11<13){     			p11++; 			} 			if(p11<13){ 			    printf("player1: %c \n",ch[p1[p11]]); 			    k1=1; 				d=p1[p11]; 				p1[p11]=-1; 				t1--; 		    	if(t1==0){ 			        printf("\n获得胜利的是：player1 !"); 		        	break; 	        	} 				p11=13-t1;  				if(Judgment(d,p2,p3,p4)==1){     	        	while(p1[k]==-1){     	    		k++; 		    	} 		    	p11=k,k=0;  		    	printf("player2: 要不起\nplayer3: 要不起\nplayer4: 要不起\n");     	    	printf("player1: %c \n",ch[p1[p11]]);     	    	k1=1;     	    	d=p1[p11];     	    	p1[p11]=-1;     	    	t1--;     	    	if(t1==0){ 		    	printf("\n获得胜利的是：player1 !"); 		    	break; 	    	    }     	    	p11=13-t1; 	        	} 			} 			if(p11==13&&k1==1) printf("player1: 要不起\n"),k1=0,p11=13-t1; 		} 	}     return 0;  }  int Judgment(int d,int x[],int y[],int z[])  {  	int i,k=1;  	for(i=0;i<13;i++)  	{  	    if(d<x[i]||d<y[i]||d<z[i]){  	    	k=0;  	    	break; 		}	  	     	} 	return k; }还差点小问题，帮我整理一下好吗

user: user-2
content: 定义一个数组   const char*  Cards[] = {"None", "A", "2", "3", "4","5","'6", "7", "8", "9", "10","J","Q", "K", }  从这里取值就行了 ， 甚至你都可以把 ♠ ♥ ♦ ♣加进去， 例如 “♠A”

user: user-0
content: 引用 3 楼 寻开心的回复:https://bbs.csdn.net/topics/395382580 你看看，别人也是在自己尝试，你怎么就不行。 写啊 自己和自己说不行，那就真的不行  必须自己写开头， 可以给意见，可以帮改，但是必须自己动手做  要原码，自己百度去 #include<stdio.h> #include<time.h> #include<stdlib.h> int main() { 	int a[4][13],c,i,j,m, n=0,b[52]={0}; 	srand (time (NULL) ); 	for(i=0;i<4;i++) { 	for(j=0;j<13;j++){ 	a[i][j]=j+1; 	} } 	for (;n<=52;) { 	c=rand()%52; 	for (m=0;m<n;m++) { 	if(c==b[m]){ 	break; 	} 		} 	if(m==n){ 	b[n]=c; 	n++; 	printf ("%d\%c",a[c/13] [c%13],n%13==0 && n!=0?'\n':' '); 	} } 	return 0; }这个怎么把1 11 12 13换成AJQK啊，还有能给点出牌的详细思路吗

user: user-2
content: https://bbs.csdn.net/topics/395382580 你看看，别人也是在自己尝试，你怎么就不行。 写啊 自己和自己说不行，那就真的不行  必须自己写开头， 可以给意见，可以帮改，但是必须自己动手做  要原码，自己百度去

user: user-0
content: 引用 1 楼 寻开心的回复:麻烦一点儿，似乎也没有什么难的 洗牌。 把牌放到一个数组里面，用随机指定交换的数组元素位置， 交换它百八十次就好了 分牌，也不是事儿  下面就模拟出牌的流程就好，主要是定义一个初级的人工智能规则，你可以自己定义        先出牌，如何做决策：  比如，可以挑最小的出，如果是多张，就出多张        如何跟牌的决策： 如果能管上上家， 就挑最小的能满足条件的牌来跟。 （这里可选择拆开或者不拆开多张牌）        没有可跟的牌，就放弃  这里只有人工智能的强弱是这个游戏的难点 能帮帮我写个程序嘛，我想了几天都没写出来

user: user-2
content: 麻烦一点儿，似乎也没有什么难的 洗牌。 把牌放到一个数组里面，用随机指定交换的数组元素位置， 交换它百八十次就好了 分牌，也不是事儿  下面就模拟出牌的流程就好，主要是定义一个初级的人工智能规则，你可以自己定义        先出牌，如何做决策：  比如，可以挑最小的出，如果是多张，就出多张        如何跟牌的决策： 如果能管上上家， 就挑最小的能满足条件的牌来跟。 （这里可选择拆开或者不拆开多张牌）        没有可跟的牌，就放弃  这里只有人工智能的强弱是这个游戏的难点