跳至主要內容

Davinci

LPrincess大约 3 分钟tomcatservletJava Web

课题介绍

达芬奇密码桌游是一款流行的逻辑推理类游戏,玩家通过推理和猜测对手的牌面来赢得游戏。随着网络技术的发展,传统的桌面游戏逐渐向网络化、数字化方向转变,网页版的桌游可以突破时间和空间的限制,使玩家能够更加方便地进行游戏。本课题旨在利用Spring MVC框架开发一个网页版的达芬奇密码桌游单机版,提升游戏的可访问性和用户体验。

实现以下功能:

  • 用户管理:用户可以注册、登录个人信息。
  • 游戏逻辑:实现达芬奇密码桌游的核心规则,包括牌的抽取、放置、猜测等。
  • 游戏界面:设计并实现友好的用户界面,使玩家能够直观、便捷地进行游戏操作。

课题介绍

分析与设计

游戏初始化:

卡牌类:

Value类型功能
WList<String>记录白色牌堆的牌
BList<String>记录黑色牌堆的牌
ComputerstatesInt[]记录电脑获得的牌
playerstatesInt[]记录玩家获得的牌
  • 开局初始化双方牌堆:通过将牌堆随机打乱的方式Collections.shuffle(),后台分别从黑白牌堆各取两张一共4张分配到玩家和电脑的牌库中;
  • 游戏开始:整个游戏过程中玩家一共有ph=7次机会可以猜电脑方任意位置任意牌,点击就可以猜测。玩家可以通过已猜出的牌和自己的牌堆来猜测电脑方牌
  • 游戏过程中可以进行以下操作:
    • 从黑/白卡牌堆中抽取一张卡牌
    • 猜测电脑方卡牌(若猜测正确,猜中的牌会显示并标红色框)
    • 游戏卡牌堆后台自动排序从左到右从大到小,同样值黑<白
  • 游戏结果:
    • 当牌库中的牌被抽光,电脑方的牌还有未被猜出时,挑战失败
    • 当玩家hp值 < 0的时候,挑战失败
    • 当电脑方牌都被玩家猜出时,挑战成功

遇到的问题和解决方法

  1. 在game.jsp游戏过程中,需要界面与后台服务器之间的交互,动画,通过查阅参考资料等,利用js和Ajax来实现前端与后端之间的交互。

• 使用AJAX发送POST请求来更新服务器端的卡片状态。

• 使用XMLHttpRequest对象来发送异步请求,并处理服务器响应。

使用JavaScript来动态更新页面内容,如高亮显示猜中的卡片,减少HP,检查所有牌是否被猜中。

函数功能
drawCard(color)处理抽牌操作,提交表单到服务器
guessCard(card)处理猜牌操作,弹出提示框获取用户输入,判断猜测结果并更新hp且高亮显示猜对的牌
checkAllCardsGuessed()检查所有牌是否都被猜中,如果是,则提示玩家获胜,并重置游戏
  1. 在card卡堆当中如何去模拟随机抽卡的随机性:

分别建立w和b的List<String>列表

再分别创建玩家和电脑的卡牌数组:0-11作为w0-w11,12-23作为b0-b11

通过Collections.shuffle(w);随机打乱w,b牌堆里的牌

在抽取牌堆是模拟队列的方式,从卡片列表的开头(队首)移除并返回一个元素

上次编辑于:
贡献者: L-mj0