国产人妻人伦精品_欧美一区二区三区图_亚洲欧洲久久_日韩美女av在线免费观看

合肥生活安徽新聞合肥交通合肥房產(chǎn)生活服務(wù)合肥教育合肥招聘合肥旅游文化藝術(shù)合肥美食合肥地圖合肥社保合肥醫(yī)院企業(yè)服務(wù)合肥法律

代寫Maze Runner編程、代做Java設(shè)計(jì)程序

時(shí)間:2024-01-29  來源:合肥網(wǎng)hfw.cc  作者:hfw.cc 我要糾錯(cuò)



Project: Maze Runner
We want you to practice composing multiple classes and files into one larger, functional piece
of software. For that, we ask you to implement a small game in Java.
Game Idea
The core idea of the game is navigating a character through a maze, overcoming various
challenges to reach the exit. The maze contains multiple different elements like traps, enemies,
and keys that the player must interact with or evade to escape. The game unfolds in a maze
enclosed by walls on all sides, featuring an entry point where the player starts and an exit to
reach for completing the game. Within the maze, the player will encounter an intricate
network of interior walls that create not only a challenging path but also various dead-ends.
Randomly scattered throughout the maze are traps and enemies that the player must avoid
or overcome, as well as keys that must be collected to unlock the exit.
Game Logic
Your game must implement the following mechanics:
Walls and Paths
The game world is designed as a maze, consisting of traversable paths and walls. Each maze
has exactly one entrance and at least one, potentially multiple exits. The exit points are
exclusively situated on the outer border of the maze, which is otherwise completely enclosed
by walls without any gaps. The entrance can be anywhere in or on the border of the maze.
When playing the game, it's crucial that the entrance and exit are clearly distinguishable from
walls and each other. The entrance should be uniquely identifiable, as should the exit, but in
a distinct manner.
In this context, 'paths' refer to the free space within the maze. The density of the maze can
vary significantly, ranging from sparse layouts with abundant open space and fewer walls, to
dense configurations characterized by numerous walls and limited walkable paths.
Character
The main character must be able to move through the maze in four directions (up, down, left,
right). Generally, the character can only walk in free spaces; they cannot walk through walls.
The character must have a number of lives. If the character loses all their lives before reaching
and opening the exit (see below), it's game over.
Obstacles
The maze contains at least two kinds of obstacles. Essentially, an obstacle is an additional
object on an otherwise free path within the maze that causes the character to lose a life when
contact occurs. Like the character, obstacles can only exist within free paths and cannot pass
through walls.
The two required kinds of obstacles are:
Traps: Obstacles with a fixed position within the maze.
Enemies: Obstacles that are dynamic. This means their position within the maze changes
regularly in short intervals. For minimal requirements, they must move randomly throughout
the maze but never leave it; however, for bonus points, they can exhibit more intelligent
behavior (see below).
Keys
The ultimate goal for the main character is to exit the maze. However, to open the exit, they
must have collected a key. There will be at least one, but potentially multiple keys in each
maze. The character must collect at least one key to use the exit of the maze. Attempting to
exit without the key should result in the path being blocked (think: the exit behaves like a wall
until you have a key).
HUD
The game must have at least a small, basic HUD that is visible to the player at all times while
navigating the maze. It must at least display the following information:
- Amount of lives remaining
- Whether a key has been collected
Game Menu
There must be a game menu displayed at the launch of the game and any time a player
presses the Esc key during gameplay. If a player presses Esc to access the menu, the game
itself must be paused (i.e., the main characters and all enemies stop moving). In this menu,
players must at least be able to:
- continue the game (if coming from Esc)
- load a new map file and start a new game
- exit the game
ALL UI and MENUS must be libGDX based. No JavaFX or something.
Victory and Game Over
If the player can leave the maze without losing all lives, they achieve a victory. In this case,
display that the user has won, and stop the gameplay.
If the player loses all lives, the game is over. In this case, display that the game is over, and
stop the gameplay.
In both cases, allow to go back to the main menu.
Technical Requirements
Maze files
You should not generate or define a maze yourself within your program code. Instead, your
program must be able to run any arbitrary maze stored in a Java properties file. If the player
chooses the "load map" option in your game menu, your program must open a File Chooser
and allow them to select the file. Then, your program should read the file and start the game
based on the maze defined in this file.
Properties files are a very simple way to store data in files in Java. Essentially, they just store
key-value pairs of Strings; think of it as a Map<String, String>. In our maze files, the key
specifies the x and y coordinates, separated by a comma, for example: 5,6.
The value specifies the type of the object at the given coordinates. The following types exist:
Value | Type
-------------------
0 | Wall
1 | Entry point
2 | Exit
3 | Trap (static obstacle)
4 | Enemy (dynamic obstacle)
5 | Key
The coordinate system starts at the bottom left with 0,0. x coordinates extend to the right,
and y coordinates go upwards.
Check out one of the files in the maps directory to get an idea.
Graphics
Your game must be a 2D game based on libGDX with a top-down view.
Each object must be rendered as a 2D sprite at their respective coordinates as specified by
the map file. Ensure to use proper, open-source 2D assets (images) to render the different
object types. We recommend using simple 16x16 pixel graphics. Recommended sources
include Kenney or OpenGameArt.
Ensure that your animations are fluent and your game runs on a playable, fluid framerate.
We provide you with a skeleton for such a game, so you don't have to start from scratch.
Viewport
Different computers have different screen sizes. Some players may want to play your game
on a very large screen or maybe in a very small window.
Therefore, please make sure to fulfill the following important requirements:
- The maze may be larger than the screen. Implement a camera movement mechanism
that ensures that the player character is always visible within at least the middle 80% of
the screen horizontally and vertically during gameplay. If the window is resized, ensure
to readjust the camera position to adhere to this rule as well.
- Your game must adapt to different sizes of your program window.
- DO NOT scale the game items if the window size changes. If the user scaled up the
window, that means they can now see a larger segment of the maze.
Music and Sounds
Include music and sound effects in your game. Use the Music and Sound classes of libGDX to
achieve this. There is an example of playing music in the template.
Ensure to balance volume of music and sound effects. Choose royalty-free tracks and effects,
for example from OpenGameArt.
https://opengameart.org/art-searchadvanced?keys=&field_art_type_tid%5B%5D=13&sort_by=count&sort_order=DESC
Background Music
- Gameplay: Loop a background track during gameplay, matching the game's intensity
and theme.
- Menu: Play a different, calmer track for the game menu.
-
Sound Effects
Play sound effects if something happens to make the experience more immersive. Play proper
sound effects at least for the following events:
- Life lost
- Key collected
- Victory
- Game over
Code Structure
- Implement your game in an object-oriented manner using concepts presented in the
lecture.
- The different object types like entry, exit, all types of traps, and all types of enemies must
be dedicated classes, inheriting from at least one common superclass, such as a
GameObject that contains shared functionality and properties. Use a class hiearchy that
makes sense for your game. A wall does not necessarily have to be a class, but can be.
- Avoid code duplication using inheritance, delegation, and proper usage of method
extraction.
Documentation
- Your code must be documented properly. Document each class and each method with
proper JavaDoc!
- If you use code from the internet, add the source URLs into your JavaDoc of the method
using the external code.
- Create a README file that documents your project structure so a reviewer can easily
understand:
1. your code structure - how is everything organized, what does the class
hierarchy look like?
2. how to run and use your game?
3. rules for and description of game mechanics that go beyond the minimal
requirements
Checklist
When creating the project, remember the following points:
- Your program must be able to read any maze from a properties file and play it.
- The character must be movable with the arrow keys in four directions.
- The character has a limited number of lives.
- The character must collect a key from the maze and reach the exit before losing all lives.
- Static traps and dynamically moving enemies are obstacles. On contact with any of them,
the player loses one life.
- Camera Movement: Implement a camera movement mechanism that ensures that the
player character is always visible within at least the middle 80% of the screen horizontally
and vertically during gameplay.
- HUD: Display the amount of lives left and key collection status at all times.
- Game Menu: Available on startup and through the Esc button; must allow to continue
playing, choosing a new map, or exiting.
- Victory and Game over: Your game must display that the player has won or lost, stop
the gameplay and allow to return to the main menu afterwards.
- Render the game using libGDX as a 2D game with a top-down view using simple 2D
assets.
- Your game must run fluently.
- Support different screen sizes.
- Play background music during gameplay and in the menu
- Use sound effects when something happens in the game
- Use object-orientation to implement your game. Each object type must be a dedicated
class (except for Wall - this can optionally be a class, but doesn't have to be) in a proper
class hierarchy.
- Document your code and your project properly.
Extension for Bonus Points
You are free to extend the game as you like as long as the minimal requirements are and stay
fulfilled.
Functionality that goes beyond the minimal requirements may result in bonus points.
Some examples follow below. Especially the first one is a cool thing to have in a game like
this and will definitely earn you more than one point ;)
- Enemies move intelligently towards the main character using a path-finding algorithm if
they are within a certain range, instead of moving randomly.
- Point systems: Can players get a score in the end, e.g., based on time?
- Collectable lives.
- More types of obstacles.
- Further abilites for the main character other than walking, such as
- combat with enemies
- collectable power ups (faster running, shield, …)
- Fog of War.
- Movable walls.
- Multiple kinds of things other than a key to exit (remember, having to collect a key is the
minimal requirement; you can require more things before you open the exit).
- …
- Unleash Your Creativity! Treat this project as your experimental playground, a space
where you can try out innovative ideas, apply your acquired knowledge, and
continuously learn along the way. We're excited to see the remarkable game you'll create
and be impressed by your ingenuity!
Organizational considerations
Third party libraries
Third party code libraries that can be installed through Gradle are in general not allowed. We
want you to implement things yourself and avoid relying on third party features. You are free
to use all the various functionality built into libGDX. However, this covers only the base
framework; not all libGDX extensions are allowed. The following libGDX extensions are
approved to use: Box2D, Bullet, FreeTypeFont, Controllers, Tools, Box2DLights. Explicitly
not allowed are: Ashley, AI.
Scores & Grades
This game accounts for 20% of your final grade which can be achieved by scoring 100% in the
project.
You can score 100% in the project by fulfilling the minimal requirements for your project.
On top of that, all functionality that is implemented in addition to the minimal requirements
can result in bonus points.
You can achieve at most 10 bonus points.
By collecting bonus points, you can score up to an additional 10% on your final course score.
In sum, you can contribute up to 30% of your final score by delivering a top-notch project! :)
Troubleshooting
Fix Gradle JVM
On some machines, you run might into this issue:
To resolve it, click Open Gradle settings and select the Project SDK as your Gradle JVM:
Note: You might need to re-run Gradle afterwards. Open the Gradle Tool Window in View >
Tool Windows > Gradle and hit the sync button (two arrows forming a circle).
Fix the classpath
It's important that you use the run configuration that is delivered with the template. You will
have to adapt the classpath setting.
Windows and Linux
If you are on Windows or Linux, please remove the -XstartOnFirstThread VM option in the
run configuration:
如有需要,請加QQ:99515681 或WX:codehelp

掃一掃在手機(jī)打開當(dāng)前頁
  • 上一篇:CS39A0190代做、代寫Python,Java程序
  • 下一篇:代發(fā)EI會(huì)議 EI期刊 發(fā)表EI期刊
  • 無相關(guān)信息
    合肥生活資訊

    合肥圖文信息
    流體仿真外包多少錢_專業(yè)CFD分析代做_友商科技CAE仿真
    流體仿真外包多少錢_專業(yè)CFD分析代做_友商科
    CAE仿真分析代做公司 CFD流體仿真服務(wù) 管路流場仿真外包
    CAE仿真分析代做公司 CFD流體仿真服務(wù) 管路
    流體CFD仿真分析_代做咨詢服務(wù)_Fluent 仿真技術(shù)服務(wù)
    流體CFD仿真分析_代做咨詢服務(wù)_Fluent 仿真
    結(jié)構(gòu)仿真分析服務(wù)_CAE代做咨詢外包_剛強(qiáng)度疲勞振動(dòng)
    結(jié)構(gòu)仿真分析服務(wù)_CAE代做咨詢外包_剛強(qiáng)度疲
    流體cfd仿真分析服務(wù) 7類仿真分析代做服務(wù)40個(gè)行業(yè)
    流體cfd仿真分析服務(wù) 7類仿真分析代做服務(wù)4
    超全面的拼多多電商運(yùn)營技巧,多多開團(tuán)助手,多多出評軟件徽y1698861
    超全面的拼多多電商運(yùn)營技巧,多多開團(tuán)助手
    CAE有限元仿真分析團(tuán)隊(duì),2026仿真代做咨詢服務(wù)平臺
    CAE有限元仿真分析團(tuán)隊(duì),2026仿真代做咨詢服
    釘釘簽到打卡位置修改神器,2026怎么修改定位在范圍內(nèi)
    釘釘簽到打卡位置修改神器,2026怎么修改定
  • 短信驗(yàn)證碼 寵物飼養(yǎng) 十大衛(wèi)浴品牌排行 suno 豆包網(wǎng)頁版入口 目錄網(wǎng) 排行網(wǎng)

    關(guān)于我們 | 打賞支持 | 廣告服務(wù) | 聯(lián)系我們 | 網(wǎng)站地圖 | 免責(zé)聲明 | 幫助中心 | 友情鏈接 |

    Copyright © 2025 hfw.cc Inc. All Rights Reserved. 合肥網(wǎng) 版權(quán)所有
    ICP備06013414號-3 公安備 42010502001045

    国产人妻人伦精品_欧美一区二区三区图_亚洲欧洲久久_日韩美女av在线免费观看
    一区二区三区四区在线视频| 久久在线免费观看视频| 国产成人中文字幕| 最新av网址在线观看| 国内精品视频在线| 日韩在线免费视频观看| 天天综合五月天| 苍井空浴缸大战猛男120分钟| 国产精品三区四区| 日韩精品―中文字幕| 68精品久久久久久欧美| 在线精品日韩| 国产日韩精品电影| 精品国产aⅴ麻豆| 国产在线播放一区二区| 久久精品在线播放| 免费在线a视频| 日韩中文字幕在线视频播放| 日本最新一区二区三区视频观看| 91精品国产91久久久久久久久| 中文精品一区二区三区| 国产精品夜间视频香蕉| 亚洲综合中文字幕在线| av观看久久| 性欧美亚洲xxxx乳在线观看 | 日本高清不卡一区二区三| 97国产在线播放| 亚洲av综合色区| 久久青青草原| 欧美专区在线播放| 国产精品视频一区二区三区四| 国外色69视频在线观看| 久久伊人精品天天| www黄色日本| 日韩av不卡电影| 久久精品美女视频网站| 精品不卡一区二区三区| 91精品在线看| 日本a在线免费观看| 久久人人爽亚洲精品天堂| 国模吧一区二区| 欧美日韩国产二区| 97国产suv精品一区二区62| 午夜精品一区二区三区在线视 | 国产精品久久久久久久久久久久久久 | 国产ts人妖一区二区三区| 久久久久久久久久久免费精品 | 一区二区欧美日韩| 国产大片精品免费永久看nba| 欧美又大粗又爽又黄大片视频| 国产成人精品久久久| 欧美亚洲一二三区| 国产精品视频区1| 国产乱子伦精品| 日本久久久久亚洲中字幕| www.欧美免费| 国产日韩在线一区二区三区| 亚洲精品免费网站| 精品国产一区二区三区久久狼5月| 黄色片网址在线观看| 中文字幕一区二区三区四区五区六区 | 欧美日本国产在线| 91成人免费观看| 欧美极品日韩| 一区二区三区四区国产| 久久九九国产视频| 男女猛烈激情xx00免费视频| 中文字幕一区二区三区四区五区人| 国产成人一区二区三区免费看 | 国产一区二区不卡视频在线观看| 亚洲人久久久| 国产精品美女久久| 久久久免费观看视频| 国产自偷自偷免费一区| 五月婷婷一区| 欧美xxxx综合视频| 日韩亚洲成人av在线| 国产熟女高潮视频| 日韩免费视频在线观看| 亚洲自拍av在线| 久久国产精品99国产精| 久久久久久久久久福利| av免费中文字幕| 国产中文欧美精品| 欧在线一二三四区| 午夜精品美女自拍福到在线| 欧美精品在线播放| 国产成人无码一二三区视频| 91精品国产高清自在线看超| 国产日韩一区二区| 亚洲91精品在线亚洲91精品在线| 国产精品丝袜视频| 91传媒免费视频| www.浪潮av.com| 国产色综合天天综合网| 精品日本一区二区| 日韩小视频在线播放| 亚洲精品无人区| 一区二区三区av| 宅男在线精品国产免费观看| 国产精品电影在线观看| 精品国产视频在线| 国产高清精品一区二区三区| wwwwww欧美| 国产伦精品一区二区三区视频孕妇| 欧美日韩高清免费| 日本精品一区二区三区四区| 欧美激情一级二级| 欧美精品少妇videofree| 国产精品美女免费视频| www.精品av.com| 久久久久久免费精品| 国产成人亚洲综合91| av不卡在线免费观看| 国产精品亚洲一区| 国产伦精品一区二区三区免| 国产三区二区一区久久| 国产一区免费在线| 蜜桃av噜噜一区二区三区| 欧美污视频久久久| 欧美精品在欧美一区二区| 欧美专区在线视频| 日韩在线一级片| 日韩中文一区| 日本福利视频导航| 日本va中文字幕| 欧洲在线视频一区| 欧美性大战久久久久| 欧美专区在线播放| 精品日产一区2区三区黄免费| 激情五月婷婷六月| 国产亚洲精品美女久久久m| 国产精品综合网站| 91美女福利视频高清| 91福利视频导航| 久久久久久久久久久久久久久久av| 九九九九九九精品| 日韩三级成人av网| 国产精品久久久久久久久久久久冷 | 久久久精品国产网站| 国产精品我不卡| 国产精品高清在线| 在线观看一区二区三区三州| 亚洲影院色在线观看免费| 亚洲国产精品综合| 少妇av一区二区三区无码| 视频一区二区三| 日本精品免费一区二区三区| 欧美一级成年大片在线观看| 欧美精品成人网| 精品日韩美女| 成人精品在线视频| 国产福利久久精品| 色av吧综合网| 国产精品久久久久久久久久久久冷| 久热精品在线视频| 亚洲人成网站在线播放2019| 日韩在线国产| 欧美a在线视频| 国产伦精品一区二区三毛| 久久久久久艹| 精品国产一区二区三区久久狼黑人| 国产精品高潮呻吟久久av无限| 国产精品第10页| 综合操久久久| 日本视频久久久| 国内精品伊人久久| 成人精品久久av网站| 久久久久久久成人| 欧美日韩国产123| 日本韩国在线不卡| 国产亚洲精品自在久久| 国产精品99久久久久久大便 | 一区二区三区四区欧美日韩| 欧美一级免费在线观看| 日韩免费高清在线| 国产一级片黄色| 久久露脸国产精品| 国产精品成人在线| 日日碰狠狠躁久久躁婷婷| 韩国精品久久久999| 91精品久久久久久久久久久久久 | 99精品99久久久久久宅男| 久久久噜噜噜久久| 中文字幕制服丝袜在线| 精品欧美一区二区在线观看视频| 99精品人妻少妇一区二区| 国产精品视频一二三四区| 欧美一区2区三区4区公司二百| 国产综合第一页| 色青青草原桃花久久综合| 亚洲精品在线免费| 国产在线观看91精品一区| 日韩在线欧美在线| 亚洲精品影院| 国产精品一区二区在线观看| 国产精品视频xxxx| 日本a在线免费观看| 97精品国产91久久久久久| 欧美激情视频网|