美女扒开腿免费视频_蜜桃传媒一区二区亚洲av_先锋影音av在线_少妇一级淫片免费放播放_日本泡妞xxxx免费视频软件_一色道久久88加勒比一_熟女少妇一区二区三区_老司机免费视频_潘金莲一级黄色片_精品国产精品国产精品_黑人巨大猛交丰满少妇

代寫 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_先锋影音av在线_少妇一级淫片免费放播放_日本泡妞xxxx免费视频软件_一色道久久88加勒比一_熟女少妇一区二区三区_老司机免费视频_潘金莲一级黄色片_精品国产精品国产精品_黑人巨大猛交丰满少妇
    欧美激情久久久久久久| 糖心vlog免费在线观看 | 91精品国产高清91久久久久久| 日韩高清一二三区| 亚洲AV无码国产成人久久| 日本老熟俱乐部h0930| 成人午夜剧场视频网站| 韩国三级hd中文字幕有哪些| 正在播放国产对白害羞| 亚洲黄色小说在线观看| 午夜国产小视频| 国产黄色录像视频| 免费福利视频网站| 97人妻精品一区二区三区免| av天堂一区二区| 曰本女人与公拘交酡| 卡一卡二卡三在线观看| 无码熟妇人妻av| a天堂视频在线观看| 亚洲欧美日韩色| 中文字幕在线观看91| 丰满少妇一区二区三区专区| 紧身裙女教师波多野结衣| 中文字幕求饶的少妇| 羞羞在线观看视频| 在线看的片片片免费| 欧美特黄一级片| 男插女视频网站| 欧美极品jizzhd欧美仙踪林| 国产又粗又猛又爽又黄| 丰满人妻一区二区三区大胸 | 精品无码在线视频| 天天插天天射天天干| 成人午夜福利一区二区| 蜜臀久久99精品久久久久久| 五月天精品在线| 古装做爰无遮挡三级聊斋艳谭| 久久久久久国产精品日本| 国产精品果冻传媒| 人妻大战黑人白浆狂泄| 三级黄色录像视频| 波多野结衣加勒比| 国产主播av在线| 潘金莲一级淫片aaaaaaa| 好吊色视频一区二区三区| 欧美 日韩 成人| 中文字幕欧美视频| 日韩av手机在线播放| 欧美福利第一页| 极品白嫩的小少妇| 香蕉网在线播放| 亚洲成人生活片| 精品无码人妻一区二区免费蜜桃| 精品自拍偷拍视频| 中文字幕一二三四区| 国产av 一区二区三区| 国产 欧美 在线| 伊人网综合视频| 国产精品亚洲无码| 波多野结衣家庭教师| 亚洲AV无码国产精品| 老湿机69福利| 国产99在线 | 亚洲| 国产精品久久久久久亚洲av| 粉嫩精品久久99综合一区| 男男一级淫片免费播放| 俄罗斯毛片基地| 深爱五月激情网| 色悠悠在线视频| 男女做暖暖视频| 精品在线观看一区| 91精彩刺激对白露脸偷拍| 成人啪啪18免费游戏链接| 91久久久久久久久久久久久久| 中文字幕一区二区久久人妻网站| 美女的奶胸大爽爽大片| 一区二区三区在线播放视频| 久久精品视频18| 97人妻天天摸天天爽天天| 熟妇高潮一区二区| 91成人福利视频| 91视频免费在线看| 国产十六处破外女视频| 丰满少妇中文字幕| 国产大学生av| 一本色道久久hezyo无码| 亚洲成人福利视频| 日本wwwwwww| 欧美熟妇精品黑人巨大一二三区| 韩国无码一区二区三区精品| 内射中出日韩无国产剧情| 久久久久国产精品区片区无码| 日本一区二区在线免费观看| 欲求不满的岳中文字幕| 日批在线观看视频| 女~淫辱の触手3d动漫| xxxxx在线观看| 2017亚洲天堂| 国产精品老熟女一区二区| av在线免费观看不卡| 玖玖爱在线精品视频| 亚洲精品成人无码| 欧美巨胸大乳hitomi| 亚洲国产精品一区二区久久hs| 登山的目的在线| 国产精品久久久久久亚洲色 | av影片在线播放| 国产精品果冻传媒| a级大片在线观看| 黑人狂躁日本娇小| 亚洲美女高潮久久久| 亚洲国产无码精品| 免费看一级大片| 在线黄色免费网站| 日本黄区免费视频观看 | 好男人香蕉影院| 色婷婷粉嫩av| yy1111111| 91视频最新网址| 日韩精品视频一区二区| 成人免费视频入口| 亚洲图片综合网| 丝袜 亚洲 另类 欧美 重口| 免费a级黄色片| gogo亚洲国模私拍人体| 国产精品美女高潮无套| 高清中文字幕mv的电影| 日日操免费视频| 国产精品成人一区二区三区电影毛片 | 玖玖爱在线精品视频| 四虎地址8848| 泷泽萝拉在线播放| av漫画在线观看| 男女性高潮免费网站| 久久久精品成人| 天堂久久精品忘忧草| 中文成人无字幕乱码精品区| 91麻豆免费视频网站| 永久免费毛片在线观看| 亚洲专区区免费| 国产熟女高潮一区二区三区| 国产麻豆剧传媒精品国产| 日韩在线一卡二卡| 日本黄色激情视频| 欧美熟妇激情一区二区三区| 久久久无码人妻精品一区| 一级做a爰片毛片| www.色多多| 久久久久久久久免费看无码 | 国产美女精品久久| 亚洲色图14p| av在线网站观看| 国产高潮呻吟久久| 日本理论中文字幕| 国产精品久久国产精麻豆96堂| 久久久国产一级片| 波兰性xxxxx极品hd| 国产极品美女在线| 男人女人拔萝卜视频| 无码人妻一区二区三区精品视频| 色诱av手机版| 久久人人爽人人爽人人片| 天天躁日日躁aaaxxⅹ| 日本综合在线观看| 国产在线免费看| 特种兵之深入敌后| a级一a一级在线观看| 69视频在线观看免费| 婷婷激情四射网| 麻豆tv在线观看| 成人免费无遮挡无码黄漫视频| 很污很黄的网站| 野花视频免费在线观看| 在线观看国产网站| 日本视频在线免费| wwwav国产| 亚洲成人网在线播放| 日本激情视频一区二区三区| 99久久久无码国产精品性波多| 亚洲成人网在线播放| 亚洲人做受高潮| 亚洲第九十七页| 9.1人成人免费视频网站| 国产精品久久无码| 亚洲欧美精品久久| 中文字幕av观看| 特种兵之深入敌后| 麻豆精品免费视频| 中文字幕制服丝袜| 99自拍偷拍视频| 国产精品1000部啪视频| 国模无码国产精品视频| 亚洲欧洲久久久| 99精品一区二区三区无码吞精| 在线观看亚洲大片短视频| 四虎成人免费视频| 国产一区在线观看免费| 亚洲国产欧美视频| 国产免费一区二区三区最新6| www深夜成人a√在线|