int main(){int a[60] int b[60] int w = 0 int wi,wj,wii int i,j,index,x=0,m for(i=0i<54i++)a[i]=i+1 srand((unsigned)time(0)) for(i=0i<54){index=rand()%54 if(a[index]!=0){b[i]=a[index] //printf("%d ",b[i]) a[index]=0 ++i }}printf("\n说明:\n") printf("*******************\n") printf("**红桃 %c ",3) printf("**\n") printf("**方块 %c ",4) printf("**\n") printf("**梅花 %c ",5) printf("**\n") printf("**黑桃 %c ",6) printf("**\n") printf("**大王 A **\n**小王 a **\n") printf("*******************\n") printf("\n请输入打牌人数:\n") scanf("%d",&w) wi = 54/w wj = 54%w //printf("%d,%d",wi,wj) for (j = 0j <wj++){m = 0 printf("\n\n第%d个人的牌\n",j+1) wj -- if (wj>=0)wii = wi + 1 elsewii = wi//红桃printf("红桃 %c ",3) printf(":") for(i = j*wiii<(j+1)*wiii++){if (b[i]<=13&&b[i]>0){m++ if (b[i]==11)printf("J ") else if (b[i]==12)printf("Q ") else if (b[i]==13)printf("K ") elseprintf("%d ",b[i]) }} //方块printf("\n方块 %c ",4) printf(":") for(i = j*wiii<(j+1)*wiii++){if (b[i]<=26&&b[i]>13){m++ b[i] = b[i]-13 if (b[i]==11)printf("J ") else if (b[i]==12)printf("Q ") else if (b[i]==13)printf("K ") elseprintf("%d ",b[i]) }} //梅花printf("\n梅花 %c ",5) printf(":") for(i = j*wiii<(j+1)*wiii++){ if (b[i]<=39&&b[i]>26){m++ b[i] = b[i]-26 if (b[i]==11)printf("J ") else if (b[i]==12)printf("Q ") else if (b[i]==13)printf("K ") elseprintf("%d ",b[i]) }}//黑桃printf("\n黑桃 %c ",6) printf(":") for(i = j*wiii<(j+1)*wiii++){if (b[i]<=52&&b[i]>39){m++ b[i] = b[i]-39 if (b[i]==11)printf("J ") else if (b[i]==12)printf("Q ") else if (b[i]==13)printf("K ") elseprintf("%d ",b[i]) }}//大小王printf("\n大小王 A or a :") for(i = j*wiii<=(j+1)*wiii++){if (b[i]==53){m++ printf("A ") }if (b[i]==54){m++ printf("a ") }}printf("\n总共:%d张牌!!!",m) } }
我以前用TC写过一个有图形界面的斗地主游戏。。不过是为了应付老师罢了,要是想做游戏不要用TC,也没必要学TC里面那些早就淘汰了的图形API...给你个例子:
要导入的图形头文件就是:
#include <graphics.h>
如果要涉及键盘 *** 作还要导入:
#include <bios.h>
以及预处理:
#define UP 18432/*向上的键盘输入标志*/
#define DOWN 20480 /*向下的键盘输入标志*/
#define LEFT 19200 /*向左的键盘输入标志*/
#define RIGHT 19712 /*向右的键盘输入标志*/
关于画图的那些函数的用法可以网上下个TC函数大全。
注意一点:关于TC图形驱动的初始化可能给机器和 *** 作系统有关,很多TC写的图形程序在有的机器上不能显示。
如果你是人人对战的话可以给你一些思路,,人机对战则要复杂得多。。重点说一下你的上面提到的问题。再说你的问题之前有先得有所准备
建立一个数组储存所有的牌
建立两个类储存每个玩家的牌,一个是用户手里的牌的点数。一个是每张牌的坐标也就是一张图片而已,每个图片坐标可用x1,y1,width.height表示,分别为左上角和宽高。
这后开始正式工作啦。。用一个PICtruebox来显示所有的牌。不要用多个PICTRUEBOX来显示,这样会影响程序的性能。每次用户单击的时候,取得鼠标位置x,y。来获取用户所选的牌,如何判断鼠所在的是哪张牌呢。。遍历上面的数组。或者重写pictruebox,click事件。x1-x<width,y1-y<height且x>x1,y>y2时就能确定所选的牌了。
规则逻辑处理
请为以下每一种情况生成一个类,并生成编写大小判断函数 返回值直接为bool型真为大,false为小,也就是不能出牌,
一张牌
一对
炸d
。。。。。。。
等等情况
给你说下炸d和顺子的思路
判断用户牌的点数是否是连着的来判断用户出的是否是顺子,。用用户的出的牌总点数大小来判断用户出的顺子是否能够吃掉对方的顺子。。
炸d就更好办了
根据这些类来判断用户是否可以出牌和可以出牌的类型。
因为人机对战得让电脑计算出牌方案,所以要复杂得多。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)