羊了个羊区块链闯关游戏系统开发模式代码实现技术介绍

简介: 羊了个羊区块链闯关游戏系统开发模式代码实现技术介绍

羊了个羊-gamefi 是一款基于 Web3 和 BNBChain 开发的区块链游戏。游戏玩法与Web2版本的一样,保持了三消游戏的特性。并创新性的加入了 Play2Earn 的机制,区块链游戏I34-系统I633-开发5319搭建,将游戏的所有收入公平的分配给所有玩家,从而实现游戏生命周期的长久维持!

实现概要

游戏的整体很简单,但其中有几个实现的重点需要注意:

牌堆数据结构的实现
如何检测和更新可拾取的牌
先做个小定义,一个牌堆中可被拾取的牌以下将简称其为:“窗口牌”。
牌堆模式A
A.png

牌堆模式B
B堆牌.png

牌堆模式C
堆牌C.png

02 牌堆的数据结构
将其定义为MContainerBase基类

MContainerBaseextends Node2Dclass_name MContainerBase

func _ready:add_to_group(name)add_to_group("game")varMask = FileReader.read(mask_file,null)box.resize(size_x)fori inrange(size_x):box[i]= []box[i].resize(size_y)forj inrange(size_y):boxi= []boxi.resize(size_z)fork inrange(size_z):ifMask== nullor Maski == 1:boxi[k] = add_tile(i,j,k,get_parent.distribute_face)else:boxi[k] = null

forx inrange(size_x):fory inrange(size_y):forz inrange(size_z):check_is_on_top(x,y,z)

最基础的牌堆就是一个 xyz的三维数组,我们可以使用一切方法构造想要的排队形状:柱形、条形、甚至金字塔形。这都不会影响后面程序的实现。

03 如何检测和更新可拾取的牌

三种牌堆模式分别派生自MContainerBase,并对应着如下三种检测方式:

牌堆模式A:仅检测自己正上方是否有牌

1Cover1extends MContainerBase

funccheck_is_on_top(x,y,z):ifhas_tile(x,y,z):ifnot has_tile(x,y,z + 1) :(boxx[z] asMTile).set_is_on_top(true)

牌堆模式B:检测自己上方两方位是否有牌

1 Cover 2extends MContainerBase

func check_is_on_top(x,y,z):if has_tile(x,y,z):if z%2 == 0:if not has_tile(x,y,z + 1) and not has_tile(x - 1 ,y,z + 1):(boxx[z] as MTile).set_is_on_top(true)else:if not has_tile(x,y,z + 1) and not has_tile(x + 1 ,y,z + 1):(boxx[z] as MTile).set_is_on_top(true)

牌堆模式C:检测自己上方四方位是否有牌

1 Cover 4extends MContainerBase

func check_is_on_top(x,y,z):if has_tile(x,y,z):if z%2 == 0:if not has_tile(x,y,z + 1) and not has_tile(x - 1 ,y,z + 1) and not has_tile(x,y - 1 ,z + 1) and not has_tile(x - 1,y - 1,z + 1):(boxx[z] as MTile).set_is_on_top(true)else:if not has_tile(x,y,z + 1) and not has_tile(x + 1 ,y,z + 1) and not has_tile(x,y + 1 ,z + 1) and not has_tile(x + 1,y + 1,z + 1):(boxx[z] as MTile).set_is_on_top(true)

04 如何生成新关卡

简单了解游戏规则后,我们就不难推导出,每个关卡能被通过的一个必要条件就是每一种图案的总数,必须能被3整除。实现方法如下:
vartiles = []exportvar initial_tiles = {0:10,1:10,2:10,3:10,4:10,5:10,6:10,7:10,8:10,9:10,10:10,11:10,12:10,13:10,14:10,15:10}
func_init:forkey in initial_tiles:varnum = initial_tiles[key]*3fori in range(0,num):tiles.append(key)tiles.shuffle

其中字典initial_tiles 的key对应着每一种图案,后面的value对应着这一关该图案出现的“对数”(此处1对等于3个)。按照value乘以3的数量存入数组tiles(下文称之为:待发牌池),然后把待发牌池中的元素打乱顺序,等待“发牌”。

05 洗牌道具的实现

洗牌的实现原理很简单,把当前桌面的牌记录在一个数组tiles中,当需要洗牌时,先打乱一下数组中牌的顺序,然后让桌面上每一张牌到tiles中重新取一个值。再来个眼花缭乱点的动画,还真挺像那么回事儿。
funcshuffle_tiles:tiles.shuffletiles_index = -1
funcredistribute_face-> int:tiles_index += 1returntiles[tiles_index]

相关文章
|
17天前
|
供应链 安全 分布式数据库
探索区块链技术在供应链管理中的应用
【10月更文挑战第21天】 本文深入探讨了区块链技术如何在供应链管理中发挥关键作用,通过具体案例分析,揭示了区块链提高透明度、降低成本和增强安全性的潜力。文章首先概述了区块链技术的基本原理及其对传统供应链模式的挑战,接着详细讨论了区块链如何在不同供应链环节中实施,并分析了其带来的变革。最后,文章提出了企业在采纳区块链技术时可能面临的挑战和应对策略,为供应链管理者提供了宝贵的参考。
|
27天前
|
存储 安全 物联网
未来已来:区块链技术在物联网与虚拟现实中的应用
随着科技的不断进步,新兴技术如区块链、物联网(IoT)和虚拟现实(VR)正在逐渐改变我们的生活和工作方式。本文将探讨这些技术的发展趋势和应用场景,以及它们如何相互融合,为我们带来更便捷、安全和沉浸式的体验。
|
2月前
|
存储 供应链 分布式数据库
深入理解区块链技术:原理、应用与挑战
本文旨在探讨区块链技术的基本原理、主要应用及其面临的挑战。通过分析区块链的分布式账本技术、加密算法和共识机制,我们揭示了其如何在无需中心化权威的情况下确保数据的不可篡改性和透明性。此外,文章还讨论了区块链在金融、供应链管理、智能合约等领域的应用案例,并指出了当前区块链技术面临的可扩展性、隐私保护和法律监管等挑战。通过对这些内容的深入分析,我们希望为读者提供一个全面而深入的区块链技术概览。
125 16
|
28天前
|
存储 供应链 算法
深入探索区块链技术:原理、应用与未来展望
本文将带你深入了解区块链技术的基本原理,探讨其在金融、供应链、医疗等多个领域的应用案例,并展望其未来的发展趋势。通过本文,你将对区块链技术有一个全面的认识,理解其背后的技术逻辑和应用场景。
|
30天前
|
存储 供应链 监控
深入探索区块链技术在供应链管理中的应用####
本文旨在探讨区块链技术如何革新供应链管理,通过分析其核心特性与实际案例,揭示该技术如何增强透明度、提升效率并降低成本。我们将从区块链的基本原理入手,逐步剖析其在供应链各环节中的具体应用,最终展望其未来发展趋势。 ####
73 3
|
1月前
|
供应链 物联网 区块链
未来技术的脉动:探索区块链、物联网与虚拟现实的融合趋势
本文深入探讨了区块链技术、物联网(IoT)和虚拟现实(VR)这三个领域的最新发展趋势,以及它们在现代科技生态中的交互作用。通过分析这些技术的独特优势和面临的挑战,我们揭示了它们如何共同塑造未来的技术景观,特别是在数据安全、智能设备管理和沉浸式体验方面。文章还讨论了这些技术融合后可能带来的社会和文化影响,以及它们如何推动创新和促进经济增长。
56 3
|
2月前
|
存储 供应链 区块链
探索区块链技术在供应链管理中的应用
本文旨在探讨区块链技术如何在供应链管理中提供透明性、安全性和效率,以及它如何帮助解决传统供应链所面临的挑战。通过分析区块链的工作原理及其在不同行业案例中的应用,本文揭示了这一技术革新对现代供应链管理可能产生的深远影响。
|
存储 前端开发 安全
DAPP区块链商城系统开发(方案逻辑)丨区块链DAPP商城系统开发(案例设计)/开发项目/源码部署
 区块链(Blockchain)是一种由多方共同维护,使用密码学保证传输和访问安全,能够实现数据一致存储、难以篡改、防止抵赖的记账技术,也称为分布式账本技术(Distributed Ledger Technology)。从本质上看,区块链是通过去中心化和去信任化,集体维护、分布式存储的可靠数据库。
|
开发框架 安全 前端开发
区块链财务管理平台如何开发?区块链财务管理平台开发源码规则解析
开发一个区块链财务管理平台需要多个方面的技术和知识,以下是一些可能的步骤和考虑因素:
|
存储 安全 区块链
区块链游戏系统开发(开发详细)/案例开发/设计功能/逻辑方案/源码平台
  区块链游戏系统开发是一个复杂而精密的过程。首先,需要进行需求分析和规划,确定游戏系统的功能和特性。然后,进行技术选型和架构设计,选择适合的区块链平台和开发工具。接下来,进行系统的搭建和编码,实现游戏逻辑和用户交互功能。最后,进行测试和优化,确保系统的稳定性和性能。

热门文章

最新文章