基于VUE实现的餐厅经营游戏项目源码

2024-04-04 15:36

本文主要是介绍基于VUE实现的餐厅经营游戏项目源码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

WebMOOC 餐厅游戏

项目介绍

实现了一个类游戏的餐厅经营模拟,涉及的前端知识有移动端 HTML 页面布局及样式实现。实现了厨师、顾客等角色的关键操作,完成从顾客等位、点菜、烹饪、用餐、支付的一系列状态变更的数据、信息、交互、展现的变化及处理。

项目效果图

项目中角色的状态介绍:

  • 厨师的状态

状态名称状态描述
free未开工,等待顾客点菜
working已接单,正在做菜
speeding被顾客疯狂点击,加速做菜一段时间
complete完成当前菜的制作,等待客人确认

在这里插入图片描述

  • 顾客的状态

状态名称状态描述
waiting位于等待队列,等待就坐
free当前座位没有人(属于餐厅内座位的状态)
siting已下单,等待厨师接单并制作
eating正在进食
appease所有菜都超时,需要安抚后离开
pay点的菜已经吃完,准备结账

在这里插入图片描述

  • 食物的状态

状态名称状态描述
waiting顾客已下单,等待厨师接单
doing厨师已接单,正在做菜
completed厨师已做完,等待顾客接单
eating正在被顾客食用
eatup已被顾客吃完
destroy等待时间已超时

在这里插入图片描述

部分游戏设定:

需求文档中的内容基本全部完成,这里介绍一些比较重要的部分和自设定的部分。

时间设定

  • 每周7天,每天6小时,每小时30秒

  • 头部的时间栏背景色设为动态变化的,用来提示距离下一天的时间。

  • 每小时结束时自动收集还未主动收集的金币,并将顾客请走。

  • 每一天结束时自动安抚还未主动安抚的顾客,并将顾客请走。

  • 每周结束后自动结算厨师工资,每天¥20,若周内某天没有工作,则当天没有工资(万恶的资本家!)。

顾客设定

  • 顾客从预先设定的18个候选顾客中随机产生。

  • 游戏开始一秒后会来第一个顾客,随后每隔三秒会随机产生一名顾客,顾客可能来,也可能不来。

  • 每个顾客每天只能来餐厅一回。等待队列最长为5个,顾客到了之后若等待人数超过5人,则会离开,今天之内不会再来。

  • 点击等待队列后顾客立即从队列中去除,先出现菜单栏,点菜之后就坐。

厨师设定

  • 厨师开始做菜时,减去做菜的成本,当成本大于现有现金时,显示为负值

  • 解雇厨师时,支付厨师¥140

  • 厨师做好菜后给顾客上菜,如果该顾客等待已经超时,则等待5秒,若还是没有其他顾客点这个菜,就将这个菜作废掉,进入下一个状态。

  • 顾客点击厨师头像可以加速当前菜的制作,同时厨师背景发生改变,一段时间后变回来,每个顾客最多只能让同一个厨师加速一次

食物设定

  • 食物的价格和和成本都是预先设定的,各不相同,每个菜成本大约为价格的一半。

  • 顾客食用食物的速度也不相同,但比等待食物的速度要快。

  • 顾客用餐是串行的,只有完成一个菜的用餐才会进行下一个菜,用餐顺序按上菜顺序进行。

优化及适配

  1. 已在谷歌浏览器和vivo z3真机中做过测试,显示效果良好
  2. 项目用vue框架并使用vue-cli脚手架进行开发,使用vuex进行全局状态管理,并使用Apache2在远程服务器上进行了部署上线。
  3. 背景图进行了压缩,最终大小只有80k左右

完整项目源码下载地址:基于VUE实现的餐厅经营游戏项目源码

这篇关于基于VUE实现的餐厅经营游戏项目源码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/876170

相关文章

Nginx 配置跨域的实现及常见问题解决

《Nginx配置跨域的实现及常见问题解决》本文主要介绍了Nginx配置跨域的实现及常见问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来... 目录1. 跨域1.1 同源策略1.2 跨域资源共享(CORS)2. Nginx 配置跨域的场景2.1

Python中提取文件名扩展名的多种方法实现

《Python中提取文件名扩展名的多种方法实现》在Python编程中,经常会遇到需要从文件名中提取扩展名的场景,Python提供了多种方法来实现这一功能,不同方法适用于不同的场景和需求,包括os.pa... 目录技术背景实现步骤方法一:使用os.path.splitext方法二:使用pathlib模块方法三

CSS place-items: center解析与用法详解

《CSSplace-items:center解析与用法详解》place-items:center;是一个强大的CSS简写属性,用于同时控制网格(Grid)和弹性盒(Flexbox)... place-items: center; 是一个强大的 css 简写属性,用于同时控制 网格(Grid) 和 弹性盒(F

CSS实现元素撑满剩余空间的五种方法

《CSS实现元素撑满剩余空间的五种方法》在日常开发中,我们经常需要让某个元素占据容器的剩余空间,本文将介绍5种不同的方法来实现这个需求,并分析各种方法的优缺点,感兴趣的朋友一起看看吧... css实现元素撑满剩余空间的5种方法 在日常开发中,我们经常需要让某个元素占据容器的剩余空间。这是一个常见的布局需求

CSS Anchor Positioning重新定义锚点定位的时代来临(最新推荐)

《CSSAnchorPositioning重新定义锚点定位的时代来临(最新推荐)》CSSAnchorPositioning是一项仍在草案中的新特性,由Chrome125开始提供原生支持需... 目录 css Anchor Positioning:重新定义「锚定定位」的时代来了! 什么是 Anchor Pos

CSS中的Static、Relative、Absolute、Fixed、Sticky的应用与详细对比

《CSS中的Static、Relative、Absolute、Fixed、Sticky的应用与详细对比》CSS中的position属性用于控制元素的定位方式,不同的定位方式会影响元素在页面中的布... css 中的 position 属性用于控制元素的定位方式,不同的定位方式会影响元素在页面中的布局和层叠关

HTML5 getUserMedia API网页录音实现指南示例小结

《HTML5getUserMediaAPI网页录音实现指南示例小结》本教程将指导你如何利用这一API,结合WebAudioAPI,实现网页录音功能,从获取音频流到处理和保存录音,整个过程将逐步... 目录1. html5 getUserMedia API简介1.1 API概念与历史1.2 功能与优势1.3

Java实现删除文件中的指定内容

《Java实现删除文件中的指定内容》在日常开发中,经常需要对文本文件进行批量处理,其中,删除文件中指定内容是最常见的需求之一,下面我们就来看看如何使用java实现删除文件中的指定内容吧... 目录1. 项目背景详细介绍2. 项目需求详细介绍2.1 功能需求2.2 非功能需求3. 相关技术详细介绍3.1 Ja

springboot项目中整合高德地图的实践

《springboot项目中整合高德地图的实践》:本文主要介绍springboot项目中整合高德地图的实践,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一:高德开放平台的使用二:创建数据库(我是用的是mysql)三:Springboot所需的依赖(根据你的需求再

使用Python和OpenCV库实现实时颜色识别系统

《使用Python和OpenCV库实现实时颜色识别系统》:本文主要介绍使用Python和OpenCV库实现的实时颜色识别系统,这个系统能够通过摄像头捕捉视频流,并在视频中指定区域内识别主要颜色(红... 目录一、引言二、系统概述三、代码解析1. 导入库2. 颜色识别函数3. 主程序循环四、HSV色彩空间详解