【教程】使用BitmapData来管理和进行纸牌游戏【2】

21点扑克牌游戏(C#源码) 立即下载

导读:


还记得前几天说过的用Bitmap来管理纸牌游戏的帖子嘛,作者又发出了他最近的代码,介绍如下



  At the moment the prototype has all messages and a game over screen with the score recap.
  Now I want to include Kongregate's highscores APIand then I'll releae the complete tutorial.


到现在为止,纸牌游戏的内容便告一段落了。下面我们将发布完整的教程,下面是代码
  Meanwhile, here it is the code:
  ACTIONSCRIPT:
  importflash.display.BitmapData
  importflash.geom.Rectangle
  importflash.geom.Point
  importflash.filters.DropShadowFilter
  importflash.filters.GlowFilter
  varcard_shadow:DropShadowFilter = newDropShadowFilter(4, 45, 0x000000, .5, 4, 4, 1, 3, false, false, false)
  vartext_glow:GlowFilter = newGlowFilter(0x000000, .6, 4, 4, 2, 3, false, false)
  big_picture = BitmapData.loadBitmap("cardz")
  _root.attachMovie("table", "table", _root.getNextHighestDepth())
  _root.createEmptyMovieClip("game", _root.getNextHighestDepth())
  game.attachMovie("higher", "higher", game.getNextHighestDepth())
  game.attachMovie("lower", "lower", game.getNextHighestDepth())
  game.createEmptyMovieClip("big_pic_obj", game.getNextHighestDepth())
  big_pic_obj.attachBitmap(big_picture, game.getNextHighestDepth())
  big_pic_obj._visible= false
  sequence = newArray()
  Array.prototype.shuffle= function(){
  for(x=0x<52x++){
  varfrom = Math.floor(Math.random()*52)
  varto = this[x]
  this[x]= this[from]
  this[from]= to;
  }
  }
  for(x=0x<52x++){
  card = game.createEmptyMovieClip("small_pic_obj_"+x, game.getNextHighestDepth())
  sequence[x]= x;
  small_picture = newBitmapData(79, 123)
  card.attachBitmap(small_picture, game.getNextHighestDepth())
  small_picture.copyPixels(big_picture, newRectangle(0+(x%13)*79, 0+Math.floor(x/13)*123, 79, 123), newPoint(0, 0))
  card._visible= false
  card.filters= newArray(card_shadow)
  card.onEnterFrame= function(){
  switch(this.action){
  case"come":
  this._x+= 40
  if(this._x>210){
  this._x= 210
  this.action= "stay"
  if(cards_drawn>1){
  game.ok_ko._visible= true
  }
  }
  break
  case"move":
  this._x+= 20
  if(this._x>310){
  this._x= 310
  this.action= "dissolve"
  }
  break
  case"dissolve":
  this._alpha-= 4
  game.lap_score._alpha-= 4
  if(this._alpha<0){
  can_draw = true
  game.ok_ko._visible= false
  if(cards_drawn == 52){
  endgame()
  }
  this.removeMovieClip()
  }
  break
  }
  }
  }
  game.attachMovie("ok_ko", "ok_ko", game.getNextHighestDepth(), {_x:250, _y:230, _visible:false})
  game.attachMovie("score", "score", game.getNextHighestDepth(), {_x:0, _y:140})
  game.attachMovie("lap_score", "lap_score", game.getNextHighestDepth(), {_x:-50, _y:0, _alpha:0})
  game.score.filters= newArray(text_glow)
  game.lap_score.filters= newArray(text_glow)
  sequence.shuffle()
  cards_drawn = 0
  points = 0
  can_draw = true
  draw_card()
  game.higher.onRelease= function(){
  if(can_draw){
  can_draw = false
  higher = true
  draw_card()
  }
  }
  game.lower.onRelease= function(){
  if(can_draw){
  can_draw = false
  higher = false
  draw_card()
  }
  }
  functiondraw_card(){
  game.ok_ko.gotoAndStop(2)
  lap = 0
  if(((sequence[cards_drawn]%13)<=(sequence[cards_drawn-1]%13)and(!higher))or ((sequence[cards_drawn]%13)>=(sequence[cards_drawn-1]%13)and(higher))){
  game.ok_ko.gotoAndStop(1)
  game.lap_score.lap_text.textColor= 0x40ff40;
  if(cards_drawn>0){
  if(!higher){
  lap = 13-(sequence[cards_drawn-1]%13)
  }else{
  lap = sequence[cards_drawn-1]%13+1
  }
  }
  }else{
  lap = -5
  game.lap_score.lap_text.textColor= 0x900000;
  }
  game.lap_score.lap_text.text= lap;
  if(cards_drawn>0){
  game.lap_score._alpha= 100
  }
  points += lap;
  game["small_pic_obj_"+sequence[cards_drawn]]._x= 0
  game["small_pic_obj_"+sequence[cards_drawn]]._y= 10
  game["small_pic_obj_"+sequence[cards_drawn]]._visible= true
  game["small_pic_obj_"+sequence[cards_drawn]].action= "come"
  game["small_pic_obj_"+sequence[cards_drawn-1]].action= "move"
  cards_drawn++;
  game.score.textscore.text= "Cards left: "+(52-cards_drawn)+" - Score: "+points;
  }
  functionendgame(){
  game.removeMovieClip()
  _root.attachMovie("game_over","game_over",_root.getNextHighestDepth())
  game_over.gameovertext.filters= newArray(text_glow)
  _root.game_over.gameovertext.text= "Your score:/n"+points;
  }
  and this is the result
  When it's game over, at the moment you must reload the page to play again. How much did you score?
  Download the source code, and wait for the full tut...
  >>Flash Templatesprovided by Template Monster are pre-made web design products developed using Flash technology.
  They can be easily customized to meet the unique requirements of your project.


【译者注:这里本来是有一个FLASH的,但是对剪影如何转载FLASH 内容不慎名了,好的是顺着链接也很容易找到了,怎么样,虽然游戏不怎么样,但是这么华丽的UI是不是也为其增添了几分趣味呢?】
  7 Comment(s)
  Marukomu| Dec 28, 2007| Reply
  Good stuff! This is great for work. I think I’m going rebuild one for my wife.
  i scored 74 :P
  I’m the recordman:
  90!
  Awesome!!! 69 btw *_^
  haha 104 winner :D
  54! hurray!!
  limpeh| Dec 29, 2007| Reply
  This game is not bad, but after some time, it’s quite boring since all you need to do is just ‘guessing’. (btw, I got 91)

本文转自
http://www.emanueleferonato.com/2007/12/28/using-bitmapdata-to-manage-a-deck-of-cards-part-2/

GD32F103程序烧录全攻略:从SWD到串口的实战指南 本文提供了GD32F103微控制器程序烧录的全面实战指南,详细介绍了SWD、JTAG和串口(ISP)三种主流下载方式。文章重点解析了在Keil MDK中使用ST-Link进行SWD下载的完整步骤,包括硬件连接、软件配置和Flash算法设置,并针对烧录过程中的常见问题提供了实用的排坑解决方案,帮助开发者高效完成程序部署。 阅读详情

相关推荐

深度学习中的注意力机制

最近两年,注意力模型(Attention Model)被广泛使用在自然语言处理、图像识别及语音识别等各种不同类型的深度学习任务中,是深度学习技术中最值得关注与深入了解的核心技术之一。本文以机器翻译为例,深入浅出地介绍了深度学习中注意力机制的原理及关键计算机制,同时也抽象出其本质思想,并介绍了注意力模型在图像及语音等领域的典型应用场景。

优快云人工智能 4万+

2020牛客寒假算法基础集训营2 F.拿物品

F.拿物品 题目链接-拿物品 解题思路 贪心,最优的策略就是自己多拿且让对方少拿 假设牛牛最后得分为N,牛可乐为M 如果 牛牛的一个物品与 牛可乐的一个物品交换,则 m=N−a1+a2,m=M+b1−b2 对于牛牛目标是最大化n-m,所以当n-m>N-M时会更优 可列不等式N-a1+a2-(M+b1-b2)>N-M,解得a2+b2>b1+b2 对于牛可乐也一样,所以...

Fiveneves的博客 197

避坑指南:STM32移植CanFestival时那些没人告诉你的细节(含TJA1050硬件适配)

本文深入解析STM32移植CanFestival协议栈时的关键细节与TJA1050硬件适配技巧,涵盖AVR残留代码清理、定时器中断优化及CAN通信稳定性提升方案。特别针对TJA1050在特定波特率下的信号畸变问题提供实战解决方案,帮助开发者规避移植过程中的隐形陷阱,实现工业级稳定通信。

work3的博客 762

加法和乘法

加法和乘法 ​ 题目链接:https://ac.nowcoder.com/acm/contest/9983/J ​ 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld 题目描述 有一天牛牛和牛妹在做游戏,规则如下: 桌面上摆着n张纸牌,每张纸牌上写着一个正整数,由牛牛先手轮流执行以下操作: 1.如果桌面上只剩一张纸牌,游戏结束,这张纸牌上的数字如果是奇数则牛牛胜利,反之牛妹胜

Story_1419的博客 2747

水文地质人必备:用Origin Pro 2023手把手教你搞定Piper三线图(附数据模板)

本文详细介绍了如何使用Origin Pro 2023绘制专业级Piper三线图,适用于水文地质数据分析。从数据准备、百分比计算到图表参数设置,提供全流程指导,并附赠数据模板和样式预设文件,帮助用户快速掌握这一水文地球化学分析的核心工具。

weixin_30568591的博客 533

【笔记】2022.6.7 数据分析概论

已完结

SpriteNym的博客 1373

2021-02-17

题目描述 有一天牛牛和牛妹在做游戏,规则如下: 桌面上摆着\mathit nn张纸牌,每张纸牌上写着一个正整数,由牛牛先手轮流执行以下操作: 1.1.如果桌面上只剩一张纸牌,游戏结束,这张纸牌上的数字如果是奇数则牛牛胜利,反之牛妹胜利。 2.2.当前行动玩家选择两张纸牌,设上面的数字分别为X,Y接下来玩家从加法和乘法中选择一个并应用到这两个数字上,得到结果为Z接下来将选择的两张纸牌丢弃,并拿一张新的纸牌放到桌面上,在上面写上Z。 假设双方均以最优策略行动,最后谁会赢? 输入描述: 第一行一个正整数n,代表开

yjxisaac的博客 405

深入解析Android Thermal框架:从应用层到驱动层的温度管理机制

本文深入解析Android Thermal框架的温度管理机制,从应用层到驱动层详细介绍了温度监测、热状态评估和降温策略执行的全过程。通过分层架构解析和关键组件交互,帮助开发者理解Android设备如何实现高效的温度控制,确保硬件安全并优化性能。

weixin_29303701的博客 257

【教程】使用BitmapData来管理和进行纸牌游戏

导读:   I have already published a tutorial about BitmapData in the post Shuffle an image with BitmapData, but this time I want to show you how to manage a deck of cards using BitmapData.   Managing

The Way To Great 788

基于单片机的继电器参数测试系统设计

由于原有测试系统在参数设置上过于单一,在对继电器测试过程中需要多次进行器件连接,导致对其测试准确度下降,会造成继电器的二次损伤,基于单片机研究继电器参数测试系统的设计方法。在硬件设计上,构建二级模式集散控制框架,利用单片机进行数据采集和处理,满足实时继电器参数数据的同步控制;设计双极性反向比例输出电路,分别利用电极电阻对继电器两侧电压进行放大,实现继电器实时电压的检测。实验结果:以两组类型断电器为测试对象,分别连接示波器进行真实数据采集,在本文系统的应用下所得参数测试结果,与真实的数据相一致,具有实际应用效

weixin_45905610的博客 1439

全志V3S嵌入式驱动开发(编译器升级到7.5)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 看过我们文章的朋友都知道,前面为了做v3s的驱动,对linux kernel进行了两次升级。第一次升级时从4.10.y升级到4.14.y,另外一次升级是从4.14.y升级到5.2.y。这中间最主要的原因,就是为了驱动适配的需要,更新的内核可以对硬件驱动有更好的支持,架构也更合理。 如果说内核升级尚且可以理解,那为什么要对编译器升级呢?这里面,最重要的一点就是语言的升

嵌入式-老费,一个分享专业嵌入式知识的blog 1167

简单的纸牌

#include            struct card{    int no;     //牌的序号    int zf;    //牌的状态}card[52];void main(){    int i,j;      printf("52张牌的原状态:/n");for(i=1;i  //给每张牌确定初始序号和状态    {        card[i].no=i;        car

SHINING的博客 1693

SAP S/4HANA 数据 API 化与 MCP 集成全流程实战指南

通过 RAP 发布 OData、利用 Communication Arrangement 打通外网、再在 MCP-server 里封装函数签名,你就能把 S/4HANA 的核心数据安全、标准化地暴露给任意支持 MCP 的大模型。这条链路的每一个环节都由 SAP 与 MCP 社区提供了现成框架,既兼顾了企业合规,也让 LLM 落地更为轻量。期待你在项目里把这些拼图真正串联起来,让业务数据与生成式 AI 碰撞出高价值的火花。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 978

腾讯 纸牌游戏 (排序)

原文链接:https://www.nowcoder.com/test/10611931/summary [编程题] 纸牌游戏 时间限制:1秒 空间限制:32768K 牛牛和羊羊正在玩一个纸牌游戏。这个游戏一共有n张纸牌, 第i张纸牌上写着数字ai。 牛牛和羊羊轮流抽牌, 牛牛先抽, 每次抽牌他们可以从纸牌堆中任意选择一张抽出, 直到纸牌被抽完。 他们的得分等于他们抽到的纸牌数字总和。 现在...

qq_29762941的博客 3062

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

HDU4597:Play Game(记忆化)

Problem Description Alice and Bob are playing a game. There are two piles of cards. There are N cards in each pile, and each card has a score. They take turns to pick up the top or bottom card from

ACM!荣耀之路! 2957

纸牌游戏

本文来自一个实际的学习作业: 整个程序的功能为:1、产生一副扑克牌;2、洗牌,随机混合;3、发牌;4、按照规则玩游戏,知道结束 游戏规则为:将牌布置为12*4的,取出左上角第一个,放在对应数字的列,然后在该列取以一个牌,直到第一列全部为1时游戏结束。 #include "stdafx.h" #include ; #include ; int _tmain(int argc, _TCHAR*

学习使我快乐 1959

一个纸牌游戏的算法

扑克牌A-K,按一定排序后,先把上面一张的置于桌面,然后翻开一张牌。循环到最后一张牌,这时桌面牌是按顺序排列的。 直接上Java实现算法 /** * 纸牌算法 */ private static void CardAlgorithm(){ int cardnum = 12; List cardList = new ArrayList(); while(cardnum >

SJZYLC的专栏 3856

bitmapData打造随机切凹凸拼图效果[附源码下载]

下午没事做,就弄了个随机切拼图效果,还没做判断,只是个切法的计算,稍后整理下就应该是个成品,嘿嘿~原理主要就是用bitmap进行切图,以前都是用遮照做太占资源.效果如下: 主要代码:puzzle.as /* * Puzzle CLASS *  * @ CREATED BY: ycccc8202 * @ PURPOSE: 方便制作拼图游戏 * @ DATE:2007.6....

hgfghwq27 250

图像滤镜艺术---Glow Filter发光滤镜

Glow Filter发光滤镜 Glow Filter发光滤镜是一种让图像产生发光效果的滤镜,它的实现算法如下: 1,对原图P进行高斯模糊得到图像A; 2,将P和A进行“叠加”图层混合处理,公式如下: Result(x,y) = ((basePixel(x,y) (x,y) * basePixel(x,y) / 128):(255 - (255 - mixPixel(x,y)) * (

Trent1985的专栏 4483

翻纸牌 高校俱乐部 英雄会 csdn

题目描述 有一种纸牌游戏,很有意思,给你N张纸牌,一字排开,纸牌有正反两面,开始的纸牌可能是一种乱的状态(有些朝正,有些朝反),现在你需要整理这些纸牌。但是麻烦的是,每当你翻一张纸牌(由正翻到反,或者有反翻到正)时,他左右两张纸牌(最左边和最右边的纸牌,只会影响附近一张)也必须跟着翻动,现在给你一个乱的状态,问你能否把他们整理好,使得每张纸牌都正面朝上,如果可以,最少需要多少次操作。 ...

weixin_30642029的博客 159

【Unity知识速递】第7期 Unity 6.6 深度解析:WebGPU 正式版与 WebAssembly64,Web 游戏的内存革命

如何启用 Wasm64?需要注意的是,Wasm64 需要浏览器支持 Memory64 提案,目前主流浏览器的最新版本都已支持。一句话总结: Unity 6.6 用 WebGPU 转正、Wasm64 16GB 内存和渐进式加载三连击,将 Web 游戏的体验天花板又往上推了一大截——Web 平台不再是"妥协版",正在成为真正的一等公民。Unity 6.6 新增了 WebAssembly64(Wasm64) 构建选项,这可能是本次更新中对 Web 游戏开发者影响最大的一项升级。

crystal_WJT的博客 435
上一篇: 【来自JOVEY】Delegate 类的用法
下一篇: 命令行的妙用
zinking3
博客等级 码龄20年 262粉丝 215原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值