js实现翻牌游戏

在我的项目中需要在里面添加一个翻牌游戏,就研究了一下,在这里只实现了基本的效果。不多说,和大家分享一下。

说到翻牌游戏,大致分为以下几个步骤:

   绘制正反面卡牌-------------->洗牌----------------------->翻牌------------------->翻牌判断

这里面应用的一些图片,,,,,,额额额额,,,大家就自己下两个试试,这里也提供不了。。。嘿嘿

       1.绘制正反面卡牌

function make_deck()//生成卡组并绘制
			{
				var i;//
				var a_card;//a组卡牌容器
				var b_card;//b组卡牌容器
				var a_pic;//a组卡牌图片
				var b_pic;//b组卡牌图片
				var cx = first_x;//初始坐标X=50
				var cy = first_y;//初始坐标Y=10
				for ( i = 0; i < pairs.length/2; i++) {
					
                          /*Canvas绘制图片 
                           * var c=document.getElementById("myCanvas");
                           var cxt=c.getContext("2d");
                           var img=new Image()
                           img.src="flower.png"
                           cxt.drawImage(img,0,0);*/
                     
					a_pic = new Image();
					a_pic.src = pairs[i][0];
					//绘制卡牌a组
					a_card = new Card(cx, cy, card_width, card_height, a_pic, i);//给卡牌属性即卡牌对象生成了,并绘制了背面
					deck.push(a_card);//将a组卡牌装进数组deck[]
				
					//绘制与之a组卡牌面相同的b组
					b_pic = new Image();
					b_pic.src = pairs[i][1];
					b_card = new Card(cx, cy + card_height + margin, card_width, card_height, b_pic, i);
					deck.push(b_card);// 将b组卡牌装进数组deck[]
					cx = cx + card_width  + margin;
					//cy = cy + card_height + margin; 
					//note
					a_card.draw();
					b_card.draw();
				}
				//绘制后两排
				cx=first_x;
				cy=first_y+card_height*2+margin*2;
				for ( i = 4; i < pairs.length; i++) {
					a_pic = new Image();
					a_pic.src = pairs[i][0];
					//绘制卡牌a组
					a_card = new Card(cx, cy, card_width, card_height, a_pic, i);
					deck.push(a_card);
				
					//绘制与之a组卡牌面相同的b组
					b_pic = new Image();
					b_pic.src = pairs[i][1];
					b_card = new Card(cx, cy + card_height + margin, card_width, card_height, b_pic, i);
					deck.push(b_card);// 
					cx = cx + card_width + margin;
					//cy = cy + card_height + margin; 
					//note
					a_card.draw();
					b_card.draw();
				}
			}

2.洗牌

function shuffle()//洗牌
			{
				var i;
				var j;
				var temp_info;
				var temp_img;
				var deck_length = deck.length;
				var k;
				for ( k = 0; k < 9 * deck_length; k++) {
					i = Math.floor(Math.random() * deck_length);//0-16
					j = Math.floor(Math.random() * deck_length);//0-16
					temp_info = deck[i].info;//第1张
					temp_img = deck[i].img;//第1张图片
					deck[i].info = deck[j].info;
					deck[i].img = deck[j].img;
					deck[j].info = temp_info;
					deck[j].img = temp_img;
				}
			}

3.翻牌判断

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值