33、创建基于网页的《末日骰子》图形化版本及优化玩法

创建基于网页的《末日骰子》图形化版本及优化玩法

1. 《末日骰子》现有服务器的局限性及改进方向

目前的 dod-request-handler 存在一些局限性,它无法支持多个玩家同时进行不同游戏,若多个玩家同时尝试玩不同游戏, dod-request-handler 会产生混淆。不过,将其扩展为支持多个并行游戏的真正的 Web 服务器并非难事。具体操作如下:
- 从 Web 服务器作为参数传递的头部数据中提取会话信息。
- 将所有引用的变量(如 *cur-game-tree* )存储在一个哈希表中,使用会话信息作为键。这样每个玩家都将拥有自己的游戏树,引擎就能并行处理多个游戏。不过,实现这个多游戏版本的 dod-request-handler 需自行完成。

此外, dod-request-handler 还存在一个安全问题,它使用 read-from-string 函数从 URL 读取信息,该函数可能会被有经验的恶意 Lisp 程序员利用来运行任意代码。

2. 游戏初始化及相关功能函数
  • 初始化新游戏 :使用 web-initialize 函数初始化游戏引擎以开始新的《末日骰子》游戏。
(defun web-initialize ()
  (setf *from-tile* nil)
  (
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值