C语言纸牌洗牌算法
在本站看了一些C语言纸牌洗牌的算法,此不置评。仅提供下面的简洁算法供大家参考。
程序设计解决问题的方法就是算法,也就是功能函数 function。
源码可参考本人在本站的博文《纸牌游戏设计制作》。
shuffle_cards (){
//** 洗牌和显示牌张: 算法设计 **************
t$="游戏开始 >>> 发牌" ;
sx=50; sy=50; tsize=30;
print_t (); //界面定位打印提示文字
//洗牌算法,牌序列 pnum ( 0 to 51 )
for (i=0;i<=51;I++){
ResetPiece: //已生成牌有相同则重新生成
Rn=random()*52; //随机洗牌
num=(int )(Rn);
pnum[i]=num ;
for (k=0;k<i; k++){ //检测已生成牌张是否有相同
if (num==pnum[k]) goto ResetPiece ; }
}
for (k=0;k<=51;k++){ //显示牌背面图案
//要显示牌面 cardback ( ) 改为 showcard ( )
px=(k-k/13*13)*50+30;
py=k/13*120+120;
cardback (); //draw cards back picture
}
cs.Update (); //屏幕显示更新
}//洗牌和显示 算法设计