COMP284 代做、Java 语言编程代写
Assignment 2: JavaScript
1/6
Assignment 2: JavaScript
100 Points Possible
2024/1/22 to 2024/6/30
Add comment
Details
COMP284 Scripting Languages (2023-24) --
Assignment 2: JavaScript
Your task for this assignment consists of two parts:
1. Develop a JavaScript program that provides the functi onality stated in the Requirements
secti on (htt ps://canvas.liverpool.ac.uk/courses/73095/assignments/265339) below.
2. Make the JavaScript program that you have created accessible and usable via the URL
https://student.csc.liv.ac.uk/~<your user name>/game.html
taking care of the requirements set out in Submission and Setup secti on
(htt ps://canvas.liverpool.ac.uk/courses/73095/assignments/265339) below.
Requirements
The JavaScript program implements a simple game that consists of three stages, setup, play and end.
During the play stage the game proceeds in rounds. The game is played on a grid with 10 x 10 cells.
It involves a spaceship that is controlled by the user, a couple of roboti c spaceships that are
controlled by the computer (that is, your program), asteroids, and (initi ally inacti ve) mines. The user
and your program are the two players of the game. All spaceships can move around on the grid and
the roboti c spaceships hunt the user's spaceship; the user's spaceship tries to avoid getti ng caught
while trying to acti vate all the mines on the grid, possibly destroying some or all the roboti c
spaceships in the process.
The game always starts in the setup stage. During that stage the user is shown the grid and can
place four different types of objects on the cells of the grid:
by clicking on a cell and typing the lett er "a", an asteroid is placed on a cell;
by clicking on a cell and typing the lett er "m", a mine is placed on a cell;
by clicking on a cell and typing the lett er "r", a roboti c spaceship is placed on a cell;
by clicking on a cell and typing the lett er "u", the user's spaceship is placed on a cell.
There is no limit on the number of asteroids, mines, and roboti c spaceships, but there is obviously
only one user's spaceship. No grid cell can initi ally contain more than one object. If the user types a
character that is not among "a", "m", "r" and "u", an error message should be shown.
Assignment 2: JavaScript
2/6
In additi on to the grid, there must be a butt on that allows the user to end the setup stage of the
game. If the user tries to end the setup stage of the game without placing the user's spaceship, then
an error message should be shown and the user remains in the setup stage. Otherwise the game
conti nues with the play stage.
At the start and during the play stage, the user is again shown the grid, initi ally with all the objects
that have been placed on the grid during the setup stage, plus additi onal status informati on: The
number of the round currently played, the number of inacti ve mines on the grid, and the number of
roboti c spaceships on the grid. In additi on, there must be butt on that allows the user to end
the play stage at any ti me.
While in the play stage, the game proceeds in rounds, each round starts with the user's turn
followed by the computer's turn. At the start of a round, the number of the round currently played is
increased by one (the first round has the number 1), and the status informati on shown to the user is
updated.
During his/her turn, the user can att empt to move his/her spaceship horizontally or verti cally on the
grid by typing one of four lett ers:
"a" att empts to move the user's spaceship one grid cell to the left ,
"d" att empts to move the user's spaceship one grid cell to the right,
"w" att empts to move the user's spaceship one grid cell up,
"s" att empts to move the user's spaceship one grid cell down.
If the user types any other character, then an error message should be shown, the user's turn does
not end, and the user has the possibility to type another character. If the att empted move would
result in the user's spaceship ending up outside the grid or on a cell occupied by an asteroid, then
the att empt to move fails, the user's spaceship does not move, an error message should be shown,
the user's turn does not end, and the user has the possibility to type another character. Otherwise,
the att empted move is successful and the user's spaceship changes cells:
If the cell to which the spaceship has moved was previously empty, then nothing special happens
and the user's turn is over.
If the user's spaceship ends up on a grid cell that contains an inacti ve mine, then the mine
is acti vated, the number of inacti ve mines shown in the status informati on is reduced by one. The
mine remains acti vated (and in place) for the remainder of the game. If a roboti c spaceship is on a
cell surrounding an acti vated mine, it is immediately destroyed and the number of roboti c
spaceships shown in the status informati on is changed accordingly. The user's turn is then over.
If the user's spaceship ends up on a grid cell that contains an acti vated mine, then nothing
special happens. The user's spaceship and the mine simply coexist on the cell. The user's turn is
over.
If the user's spaceship ends up on a grid cell that contains a roboti c spaceship, then the user's
spaceship is destroyed, and the game proceeds to the end stage.
During the computer's turn your program att empts to move each of the roboti c spaceships in an
order that allows each to move if at all possible. Unlike the user's spaceship, the roboti c spaceships
Assignment 2: JavaScript
3/6
are not only able to move horizontally and verti cally but also diagonally. Just like the user's
spaceship, each roboti c spaceship only moves at most one cell in a turn.
If the user's spaceship is on a grid cell immediately surrounding a roboti c spaceship, then that
roboti c spaceship must move to the cell occupied by the user's spaceship. If the user's spaceship
is on a cell surrounding an acti vated mine, then both the roboti c spaceship and the user's
spaceship are destroyed. Otherwise only the user's spaceship is destroyed. The status
informati on is updated accordingly and the game proceeds to the end stage.
If the user's spaceship is not on a grid cell immediately surrounding a roboti c spaceship, but one
or more of those grid cells contains an inacti ve mine, then the roboti c spaceship must move to
one of those mines, the mine is removed from the grid, the number of inacti ve mines shown in
the status informati on is reduced by one.
If none of the surrounding grid cells contains the user's spaceship nor an inacti ve mine, then a
roboti c spaceship can move to an arbitrary surrounding cell provided that this move does not
take it to a grid cell that is outside the grid or occupied by an asteroid or by another roboti c
spaceship.
If a roboti c spaceship were to move onto a cell surrounding an acti vated mine, then the roboti c
spaceship is destroyed and the number of roboti c spaceships shown in the status informati on is
reduced by one.
A roboti c spaceship is not allowed to stand sti ll if it can move. However, if a roboti c spaceship
cannot move at all, then the computer should simply proceed to the next roboti c spaceship.
Once an att empt has been made to move each of the roboti c spaceships, the computer's turn and
the current round ends, and the status informati on is updated.
The play stage ends if one of the following conditi ons becomes true:
the user ends the play stage (by pressing the butt on provided for that);
the user's spaceship is destroyed;
at the end of a turn there are no roboti c spaceships left on the grid;
at the end of a turn there are no inacti ve mines left on the grid;
neither the user's spaceship nor any of the roboti c spaceships is able to move.
Once the play stage has ended, the game is in the end stage. In the end stage the program
determines the outcome of the game. The outcome is a win for the user if there are no roboti c
spaceships left on the grid but the user's spaceship has survived; the outcome is a win for the
computer if the user's spaceship has been destroyed and at least one roboti c spaceship has
survived; otherwise, the outcome is a draw. The program should display a message indicati ng the
outcome of the game and then stop. During the end stage the program should not react to any user
input or acti ons.
Additi onal Requirements and Comments:
The bulk of your JavaScript code should be in a JavaScript library called game.js . Before
submitti ng your soluti on, you should create a copy of game.js named game.pretty.js in a
directory other than your public_html directory, say, your home directory. Then make the file
game.js indecipherable for humans using the command
Assignment 2: JavaScript
4/6
uglifyjs-3 $HOME/game.pretty.js --mangle --compress > $HOME/public_html/game.js
Make sure that aft er performing this operati on your game sti ll works. Also make sure that
game.pretty.js can only be read by yourself and is not in your public_html directory.
It is possible that during the setup stage the user does not place any mines on the grid. On
entering the play stage your program should recognise that, immediately proceed to
the end stage, and declare the outcome of the game.
It is also possible that during the setup stage the user does not place any roboti c spaceships on
the grid. On entering the play stage your program should recognise that, immediately proceed to
the end stage, and declare the outcome of the game.
It should be possible for the user to see whether a mine is inacti ve or has been acti vated.
Whether the cells surrounding an acti vated mine are visually disti nct is up to you.
You should carefully analyse in which situati ons the user's spaceship and the roboti c spaceships
might not be able to move in order to correctly end the play stage in such situati ons.
Ideally your program would move the roboti c spaceships in such a way that they increase their
chances of destroying the user's spaceship. This could be done by each roboti c spaceship trying
to decrease the distance to the user's spaceship with each move. But you could also implement a
strategy by which the roboti c killer spaceships try to `encircle' the user's spaceship in order to
increase their chances. They could also `guard' one specific inacti ve mine, knowing that the user
must eventually try to acti vate it.
Also, be aware that the requirement that a roboti c spaceship must move if it can, means that it
might have to move onto a cell surrounding an acti vated mine and be destroyed. But if
alternati ve moves exist, then they should be preferred.
JavaScript engines differ from browser to browser. You should make sure that your system works
in all commonly used browsers (e.g., Google Chrome, Microsoft Edge, Mozilla Firefox) and on all
commonly used platf orms (e.g., Linux derivati ves and Microsoft Windows).
Your JavaScript program should only depend on your own code. The use of JavaScript
libraries/frameworks, like jQuery, is not be used.
Your code should follow the COMP284 Coding Standard
(htt ps://canvas.liverpool.ac.uk/courses/73095/files/10520245?wrap=1) . This includes pointi ng out
which parts of your code have been developed with the help of on-line sources or textbooks and
references for these sources. You must also provide references for any language constructs or
functi ons that you have used that were not covered in the lectures.
A program that deals sati sfactorily with these additi onal requirements and comments, in additi on to
providing the basic functi onality required, will receive higher marks.
Submission and Setup
Make game.html, game.js, and other files (but not game.prett y.js) accessible via the departmental
web server so that the game can be played via the URL given at the beginning of the assignment.
This playable version of the game must remain available, working, and unchanged from the ti me of
submission to the end of July 2024.
Assignment 2: JavaScript
5/6
Permissions of the files in your filestore must be such that no other user can view their contents in
the filestore. The permissions on your public_html directory must be such that any user can obtain a
listi ng of its content.
From the files on the departmental server, create a single zip-file named COMP284-2.zip containing
all relevant files (game.html, game.js, game.prett y.js, any CSS file, and local images, but no
directories) and submit it via the departmental submission system
at htt ps://sam.csc.liv.ac.uk/COMP/Submissions.pl?module=comp284
(htt ps://sam.csc.liv.ac.uk/COMP/Submissions.pl?module=comp284) (COMP284-2: JavaScript).
The files submitt ed must be identi cal to those set up on the departmental web server. Furthermore,
no alterati ons are allowed to the latt er aft er files have been submitt ed. If a submitt ed file and the
corresponding file on the departmental web server have different ti mestamps, then the later
ti
mestamp will be used to determine lateness. This applies even if the earlier file is used for marking.
Deadline
The deadline for this assignment is
Thursday, 25 April 2024, 17:00
Earlier submission is possible, but any submission aft er the deadline att racts the standard lateness
penalti es. Please remember that a strict interpretati on of `lateness' is applied by the Department,
that is, a submission a minute aft er the deadline is considered to be a day late. Also remember that
late resubmissions are not allowed.
Assessment
This assignment will address the following learning outcomes of the module:
Develop computer-based or client-side web-based applicati ons using an appropriate scripti ng
language.
This assignment will contribute 50% to the overall mark of COMP284. Failure on this assignment
may be compensated by higher marks on other assignments for this module.
Marks will be awarded according to the following scheme, assessing the extend to which the
applicati on you have developed by the deadline meets the requirements, has been set up correctly,
and submitt ed correctly:
Submission, Setup, Error-freeness: 10
Quality of the interface design: 10
Correctness and quality of the implementati on of the setup stage: 12
Correctness and quality of the implementati on of the play stage: 46
Correctness and quality of detecti ng the end of the game and of the end stage: 10
Code layout, Comments, References, Quality of code: 12
Assignment 2: JavaScript
6/6
In more detail, the requirements above translate into about 32 criteria that your system must sati sfy.
Marks are given according to the extent to which the system is observed to behave in the expected
way and produces correct results, and, to a lesser extent, how well the code is writt en. Code that has
no observable effect will typically receive no marks.
As stated above, the University policy on late submissions applies to this assignment, as do the
University policy on coursework submission (available
at htt ps://www.liverpool.ac.uk/media/livacuk/tqsd/code-of-practi ce-on?assessment/appendix_Q_cop_assess.pdf (htt ps://www.liverpool.ac.uk/media/livacuk/tqsd/code-of?practi ce-on-assessment/appendix_Q_cop_assess.pdf) ) and the University policy on academic integrity
(available at htt p://www.liv.ac.uk/student-administrati on/student-administrati on-centre/policies?procedures/academic-integrity/ (htt p://www.liv.ac.uk/student-administrati on/student-administrati on?centre/policies-procedures/academic-integrity/) ). You should follow the COMP284 Lab Rules
(htt ps://cgi.csc.liv.ac.uk/~ullrich/COMP284/notes/COMP284LabRules.pdf) to ensure that you do not
breach the latt er policy.
Feedback
You can expect individual feedback for this assignment about three weeks aft er the deadline.
Generic feedback will be provided five days aft er the deadline. No work can be submitt ed more than
5 days aft er the deadline.
请加QQ:99515681 邮箱:99515681@qq.com WX:codinghelp
- 推广轻松,品牌更生动!商家 ins群发软件协议号,为您的营销保驾护航
- 聚力共赢“胶”好运!漱玉平民&东阿阿胶大型融媒体溯源直播活动成功举行
- 趋势跟手WhatsApp工具助我快速融入外贸市场不再错失良机
- COMP S380F代做、SQL语言程序代写
- 曝光成都熠翊发服饰有限公司童装集合店用心铸就商业大楼
- Telegram代群发利器,助你轻松拓展用户群体
- 国美金融集中发力AI:多维度智能风控,全面推进数字化转型升级
- 怎么样解决WhatsApp拉群的问题呢
- 数据摆在面前 WhatsApp拉群营销工具助我在全球范围内建立了稳健的品牌形象
- 外贸新手探索 WhatsApp拉群营销工具是如何激发我无尽好奇的
- ws/WhatsApp营销引流群发工具,ws协议群发/ws拉群/ws协议号
- 超凡转化 WhatsApp拉群营销工具 让你的销售数字高歌猛进
- Telegram代群发新利器,提高用户互动黏性
- 全球跨境电商拉群利器:WhatsApp代筛料子引领数字化时代
- Ins/IG群发营销助手大揭秘!Instagram暴力批量私信软件推荐!
- 代写COMP9021 Principles of Programming
- 国家重点研发计划“主动健康”专项课题终期验收会召开,神州医疗承担课题顺利通过验收
- 数字产品交易平台的革新力量
- InBody体成分系列产品荣获欧盟CE-MDR认证 加速全球布局步伐
- 比亚迪首艘汽车滚装运输船首航,拥有 7000 个标准车位
- 高效互动,客户粘性 UP!商家选择 telegram 群发协议,品牌与用户深度互动无阻!
- 聪明选择WhatsApp工具是我外贸起步时不可或缺的趋势智能助手
- 精准推广无忧 WhatsApp拉群营销工具助您解决市场覆盖不足问题
- 掌上设备:掌中世界,触手可及
- Telegram/TG群发加速器,电报/TG智能营销软件,TG/纸飞机自助采集群发平台
- 跨境运营的力量:WhatsApp代筛料子助您打造高质量数据库
- Instagram营销软件,Ins引流工具,共同助你赢得市场!
- 数字风暴 博主授业 WhatsApp拉群营销工具是我国际业务的风起云涌
- Instagram营销软件,ins打粉接粉教程/ig群发助手/联系大轩测试
- Ins/Instagram自动创新营销软件,ins一键解锁引流新方法!
推荐
- 智慧驱动 共创未来| 东芝硬盘创新数据存储技术 为期三天的第五届中国(昆明)南亚社会公共安 科技
- 升级的脉脉,正在以招聘业务铺开商业化版图 长久以来,求职信息流不对称、单向的信息传递 科技
- 如何经营一家好企业,需要具备什么要素特点 我们大多数人刚开始创办一家企业都遇到经营 科技
- 苹果罕见大降价,华为的压力给到了? 1、苹果官网罕见大降价冲上热搜。原因是苹 科技
- 老杨第一次再度抓握住一瓶水,他由此产生了新的憧憬 瘫痪十四年后,老杨第一次再度抓握住一瓶水,他 科技
- 创意驱动增长,Adobe护城河够深吗? Adobe通过其Creative Cloud订阅捆绑包具有 科技
- 疫情期间 这个品牌实现了疯狂扩张 记得第一次喝瑞幸,还是2017年底去北京出差的 科技
- 丰田章男称未来依然需要内燃机 已经启动电动机新项目 尽管电动车在全球范围内持续崛起,但丰田章男 科技
- B站更新决策机构名单:共有 29 名掌权管理者,包括陈睿、徐逸、李旎、樊欣等人 1 月 15 日消息,据界面新闻,B站上周发布内部 科技
- 全力打造中国“创业之都”名片,第十届中国创业者大会将在郑州召开 北京创业科创科技中心主办的第十届中国创业 科技