精品深夜AV无码一区二区_伊人久久无码中文字幕_午夜无码伦费影视在线观看_伊人久久无码精品中文字幕

代寫 CPT204 Intelligent Rogue Chars

時間:2024-05-30  來源:  作者: 我要糾錯



Coursework 3 – Intelligent Rogue Chars 
Intelligent game-playing characters have been used in the game industry to harness 
the power of graph algorithms to navigate complex virtual environments, strategically 
analyzing interconnected nodes and edges to optimize their movements and decisionmaking
 processes. By leveraging graph traversal techniques such as breadth-first 
search (BFS) and depth-first search (DFS), these characters can efficiently explore vast 
game worlds, identify optimal paths, and anticipate opponent movements. 
 
In this coursework, you will use graph algorithms you have learned in Lecture 10 to 
develop an effective approach to track and intercept a moving opponent in a 
(simplified version of the) 2D Game called Rogue. You will also create a viable plan to 
evade interception from said opponent. 
 
Rogue 
The game Rogue was created by Michael Toy and Glen Wichman, who, while 
experimenting with Ken Arnold's C library named curses in the late 1970s, designed a 
graphical adventure game shown below. 
 
In 1984, CMU graduate students developed Rog-o-matic, an automated Rogue player, 
which became the highest-rated player. Rog-o-matic's algorithm prioritized avoiding 
monster encounters to facilitate health regeneration, posing an intriguing graph 
search challenge, which inspired this coursework. 
 3 
 
Rules of the Game 
The game of Rogue is played on an N-by-N grid that represents the dungeon. The two 
players are a rogue and a monster. The rogue is represented with the character @. 
The monster is represented by an uppercase letter A through Z. 
The monster and rogue take turns making moves, with the monster going first. If the 
monster intercepts the rogue (i.e., occupies the same site), then the monster kills the 
rogue, and the game ends. In each turn, a player either remains stationary or moves 
to an adjacent site. 
 
There are three types of sites: 
1. Rooms represented by . 
2. Corridors represented by + 
3. Walls represented by (a space) 
 
The movement rules are: 
 If a player is in a room site, then they can move to an adjacent room site in one 
of the 8 compass directions (N, E, S, W, NW, NE, SW, SE) or a corridor site in 
one of the 4 directions (N, E, S, W). 
 If a player is in a corridor site, then they can move to an adjacent room or 
corridor site in one of the 4 directions (N, E, S, W). 
 The walls are impenetrable. 
 
Consider the following two dungeons. 
 
In the first dungeon above, the rogue can avoid the monster I indefinitely by moving 
N and running around the corridor. 
 
In the second dungeon, the monster A can use the diagonal moves to trap the rogue 
in a corner. 4 
 
Monster's Strategy 
The monster is tenacious and its sole mission is to chase and intercept the rogue. A 
natural strategy for the monster is to always take one step toward the rogue. In terms 
of the underlying graph, this means that the monster should compute a shortest path 
between itself and the rogue, and take one step along such a path. This strategy is not 
necessarily optimal, since there may be ties, and taking a step along one shortest path 
may be better than taking a step along another shortest path. 
 
Consider the following two dungeons. 
 
In the first dungeon above, monster B's only optimal strategy is to take a step in the 
NE direction. Moving N or E would enable the rogue to make a mad dash for the 
opposite corridor entrance. 
 
In the second dungeon, the monster C can guarantee to intercept the rogue by first 
moving E. 
 
Your first task is to implement an effective strategy for the monster. To implement 
the monster's strategy, you may want to consider using BFS. 
 
Rogue's Strategy 
The rogue's goal is to avoid the monster for as long as possible. A naive strategy is to 
move to an adjacent site that is as far as possible from the monster's current location. 
That strategy is not necessarily optimal. 
 
Consider the following two dungeons. 
 
It is easy to see that that strategy may lead to a quick and unnecessary death, as in 
the second dungeon above where the rogue can avoid the monster J by moving SE. 
 
Another potentially deadly strategy would be to go to the nearest corridor. To avoid 
the monster F in the first dungeon, the rogue must move towards a northern corridor 
instead. 
 
A more effective strategy is to identify a sequence of adjacent corridor and room sites 
which the rogue can run around in circles forever, thereby avoiding the monster 
indefinitely. This involves identifying and following certain cycles in the underlying 
graph. Of course, such cycles may not always exist, in which case your goal is to survive 
for as long as possible. To implement the rogue's strategy, you may want to use both 
BFS and DFS. 
 
Implementation and Specification 
In this section, you will discover the expected details regarding the implementation 
and specifications of the Rogue game, which you are required to adhere to. 
 
Dungeon File Input Format 
The input dungeon consists of an integer N, followed by N rows of 2N characters 
each. For example: 
 
A room is a contiguous rectangular block of room sites. Rooms may not connect 
directly with each other. That is, any path from one room to another will use at least 
one corridor site. 
There will be exactly one monster and one rogue, and each will start in some room 
site. 
 
You will be given 18 dungeon files to test your code with. 
You may create your own dungeon files (explain the novelty in your report/video!). 
In the rubric subsection below, you are required to show the correctness and the 
performance of your rogue and monster on at least 5 non-trivial dungeons in total. 
 
Game of Rogue Specification 
We will provide some files that are already completed as the game infrastructure. 
There are two files to complete: Monster.java and Rogue.java, for which some 
skeleton code is provided. 
The given files are only for a quick start: you should modify the files so your program 
exhibits more object-oriented programming principles! 7 
 
The following is the interface of Monster.java : 
public Monster(Game g) // create a new monster playing game g 
public Site move() // return adjacent site to which it moves 
 
And the analogous program Rogue.java: 
public Rogue(Game g) // create a new rogue playing a game g 
public Site move() // return adjacent site to which it moves 
 
The move() method should implement the move of the monster/rogue as specified 
by the strategy that you have created. 
 
Game.java reads in the dungeon from standard input and does the game playing and 
refereeing. It has three primary interface functions that will be needed by 
Rogue.java and Monster.java. 
public Site getMonsterSite() // return site occupied by monster 
public Site getRogueSite() // return site occupied by rogue 
public Dungeon getDungeon() // return the dungeon 
 
Dungeon.java represents an N-by-N dungeon. 
public boolean isLegalMove(Site v, Site w) // is moving from site v 
 to w legal? 
public boolean isCorridor(Site v) // is site v a corridor site? 
public boolean isRoom(Site v) // is site v a room site? 
public int size() // return N = dim of dungeon 
 
In.java is a library from Algorithms optional textbook to read in data from various 
sources. You will have to create your own input library for your CW3 program. 
 
Site.java is a data type that represents a location site in the N-by-N dungeon. 
public Site(int i, int j) // create new Site for location (i, j) 
public int i() // get i coordinate 
public int j() // get j coordinate 
public int manhattan(Site w) // return Manhattan distance 
 from invoking site to w 
public boolean equals(Site w) // is invoking site equal to w? 
 
If you have two sites located at coordinates (i1, j1) and (i2, j2), then the Manhattan 
distance between the two sites is |i1 - i2| + |j1 - j2|. This represents the length you 
have to travel, assuming you can only move horizontally and vertically. 
 
You should modify the files or create other Java files, so your final program exhibits 
more object-oriented programming principles. Finally, you must only use libraries 
that are covered in CPT204 (including in Liang textbook). Violating this by using 
libraries that are not covered in CPT204 will result in an automatic total mark of 0. 

請加QQ:99515681  郵箱:99515681@qq.com   WX:codinghelp
















 

標簽:

掃一掃在手機打開當前頁
  • 上一篇:INFS 2042代做、代寫 Java 編程設計
  • 下一篇:代做UIC's finance office.、代寫java編程語言
  • 無相關信息
    昆明生活資訊

    昆明圖文信息
    蝴蝶泉(4A)-大理旅游
    蝴蝶泉(4A)-大理旅游
    油炸竹蟲
    油炸竹蟲
    酸筍煮魚(雞)
    酸筍煮魚(雞)
    竹筒飯
    竹筒飯
    香茅草烤魚
    香茅草烤魚
    檸檬烤魚
    檸檬烤魚
    昆明西山國家級風景名勝區
    昆明西山國家級風景名勝區
    昆明旅游索道攻略
    昆明旅游索道攻略
  • 短信驗證碼平臺 理財 WPS下載

    關于我們 | 打賞支持 | 廣告服務 | 聯系我們 | 網站地圖 | 免責聲明 | 幫助中心 | 友情鏈接 |

    Copyright © 2025 kmw.cc Inc. All Rights Reserved. 昆明網 版權所有
    ICP備06013414號-3 公安備 42010502001045

    精品深夜AV无码一区二区_伊人久久无码中文字幕_午夜无码伦费影视在线观看_伊人久久无码精品中文字幕
    <samp id="e4iaa"><tbody id="e4iaa"></tbody></samp>
    <ul id="e4iaa"></ul>
    <blockquote id="e4iaa"><tfoot id="e4iaa"></tfoot></blockquote>
    • <samp id="e4iaa"><tbody id="e4iaa"></tbody></samp>
      <ul id="e4iaa"></ul>
      <samp id="e4iaa"><tbody id="e4iaa"></tbody></samp><ul id="e4iaa"></ul>
      <ul id="e4iaa"></ul>
      <th id="e4iaa"><menu id="e4iaa"></menu></th>
      亚洲日本中文字幕区| 爽爽淫人综合网网站| 精品99久久久久久| 亚洲欧洲国产日韩| 不卡的电影网站| 日韩一级黄色大片| 久久精品国产**网站演员| 欧美日韩国产欧美日美国产精品| 亚洲日穴在线视频| 色综合久久中文综合久久牛| 国产精品成人午夜| 色素色在线综合| 亚洲欧美一区二区在线观看| 成人免费av网站| 尤物在线观看一区| 在线成人免费视频| 大美女一区二区三区| 亚洲你懂的在线视频| 欧美日韩一区二区三区在线| 久久爱www久久做| 一区在线观看免费| 欧美伦理电影网| 粉嫩一区二区三区性色av| 亚洲在线中文字幕| 欧美国产精品专区| 在线播放中文一区| 99国产精品久| 麻豆成人免费电影| 亚洲精品va在线观看| 日韩一级在线观看| 懂色av一区二区在线播放| 首页国产丝袜综合| 亚洲欧美视频在线观看视频| 欧美一区二区三区视频| 国产成人av一区二区| 亚洲午夜免费电影| 亚洲三级免费观看| 欧美国产日韩亚洲一区| 欧美一区二区三区在线观看| 色综合久久中文字幕| 国产精品羞羞答答xxdd| 美女www一区二区| 亚洲国产成人高清精品| 亚洲天堂精品视频| 亚洲bdsm女犯bdsm网站| 亚洲欧美欧美一区二区三区| 国产亚洲精品aa午夜观看| 欧美一区二区视频观看视频| 欧洲视频一区二区| 99久久99久久精品国产片果冻| 国产精品一区二区三区99| 蜜臀精品久久久久久蜜臀| 青青青伊人色综合久久| 三级在线观看一区二区| 视频一区中文字幕国产| 一区av在线播放| 国产精品的网站| 国产蜜臀97一区二区三区| 久久蜜桃av一区精品变态类天堂| 欧美肥大bbwbbw高潮| 欧美男同性恋视频网站| 在线综合视频播放| 91精品国产综合久久香蕉的特点| 欧美视频日韩视频在线观看| 欧美在线看片a免费观看| 91福利国产精品| 91免费精品国自产拍在线不卡| eeuss国产一区二区三区| 国产一区二区视频在线| 黄网站免费久久| 精品在线视频一区| 美国欧美日韩国产在线播放| 青娱乐精品视频| 五月综合激情婷婷六月色窝| 青青草97国产精品免费观看无弹窗版| 夜夜爽夜夜爽精品视频| 亚洲成人一区在线| 免费视频一区二区| 视频在线在亚洲| 亚洲一区二区三区爽爽爽爽爽| 亚洲欧美怡红院| 亚洲一区二区三区四区五区黄| 中文字幕一区二区三区在线不卡 | 国产精品福利在线播放| wwwwxxxxx欧美| 日本vs亚洲vs韩国一区三区二区 | 国产另类ts人妖一区二区| 伊人婷婷欧美激情| 亚洲va国产va欧美va观看| 美女网站在线免费欧美精品| 久久激五月天综合精品| 国产一区二区0| 色综合久久中文综合久久97| 欧美日韩中文字幕一区二区| 欧美变态凌虐bdsm| 国产女主播一区| 综合欧美亚洲日本| 午夜精品久久一牛影视| 首页综合国产亚洲丝袜| 久久国产欧美日韩精品| 色域天天综合网| 91精品国产色综合久久不卡蜜臀| 精品少妇一区二区三区免费观看 | 成人深夜福利app| 欧美日韩一区二区三区四区| 亚洲精品一区二区三区影院 | 日av在线不卡| 成人av手机在线观看| 972aa.com艺术欧美| 欧美美女视频在线观看| 日韩一区中文字幕| 日韩中文字幕91| 成人视屏免费看| 久久午夜老司机| 一区二区三区在线观看网站| 日韩激情视频在线观看| 91在线你懂得| www国产精品av| 亚洲成人免费观看| 99精品久久99久久久久| 日韩免费一区二区三区在线播放| 国产精品卡一卡二卡三| 国产精品一区二区果冻传媒| 欧美丝袜丝交足nylons图片| 国产精品久久午夜夜伦鲁鲁| 久久爱www久久做| 色婷婷综合久色| 久久久精品人体av艺术| 国产自产高清不卡| 5月丁香婷婷综合| 洋洋成人永久网站入口| 色婷婷精品大视频在线蜜桃视频| 亚洲天堂av一区| 成年人国产精品| 国产精品乱人伦中文| 99精品久久99久久久久| 国产亚洲欧美在线| 麻豆国产精品官网| 欧美体内she精高潮| 国产精品国产a| 91首页免费视频| 亚洲欧洲成人自拍| 国产伦理精品不卡| 欧美大胆一级视频| 美女网站一区二区| 精品第一国产综合精品aⅴ| 日本成人在线一区| 精品久久人人做人人爽| 国产综合色视频| 国产欧美精品一区二区色综合朱莉| 精品在线观看免费| 久久久综合视频| 成人免费视频一区| 亚洲欧美日韩在线| 欧美亚洲国产一卡| 强制捆绑调教一区二区| 国产女人aaa级久久久级| 97精品国产97久久久久久久久久久久 | 亚洲视频中文字幕| 91精品91久久久中77777| 调教+趴+乳夹+国产+精品| 精品日韩成人av| av电影在线观看不卡| 天天操天天色综合| 国产精品色婷婷| 欧美在线视频日韩| 另类小说图片综合网| 成人免费在线视频观看| 欧美日本在线看| 成人免费三级在线| 五月天网站亚洲| 国产精品美女久久久久aⅴ| 欧美三级三级三级| 国产盗摄女厕一区二区三区| 亚洲v日本v欧美v久久精品| 久久久久一区二区三区四区| 欧美在线一区二区三区| 激情五月婷婷综合网| 亚洲一区在线观看免费观看电影高清 | 97精品国产露脸对白| 丝袜美腿一区二区三区| 中文字幕第一区| 欧美va亚洲va在线观看蝴蝶网| 99久久婷婷国产精品综合| 蜜臀99久久精品久久久久久软件| 亚洲黄色免费电影| 国产精品护士白丝一区av| 日韩视频免费观看高清完整版在线观看| 99久久免费精品高清特色大片| 色吊一区二区三区| 久久成人综合网| 日韩国产高清影视| 日韩美女视频一区二区| 精品国产一区二区在线观看| 在线观看国产精品网站| 成人h精品动漫一区二区三区| 国产一区欧美二区| 青青国产91久久久久久| 亚洲一区二区三区四区在线免费观看 | 色综合久久久久久久久久久|