IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> 纸牌游戏程序摸鱼设计制作(C语言) -> 正文阅读

[游戏开发]纸牌游戏程序摸鱼设计制作(C语言)

纸牌游戏程序摸鱼设计制作

此游戏设计属于简单的卡牌游戏,是儿童益智类游戏。适用于儿童的认知教育。
游戏规则很简单:找配对的牌消去。
这设置主要培养儿童的心理素质,在少儿心理的成长和发展阶段,逐步完善心理的感知和认知,意识和思维,注意力和记忆。多玩游戏,在游戏中学习,对儿童少儿心理发展有所裨益。
游戏规则极为简单,如加些通道要求,就变成连连看游戏了。如设置卡牌在界面上显示牌背的盲牌形式,点击牌背显示牌面配对消牌,就真成了摸鱼了。这主要培养注意力和短期记忆。

卡牌算法设计:54张牌面制作显示。洗牌,随机显示52张牌。牌序0到53换算为A234...到JQK,加大小王。程序设计了漂亮友好的游戏界面。界面上纸牌显示圆角牌背牌面。界面提示文字显示。

下面是纸牌游戏设计的通用部分:
shuffle_cards ( ){ ? ?// ?洗牌设计 ? ? ? }
cardback (){ ? ?//发牌时隐藏牌面显示牌背图案 ? ?}
transcards ( ){ ? //传入牌序号num转为牌点和牌花色,画出牌张 ? ? }
print_t ( ){ ? //打印标题提示等文字?
? ? ? ? ? ? ? ? ? ? ?//** ?参数:位置 sx , ?sy,字串 t$,文字尺寸 tsize }

我多年程序设计的方法就是崇尚简捷简洁,用最简单的语言写图形界面,设计最简单的算法达到程序要求。卡牌制作和文字显示可作为卡牌游戏程序的通用功能函数。程序设计提供了界面设计图案和文字显示方法,卡牌制作,洗牌设计和定位画出卡牌的方法。为提高玩家的兴趣,程序提供了2套图案方法,以及完成游戏使用时间显示。

游戏代码是用MySpringC编译器在安卓手机上编写的,简单的语言表述,设计思路适用于初学者。可制作成安卓手机桌面app应用程序。
程序提供了一个框架,VB , VC, ?VS 或 JAVA ?改写可作为参考。
此样例可复制粘贴到编译器直接使用。

ce88733b544849e4b4f45d58dbc4e7ca.png
//以下是源码:
//*********************************************
//* ? ?纸牌游戏《摸鱼》 ?Version ? 1.1.0 ? ? ? ? ?*
//* ? ?制作:张纯叔 ? ( micelu@126.com ) ? ? ?*
//*********************************************
Canvas cs ; ? ? ? //画布
string sBarDes[10];
int nBarId[10];
float src[4]; ?//ClearDraw (cls) clear screen
string s,ss,ss0,ss1,ss2 ;?
string s1,s2,s3,s4,s5 ; ? ? ?//print text
int sx,sy,dx,dy,px,py; ? ? ?//draw
int i,j,n,t,k; ? ?//t = times
int num; ? ? ?//select card number
int pn ; ? ? ? ?//发牌序号数
int dn,p1,p2,px1,py1,px2,py2 ; ?
?int pnum[54]; ? ?//洗牌后的牌序列
int cardnum,cardstyle; ? //牌点牌花色
string cas1,cas2,cas4; ? //牌点牌花色图案$
string cas3,cas5 ; ? ? ? ? ? ?//牌背花色, 下注图案
double Rn; ? ?//random number
string t$; ? ? //提示文字
int tsize; ? ? ?//textsize
int c1,c2,c3,c4,c5,c6 ;
int isdo ; ? ?//控制操作: ?1 可操作 , 0 不可操作
int context; ? ?//canvasProc
int obj;
int id;
int event; ? ? ?//canvasProc
int kn ;
int fn[54]; ? ?//计分
int tim[3]; ? //get Time & show finished time
?int thh,tmm,tss;
?int oldhh,oldmm,oldss;
?int newhh,newmm,newss;
?int mms; ? ? ? ? ? ? ? //show using time
?string hhts,mmts,ssts;
?string ts,ts1,ts2; ? ?
int round,rnn,total ; ? //show score
int mode ; ? ? ?//设置卡牌花色

?

main(){
setDisplay(1);
? cs.SetBackground(0,120,0);
? cs.Active();
? cs.SetProc (context, mycanvasProc);
? ?sBarDes[0]="卡牌花色";
? ?nBarId[0]=100;
? ?sBarDes[1]="开始摸鱼 ";
? ?nBarId[1]=101;
? ?sBarDes[2]=" ";
? ?nBarId[2]=102;
? ?sBarDes[3]=" ?";
? ?nBarId[3]=103;
? ?sBarDes[4]="退出程序";
? ?nBarId[4]=104;
? ?sBarDes[5]="📱" ;
? ?nBarId[5]=105;
? ?setToolBarHeight(6);
? ?setButtonTextSize(13);
? ?setToolBarBackgroundColor(255,0,120,0);
? ?setButtonColor(255,0,0,240);
? ?setButtonTextColor(255,255,255,0);
? ?setToolBar(100,myToolBarProc,sBarDes,nBarId,6);
? setTitle("纸牌游戏-摸鱼 ? ");
//**********
? ? ? cas3="🐡"; ? ? ? ? //预设牌背图案
? ? ? drawcover ();
? ? ? round=0 ; ?total=0 ; ? ?//start round
? ? ? isdo=0 ;
?while (){}
? }//main ()

drawcover (){ ? ? // 画启动界面封面版本号
? ? ?cs.SetColor (255,0,120,0); ?//back color
? ? ?cs.DrawRect (2,2,718,1030);
? ? ?cs.SetColor (255,0,250,0);
? ? ?cs.DrawRect (50,320,650,326);
? ? ?cs.SetColor (255,250,0,0);
? ? ?cs.DrawRect (52,322,648,324);
? ? px=300; ? ?py=80; ? //A
? ? ? ? num=13 ; ??
? ? ? ? transcards ();
? ? px=400; ? ?py=90; ? //A
? ? ? ? num=0; ? ?
? ? ? ? transcards ();
? ? ?px=600; ? ?py=120; ? //K
? ? ? ? num=25; ? ?
? ? ? ? transcards ();
? ? ? px=500; ? ?py=130; ? //K
? ? ? ? num=51; ??
? ? ? ? transcards ();
? ? ?t$=cas4 ;
? ? ?sx=450; ? sy=350; ? ?tsize=150;
? ? ?print_t ();
? ? ?t$="纸牌游戏" ;
? ? ?sx=100; ? sy=160; ? tsize=60;
? ? ?print_t ();
? ? ?t$="摸 ? ?鱼" ;
? ? ?sx=100; ? sy=260; ? tsize=80;
? ? ?print_t ();
? ? ?t$="欢迎加入纸牌游戏团" ;
? ? ?sx=135; ? sy=440; ? tsize=50;
? ? ?print_t1 ();
? ? ?ss="Copyright ?v.1.1.0 ? micelu@126.com ";
? ? ?cs.SetTextSize (22);
? ? ?cs.SetColor (255,250,250,250);
? ? ?cs.DrawText (ss,50,360); ? ? ?
? ? ?cs.Update ();
? ? ?isdo=0 ;
}//drawcover ()

b21f2d0b65e142218720f67e5a264a53.png

2bdabdeaaa96431593dbb379d8c6bec2.png?

?

mycanvasProc (int context,int obj,int id,int event,float x,float y){
? ? ? ?if (isdo==0) return ;
? if (event==0){ //get ?touch select 2 pieces
? ? ? ? ? ? kn=kn+1;
? ? ? ? ? ? if (kn>2) kn=1 ; ? ? ? }
? //** get piece position X Y to select cards
? ?dx=(int)((x-10)/80) ; ? ? //纸牌排列坐标
? ?dy=(int)((y+100)/140) ;
? ?if (dy<1) dy=1 ;
? ?if (dy>6) dy=6 ; ? ?//防越界
? ? ? ? ? ? cs.SetFillMode (1);
? ? cs.SetTextStyle (0); ? ?//0正常,1粗体
? ? cs.SetColor(255,0,120,0);?
? ? cs.DrawRect (4,4,718,60); ?// clear print x y
? ? ? ? t$=ts ; ? ?//start time
? ? ? ? sx=15; ? sy=40; ? tsize=24;
? ? ? ? ? ? print_t (); ??
? ? ? ? t$="第 "+intToString (round)+" 局" ; ? ?
? ? ? ? sx=260; ? sy=40; ? tsize=30;
? ? ? ? ? ? print_t (); ??
? ? ? ? s=intToString(dn);
? ? ? ? t$="得分: "+s+ " 分" ; ? ?
? ? ? ? sx=520; ? sy=40; ? tsize=30;
? ? ? ? ? ? print_t (); ??
? ? ? ? t$=intToString (total) ; ? ?
? ? ? ? sx=390; ? sy=40; ? tsize=30;
? ? ? ? ? ? print_t (); ??
? ? ? ?cs.Update () ;
? ? ? ?catchit () ; ??
??
?}//mycanvasProc ()

catchit (){
? ? ? if (kn==1){
? ? ? ? ?pn= (dy-1)*9+dx ; ? ?//还原牌序号
? ? ? ? ?num=pnum[pn] ;
? ? ? ? ?p1=num ;
? ? ? ? ?c1=(num-num/13*13) ;
? ? ? ? ?px=dx*78+8 ; ? ?//传入dx,dy调整画牌left,top
? ? ? ? ?py=dy*140-20;
? ? ? ? ?px1=px ; ? py1=py ; ? ? }

? ? ?if (kn==2){
? ? ? ? ?pn= (dy-1)*9+dx ;
? ? ? ? ?num=pnum[pn] ;
? ? ? ? ?p2=num ;
? ? ? ? ?c2=(num-num/13*13) ;
? ? ? ? ?px=dx*78+8 ; ? ?//调整画牌left,top
? ? ? ? ?py=dy*140-20;
? ? ? ? ?px2=px ; ? py2=py ; ? ? ?}

? ?if (p1>p2||p1<p2&&c1==c2){
? ? ? ?cs.SetColor (255,0,120,0); ?//擦除
? ? ? ? ? ? fn[p1]=1 ; ? ?//消牌编码
? ? ? ? ? ? fn[p2]=1 ;
? ? ?cs.DrawRect (px1,py1-30,px1+78,py1+95);
? ? ?cs.DrawRect (px2,py2-30,px2+78,py2+95);
? ? ?cs.Update () ; ? ? ?
? ? ? ? ? ? }
? if (p1==52&&p2==53){ ? ?//大小王对
? ? ? ?cs.SetColor (255,0,120,0); ?//擦除
? ? ? ? ? ? fn[p1]=1 ;
? ? ? ? ? ? fn[p2]=1 ;
? ? ?cs.DrawRect (px1,py1-30,px1+78,py1+95);
? ? ?cs.DrawRect (px2,py2-30,px2+78,py2+95);
? ? ?cs.Update () ; ? ? ?
? ? ? ? ? ? ? }
? ? ?dn=0 ; ? ? ?//计分
? ? ?for (i=0;i<54;i++){?
? ? ? ? ? ?if (fn[i]==1) dn=dn+2 ; ? ? ? }
? ? ? ? ? ?total=(round-1)*1000+dn ; ? ? ?

? ? ?if (dn==108) { ? ?//finished
? ? ? ? ?t$="摸鱼完成 ?🐠" ;
? ? ? ? ?sx=140; ? sy=360; ? tsize=80;
? ? ? ? ?print_t (); ??
? ? cs.SetColor(255,0,120,0);?
? ? cs.DrawRect (4,4,718,60); ?// clear print x y
? ? ? ? t$=ts ; ? ?//开始时间
? ? ? ? sx=30; ? sy=40; ? tsize=24;
? ? ? ? ? ? print_t (); ??
? ? ? ? t$="第 "+intToString (round)+" 局" ; ? ?
? ? ? ? sx=260; ? sy=40; ? tsize=30;
? ? ? ? ? ? print_t (); ??
? ? ? ? total= round*1000 ; ? ? ?
? ? ? ? t$=intToString (total) ; ? ?
? ? ? ? sx=390; ? sy=40; ? tsize=30;
? ? ? ? ? ? print_t (); ??
? ? ? ? s=intToString(dn);
? ? ? ? t$="得分: "+s+ " 分" ; ? ?
? ? ? ? sx=520; ? sy=40; ? tsize=30;
? ? ? ? ? ? print_t (); ??
? ? ?showtimes () ; ? //finished & show times
? ? ? ? ?t$=ts1 ;
? ? ? ? ?sx=200; ? sy=460; ? tsize=40;
? ? ? ? ? ? ?print_t (); ??
? ? ? ? ?t$=ts2 ;
? ? ? ? ?sx=200; ? sy=500; ? tsize=40;
? ? ? ? ? ? ?print_t (); ??
? ? ? ? ?isdo=0 ; ? ? }

}//catchit ()

79db328f4b7e4a38b4105b64546f61f3.png

?

set_mode (){ ? ?//设置2种卡牌花色
? ? ? ?mode=mode+1 ; ?
? if (mode>1) mode=0 ;
? ? ? cs.SetColor (255,0,120,0); ? //backcolor
? ? ? cs.DrawRect (2,2,718,1000);
? ? ? ? t$="纸牌游戏 >> ? ? 选择卡牌花色" ;
? ? ? ? sx=50; ? sy=50; ? tsize=30;
? ? ? ? print_t ();
? ? for (k=0;k<54;k++){ ? ?//显示卡牌花色
? ? ? ? px=(k-k/9*9)*78+8;
? ? ? ? py=k/9*140+120;
? ? ? ? num=k ; ? ? ? //洗牌后 pnum[k] ;
? ? ? ? if (mode==0) ?transcards (); ?
? ? ? ? if (mode==1) ?setcard (); ?
? ? ? ? ? ? ? }
}//set_mode ()

320f58e2430049ca94624fb4e2849330.png

?

//纸牌序列:
//cardP num ? 0 to 12 黑桃 A234..JQK
//cardP num 13 to 25 红心 A234..JQK
//cardP num 26 to 38 梅花 A234..JQK
//cardP num 39 to 51 方块 A234..JQK
//52 大王 ?53 小王
// VB6,VS2007 编程:设picturebox:?
// cardP(54)图片数组
// 图片高宽为单张纸牌图大小
// 预制扑克牌序列图片底图,程序启动时按序将
// 每单张图片BitBlt..SRCCOPY到图片数组,
// cardP (i)就是整付牌的图片,洗牌发牌都要用到。
// 本程序简化用 num 序号表示54张牌
//********************

shuffle_cards (){ ? ?//洗牌设计
? ? ?cs.SetColor (255,0,120,0); ? //backcolor
? ? ?cs.DrawRect (2,2,718,1000);
? ? ?cs.Update ();
? ? ? for (i=0;i<=53;i++){ pnum[i]=-1 ; ?fn[i]=0 ; ?}
? ? ? pn=0; ?
//*** * 洗牌 **********************
? ? ? t$="游戏开始 >>> ? 洗牌 ? 开始摸鱼 " ;
? ? ? sx=50; ? sy=50; ? ?tsize=30;
? ? ? print_t ();
? for (i=0;i<54;i++){ ? ?//洗牌
? ? ? ResetPiece: ? ? ? ?//已生成牌有相同则重新生成
? ? ? Rn=random()*54; ? ? ? //随机洗牌
? ? ? ? ? ? ?num=(int )(Rn);
? ? ? ? ? ? ?pnum[i]=num ;
? ? ? ? ?for (k=0;k<i; k++){
? ? ? ? ?if (num==pnum[k]) goto ResetPiece ; ? ? ? ?}
? ? ? ? ? ? ? ? ? ? }
? ?for (k=0;k<54;k++){ ?//显示牌背面图案
? ? ? ? px=(k-k/9*9)*78+8;
? ? ? ? py=k/9*140+120;
? ? //cardback (); ?//洗牌后可显示牌背或不显示
? ? //num=pnum[k] ;
? ?//transcards (); ?//用于洗牌查验测试,游戏时注释掉
? ? ? ? ? }
?}//shuffle_cards ()

start (){ ? ?//开始游戏
? ? ? cs.SetColor (255,0,120,0); ? //backcolor
? ? ? cs.DrawRect (2,2,718,1000);
? ? ? ? t$="纸牌游戏 >> ? ? 开始摸鱼" ;
? ? ? ? sx=50; ? sy=50; ? tsize=30;
? ? ? ? print_t ();
? for (k=0;k<54;k++){ ?//显示牌面图案
? ? ? ? num=pnum[k] ;
? ? ? ? px=(k-k/9*9)*78+8;
? ? ? ? py=k/9*140+120;
? ? ? ? if (mode==0) transcards (); ?
? ? ? ? if (mode==1) setcard () ; ? ? ? ? ?}
? ? ? ? ? ?dn=0 ; ? //计数
? ? ? ? ? ?round=round+1 ;
? ? ? ? ? ?isdo=1 ;
? getTime (tim); ? ? ?//取得系统时间
? ? ? ?oldhh=tim[0];
? ? ? ?oldmm=tim[1];
? ? ? ?oldss=tim[2];
? ?hhts=intToString (tim[0]);
? ?mmts=intToString (tim[1]);
? ?ssts=intToString (tim[2]);
? ?if (oldhh<10)hhts="0"+hhts;
? ?if (oldmm<10)mmts="0"+mmts;
? ?if (oldss<10)ssts="0"+ssts;
? ? ? ?ss2=hhts+" : "+mmts+" : "+ssts;
? ?ts="开始 > ?"+ss2; ? //show start time
?// ?ts1=" ";
?// ?ts2=" ";

}//start ()

setcard (){ ?//num 转换 cardnum, cardstyle
//牌序号转为牌点和牌花色,传入px,py 画出牌张
//此为游戏通用设置,启动界面画牌
string sx$[15] ;
sx$[1]="🐭" ; sx$[2]="🐮" ; sx$[3]="🐯" ; sx$[4]="🐰" ;
sx$[5]="🦖" ; sx$[6]="🐍" ; sx$[7]="🦄" ; sx$[8]="🐑" ;
? sx$[9]="🐵" ; sx$[10]="🐔" ; sx$[11]="🐶" ;
sx$[12]="🐷" ; sx$[13]="🐼" ; sx$[14]="🐻" ;
? ? ? ?if (num==-1) return ;
? ? //**** draw cards 圆角 ****
? ? ? cs.SetTextStyle (0); ? ?//0正常,1粗体
? ? ? cs.SetColor (255,0,60,0); ?//黑色框线
? ? ? cs.DrawRect (px+13,py-30,px+67,py+95);
? ? ? cs.DrawRect (px,py-20,px+78,py+83);
? ? ? cs.DrawCircle (px+10,py-20,9);
? ? ? cs.DrawCircle (px+10,py+85,9);
? ? ? cs.DrawCircle (px+69,py+85,9);
? ? ? cs.DrawCircle (px+69,py-20,9);
? ? ? cs.SetColor (255,250,250,250); ?//牌面白色
? ? ? cs.DrawRect (px+13,py-28,px+65,py+93);
? ? ? cs.DrawRect (px+2,py-20,px+76,py+83);
? ? ? cs.DrawCircle (px+12,py-18,10);
? ? ? cs.DrawCircle (px+12,py+83,9);
? ? ? cs.DrawCircle (px+67,py+83,9);
? ? ? cs.DrawCircle (px+67,py-19,9);
? ? ?//******* 画出牌面
? ? ? ? cardnum=(num-num/13*13)+1;
? ? ? ? cardstyle=num/13;
? ? ? ? cas1=intToString(cardnum);
? ? ? ? if(cardnum==1) cas1="A";
? ? ? ? if(cardnum==11) cas1="J";
? ? ? ? if(cardnum==12) cas1="Q";
? ? ? ? if(cardnum==13) cas1="K";
? ? ? ? if (cardstyle==0) cas2="?";
? ? ? ? if (cardstyle==1) cas2="?";
? ? ? ? if (cardstyle==2) cas2="?";
? ? ? ? if (cardstyle==3) cas2="🔶";
? ?if (num>51){ cas2=" ?" ; ?cas1=" ?" ; ?} //大小王
? ? ?if(cardstyle==0||cardstyle==2) {
? ? ? ? ? ? cs.SetColor (255,0,0,0); ? ? }
? ? ?if(cardstyle==1||cardstyle==3) {
? ? ? ? ? ? cs.SetColor (255,250,0,0); ? ? ?}
? ? ?cs.SetTextSize (30);
? ? ?n=0;
? ? ?if (cardnum==10) n=8; ? ? ? ? ??
? ? ?cs.DrawText (cas1,px+14-n,py);
? ? ?cs.DrawText (cas2,px+5,py+30); ? ? ? ?
? ? ? ? ?cs.SetTextSize (26);
? ? ? ? ?cas4="🐠" ;
? ? ? ? ?if (num==52){ ?//大王
? ? ?cs.SetColor(255,255,0,0) ;
? ? ?cs.DrawText ("Joker",px+5,py+10); ? ?
? ? ? ? cas4="🐳" ; ? ? ?}
? ? ? ? if (num==53){ ? //小王
? ? ?cs.SetColor(255,0,0,0) ;
? ? ?cs.DrawText ("Joker",px+5,py+10); ? ? ?
? ? ? ? ?cas4="🐬" ; ? } ?
? ? ? ? cs.SetTextSize (48); ? ? ?//牌面图
? ?if (num<52) ?cas4=sx$[cardnum] ;
? ? ? ? cs.DrawText (cas4,px+16,py+72);
? ? ?cs.Update ();
}//setcard ()

transcards (){ ?//num 转换 cardnum, cardstyle
//牌序号转为牌点和牌花色,传入px,py 画出牌张
//此为游戏通用设置,启动界面画牌
? ? ? ?if (num==-1) return ;
? ? //**** draw cards 圆角 ****
? ? ? cs.SetTextStyle (0); ? ?//0正常,1粗体
? ? ? cs.SetColor (255,0,60,0); ?//黑色框线
? ? ? cs.DrawRect (px+13,py-30,px+67,py+95);
? ? ? cs.DrawRect (px,py-20,px+78,py+83);
? ? ? cs.DrawCircle (px+10,py-20,9);
? ? ? cs.DrawCircle (px+10,py+85,9);
? ? ? cs.DrawCircle (px+69,py+85,9);
? ? ? cs.DrawCircle (px+69,py-20,9);
? ? ? cs.SetColor (255,250,250,250); ?//牌面白色
? ? ? cs.DrawRect (px+13,py-28,px+65,py+93);
? ? ? cs.DrawRect (px+2,py-20,px+76,py+83);
? ? ? cs.DrawCircle (px+12,py-18,10);
? ? ? cs.DrawCircle (px+12,py+83,9);
? ? ? cs.DrawCircle (px+67,py+83,9);
? ? ? cs.DrawCircle (px+67,py-19,9);
? ? ?//******* 画出牌面
? ? ? ? cardnum=(num-num/13*13)+1;
? ? ? ? cardstyle=num/13;
? ? ? ? cas1=intToString(cardnum);
? ? ? ? if(cardnum==1) cas1="A";
? ? ? ? if(cardnum==11) cas1="J";
? ? ? ? if(cardnum==12) cas1="Q";
? ? ? ? if(cardnum==13) cas1="K";
? ? ? ? if (cardstyle==0) cas2="?";
? ? ? ? if (cardstyle==1) cas2="?";
? ? ? ? if (cardstyle==2) cas2="?";
? ? ? ? if (cardstyle==3) cas2="🔶";
? ?if (num>51){ cas2=" ?" ; ?cas1=" ?" ; ?} //大小王
? ? ?if(cardstyle==0||cardstyle==2) {
? ? ? ? ? ? cs.SetColor (255,0,0,0); ? ? }
? ? ?if(cardstyle==1||cardstyle==3) {
? ? ? ? ? ? cs.SetColor (255,250,0,0); ? ? ?}
? ? ?cs.SetTextSize (30);
? ? ?n=0;
? ? ?if (cardnum==10) n=8; ? ? ? ? ??
? ? ?cs.DrawText (cas1,px+14-n,py);
? ? ?cs.DrawText (cas2,px+5,py+30); ? ? ? ?
? ? ? ? ? cs.SetTextSize (26);
? ? ? ? cas4="🐠" ;
? ? ? ? if (num==52){ ?//大王
? ? ?cs.SetColor(255,255,0,0) ;
? ? ?cs.DrawText ("Joker",px+5,py+10); ? ?
? ? ? ? cas4="🐳" ; ? ? ?}
? ? ? ? if (num==53){ ? //小王
? ? ?cs.SetColor(255,0,0,0) ;
? ? ?cs.DrawText ("Joker",px+5,py+10); ? ? ?
? ? ? ? ?cas4="🐬" ; ? } ?
? ? ? ? cs.SetTextSize (48); ? ? ?//牌面图
? ? ? ? cs.DrawText (cas4,px+16,py+72);
? ? ?cs.Update ();
}//transcards ()

cardback (){ ? //draw cards back picture
//发牌时隐藏牌面显示牌背图案
? ? if (num==-1) return ;
? ? //**** draw cards 圆角 ****
? ? ? cs.SetColor (255,0,60,0); ?//黑色框线
? ? ? cs.DrawRect (px+13,py-30,px+67,py+95);
? ? ? cs.DrawRect (px,py-20,px+78,py+83);
? ? ? cs.DrawCircle (px+10,py-20,9);
? ? ? cs.DrawCircle (px+10,py+85,9);
? ? ? cs.DrawCircle (px+69,py+85,9);
? ? ? cs.DrawCircle (px+69,py-20,9);
? ? ? cs.SetColor (255,20,180,200); ?//牌背色
? ? ? cs.DrawRect (px+13,py-28,px+65,py+93);
? ? ? cs.DrawRect (px+2,py-20,px+76,py+83);
? ? ? cs.DrawCircle (px+12,py-18,9);
? ? ? cs.DrawCircle (px+12,py+83,9);
? ? ? cs.DrawCircle (px+67,py+83,9);
? ? ? cs.DrawCircle (px+67,py-19,9);
? ? ?cs.SetTextSize(50);
? ? ? cs.DrawText (cas3,px+8,py+50); ?//show 背花
? ? ? cs.Update ();
}//cardback ()

showtimes (){ ? ?//计算使用时间
? ? ? getTime (tim);
? ? ? newhh=tim[0];
? ? ? newmm=tim[1];
? ? ? newss=tim[2];
? ? ? hhts=intToString (tim[0]);
? ? ? mmts=intToString (tim[1]);
? ? ? ssts=intToString (tim[2]);
? ? ? if (newhh<10)hhts="0"+hhts;
? ? ? if (newmm<10)mmts="0"+mmts;
? ? ? if (newss<10)ssts="0"+ssts;
?mms=((newhh-oldhh)*3600)+
? ? ? ? ((newmm-oldmm)*60)+((newss-oldss)); ? ?
? ? if (mms<0) mms=mms+864000;
? ? ? ? thh=mms/3600;
? ? ? ? tmm=(mms-thh*2600)/60;
? ? ? ? tss=mms-thh*3600-tmm*60;
?ss1=intToString (tmm)+" 分 ?"+intToString (tss)+" 秒";
?ss2=hhts+" : "+mmts+" : "+ssts;
? ? ? ts1= "完成 > ?"+ss2; ? ? ?//输出
? ? ? ts2= "用时 > ? "+ss1; ? ? //输出
?}//showtimes ()

print_t (){ ? //打印标题提示等文字
//** ?参数 sx,sy, ss0=$, tsize=text size ??
?cs.SetFillMode (1);//0不填色,1填色
? ? cs.SetTextStyle (0); ? ?//0正常,1粗体
?cs.SetTextSize (tsize);
? ? cs.SetColor (255,0,200,60);
?cs.DrawText (t$,sx+2,sy+3);
? ? cs.SetColor (255,250,120,0);
?cs.DrawText (t$,sx,sy);
?cs.SetFillMode (0);//0不填色,1填色
? ? cs.SetColor (255,250,250,0);
?cs.DrawText (t$,sx,sy);
?cs.SetFillMode (1);//0不填色,1填色
? ? ? cs.Update ();
}//print _t ()

print_t1 (){ ? //打印标题提示等文字
//** ?参数 sx,sy, ss0=$, tsize=text size ??
? cs.SetFillMode (1);//0不填色,1填色
? ? cs.SetTextStyle (1); ? ?//0正常,1粗体
? cs.SetTextSize (tsize);
? ? cs.SetColor (255,0,20,100);
?cs.DrawText (t$,sx+3,sy+4);
? ? cs.SetColor (255,0,250,0);
?cs.DrawText (t$,sx,sy);
?cs.SetFillMode (0);//0不填色,1填色
? ? cs.SetColor (255,250,0,0);
?cs.DrawText (t$,sx,sy);
?cs.SetFillMode (1);//0不填色,1填色
? ? ? cs.Update ();
}//print _t1 ()

myToolBarProc(int nBtn,int nContext){
? ? ? if(nBtn==100){// 卡牌花色
? ? ? ? ? ?setDisplay (1);
? ? ? ? ? ?set_mode () ;
? ? ? ? ? ? ? } ?
? ? ? if(nBtn==101){// 开始摸鱼
? ? ? ? ? ?setDisplay (1);
? ? ? ? ? ?shuffle_cards () ; ? ?//洗牌
? ? ? ? ? ?start () ; ? ? ? ? ? ? ? ? ? ?//开始
? ? ? ? ? ? ? ?}
? ? ? if(nBtn==102){//
? ? ? ? ? ? setDisplay (1);
? ? ? ? ? ? ? ? }
? ? ? if(nBtn==103){//
? ? ? ? ? ?setDisplay (1);
? ? ? ? ? ? ? ? }
? ? ? if(nBtn==104){//退出程序
? ? ? ? ? clearOutput();
? ? ? ? ? cs.ClearDraw (0,src);
? ? ? ? ? setDisplay (0);
? ? ? ? ? exit (0);
? ? ? ? ? ? ? ?}
? ? ?if(nBtn==105){//@About
? ? ? ? ? ? setDisplay (1);
? ? ? ? ? ? drawcover ();
? ? ? ? ? ? ? ? ?}
}//myToolBar ()


//纸牌游戏《摸鱼》V.1.1.0 ? 设计制作
// 2022年10月9日完成于上海

?

//**** End ****

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2022-10-17 13:05:24  更:2022-10-17 13:07:23 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/17 5:57:55-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码