99爱在线视频这里只有精品_窝窝午夜看片成人精品_日韩精品久久久毛片一区二区_亚洲一区二区久久

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

代寫ENGR1010J、代做C/C++設(shè)計(jì)編程
代寫ENGR1010J、代做C/C++設(shè)計(jì)編程

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



ENGR1010J FA2024 Lab6: Pac-Man
Due date: 23:59, December 9, 2024
Background
Pac-Man is a classic video game released in 1980. In this lab, we just need to create a basic gaming
interfac e so that we humans can play with it.
This is a screenshot from a Pac-Man game. A typical Pac-Man world contains a cute Pacman, walls,
small foods, big energy capsules, and lovely ghosts.
To make our lives easier, our version of "Pac-Man" does not feature such fancy graphics. Instead, it is
composed of all ASCII characters. Pacman is represented by a similar-looking  C , walls by  # , foods
by  . , capsules by  o , and ghosts by  @ . (The provided templates print boundaries, so you do not
need to consider them.) The picture below shows the game interface in the console.We have provided compiled executables for Windows, MacOS, and Linux. We recommend you run
the executable and play the game to get a basic idea of what you should do. Also, when you have
any doubt about whatever part you write, if your behavior matches our example program, it is
(almost) sure to say you are safe.
On MacOS or Linux, in order to run the provided executable, you may need to first run the command
 chmod +x Pacman_MacOS_arm64/x86  or  chmod +x Pacman_Linux  under the path of the text file in your
terminal. Contact TAs if you have any problems.
Unlike in the real-time video game Pac-Man, we control our Pacman frame by frame. The game will
pause every frame and wait for your input. You can type " w/a/s/d " into the game to move Pacman,
or " i " for it to stand still. Confirm your input by “Enter”, and the game will show you the next frame.
PartA: Make a Game From Scratch
Files
We have provided you with code templates, which contains  lab6.h ,  io.cpp ,  game.cpp ,  main.cpp .
The contents of each file are listed below:
File Content
lab6.h All the structs and variables as well as the function prototypes.
io.cpp Functions dealing with user inputs and output the game interface in the console.
game.cpp To realize all the functions given in lab6.h.
main.cpp The main function.
In this lab, what you need to do is to fill up the functions in game.cpp according to the comments and
instructions. Then you can run the main.cpp to test your codes with code runner. Use the command
line to compile  io.cpp ,  main.cpp ,  game.cpp  together:
 g++ -std=c++1z game.cpp main.cpp -o lab6 -I -lm . If you have any questions regarding compile
issues, feel free to ask!
However, if you think the functions in  game.cpp  are not enough, you are allowed to write your
own functions in  game.cpp , and do not forget to declare it in  lab6.h .
Variables and Functions
The game operates by a  struct game  structure. We have already specified some components of it:typedef struct game {
//Part A
 char** grid; // a 2-dimensional array of characters to display the game;
 int rows; // number of rows of the grid;
 int columns; // number of columns of the grid;
 int foodCount; // number of remaining food in the game;
 int score; // current score;
 GameState state; // the state of the game, one of losing, onGoing, or winning.
} Game;
Feel free to add more components to this structure if you would like to.
Apart from the structure, there are many functions you need to write for this game to operate. When
implementing provided function prototypes in the templates, you should follow the instructions below,
or see the comments. You MUST NOT modify the function names, or add/remove parameters. You
can also add more functions if you like. We will not check any function that are not provided.
A game of given rows and columns is created by calling the function
 Game* NewGame(int rows, int columns) . In this function, You should:
dynamically allocate space for a Game pointer
initialize all member variables of your Game structure. (For example,  foodCount  and  score 
should be initialized to 0.)
create the member grid by dynamically allocating a 2-dimensional array of given size.
Boundary is not included in either rows or columns, and the cell at top-left corner is at row 0 and
column 0.
When the game ends, the function  void EndGame(Game* game)  is automatically called. In this function,
you should:
free any memory you dynamically allocated, such as grid.
free the parameter game, as it is also dynamically created.
Walls, foods and Pacman are added to the game by functions  AddWall ,  AddFood , and  AddPacman . In
these functions you should:modify the grid in your  Game  structure to make sure whatever item you add displays correctly.
make sure all of these game components can only be added to an empty cell.
make sure Pacman cannot be added to the game if there is already a Pacman.
Finally, you can write the function  void MovePacman(Game* game, Direction direction)  to control your
Pacman.  Direction  is an enum of  {up, down, left, right, idle}  . The rule to move your Pacman
is as follows:
On  idle , Pacman will stay still.
If Pacman would move to an empty cell, Pacman will do so successfully;
If Pacman would move to a food cell, Pacman will move to it and eat the food. Your score will
increase by  FOOD_SCORE = 10 . If Pacman eats the last food, you win the game. You should mark
the state of this game as winning.
If Pacman would bump into a wall or a boundary, Pacman will stay still.
In any of the cases above, your score should decrease by 1, for one turn you have played.
You can have a better understanding of the whole process by reading the sample  main()  function in
 main.cpp  and function  void PlayGame(Game* game)  in  io.cpp .
Time to play!
You can initialize your custom game in your  main()  function by calling  NewGame . After that, you can
add walls and foods to any specific location by  AddWall  and  AddFood . Don’t forget to add a Pacman
by AddPacman to the game.
When your game is prepared, you can call the provided  PlayGame  function. When you win or lose,
 PlayGame  will terminate by calling  EndGame .
If your game runs... Congratulations! You now have a "complete" Pacman game. You can submit it to
JOJ for Part A, and the first three testcases are for Part A, so don't worry if you cannot pass the last
cases now. However, the game seems a little boring, let’s go to Part B...
Part B: Here come the ghosts!
Your game is missing a part of the greatest fun - the ghosts. In this part, you will add ghosts and
energy capsules to your game so that it will become more playable.
We do not force any restrictions on how you should store your data for ghosts and capsules. Do you
think you need to write a structure, especially for ghosts? If so, what do you need to store in it? Your
design can be in any way you like (but still try not to use global variables), as long as it meets the
requirements below:Requirements for ghosts:
There are at most  MAX GHOSTS = 30  ghosts.
Ghosts are added to the game by the function
 bool AddGhost(Game* game, int r, int c, Direction direction) .
This function is slightly different, as ghosts can be added on a cell with food or a capsule.
Ghosts cover foods and capsules in display, so their cells (originally  .  or  o ) will be
displayed in  @ . However, those food or capsules must still exist, and should be displayed
again when ghosts leave their cells.
 Direction  defines how a ghost moves. Ghosts move either in a horizontal line or a vertical
line. The parameter  direction  in this function is the ghost’s initial direction.
Ghosts are moved by the function  void MoveGhosts(Game* game) .
This function will move all ghosts in the game by one step to their own directions.
Ghosts should be moved in the order they were added.
If a ghost would move onto a cell with food or a capsule, it will cover the food or capsule in
display, so that cell (originally  .  or  o ) will be displayed in  @ . However, that food or capsule
must still exist, and should be displayed again when this ghost leaves that cell.
If a ghost would bump into a wall, another ghost, or a boundary, its direction will reverse,
and it will try to move in the new direction immediately this turn. If then it would bump into
another wall/ghost/boundary, it will stop and won’t move for this turn, with its direction
reversed.
Now it is possible to lose the game. By rules, Pacman always moves first. There are three situations
that need to be specified:
If Pacman directly bumps into a ghost, Pacman will move to that cell, and get killed. You should
mark the game state as losing.
If a food or a capsule is below that ghost, Pacman cannot eat it.
If Pacman moves to a cell that a ghost also attempts to move to, Pacman will perform a
successful move, and the ghost then moves onto Pacman’s cell. You will also lose the game.
Requirements for capsules:
Capsules are large foods that give Pacman superpower. Therefore, capsules are counted as the
number of foods in the game. Pacman must eat all food and capsules to win.
Capsules are added by the function  bool AddCapsule(Game* game, int r, int c) . Like food, a
capsule cannot be added to a cell with a wall, a Pacman, or a ghost. However, a capsule can be
added to a cell with a food, resulting in that food being upgraded to a capsule.
When Pacman eats a capsule, your score will increase by  CAPSULE SCORE = 50 , and Pacman will
gain superpower for its next  CAPSULE DURATION = 10  moves. Its superpower is that:
All ghosts will be scared, and their display change from  @  to  X . When Pacman’s
superpower expires, they change back to their cute evil faces  @ .Scared ghosts are slowed down by 50%, which is shown by that they cannot move every
other turn.(We cannot move ghosts by half a cell, after all) They will be able to move on the
same turn when Pacman eats a capsule, but cannot move the next turn. This goes on until
Pacman’s superpower expires.
When with superpower, Pacman can eat ghosts! When Pacman moves onto a grid with a
scared ghost, it eats the ghost, earning a score of  GHOST SCORE = 200 . If there is a food or a
capsule below that ghost, Pacman eats it as well. That ghost will not respawn and can be
removed from the game. The same goes for the case when a scared ghost bumps into
Pacman.
Pacman’s superpower activates immediately when it eats a capsule, and counts down right after
Pacman’s turn, starting from its next turn. For example, if Pacman and a scared ghost attempt to
move onto the same grid on Pacman’s 10th turn of superpower, Pacman will move first, but its
superpower will immediately expire, and that ghost, not scared anymore, can kill Pacman. In
other words, Pacman’s superpower ends after 10 turns at the same moment of eating a capsule.
If Pacman eats another capsule while it has superpower, the duration of superpower will be
refreshed to 10 turns, rather than stack. In this case, it is possible that a scared ghost has
already moved on the turn(the new 9th turn) right before the turn when Pacman’s superpower
expires(10th). That ghost can still move on its next turn(10th), because it will not be a scared
ghost then.
Finally, you can add ghosts and capsules to your game in your main function, and enjoy the finished
game of Pacman. The submission is the same as how you did for part A. Good luck and have fun!
Rubric
Tasks
Part A: 30 pts
Part B: ** pts
Oral Explanation: 30 pts
Total: 150 pts
Deduction
Late submission on Canvas: -20 pts per day. JOJ will be closed on the day of the lab, so no late
submission will be accepted on JOJ.
Global variables: Using global variables in such a big project could be dangerous and you will
lose 10 points for each global variable.Submission
You need to compress your  game.cpp  and  lab6.h  file into a single zip file and submit it to JOJ.

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




 

掃一掃在手機(jī)打開當(dāng)前頁
  • 上一篇:代做CS-107、java程序語言代寫
  • 下一篇:CE235編程代寫、代做python程序設(shè)計(jì)
  • 無相關(guān)信息
    合肥生活資訊

    合肥圖文信息
    2025年10月份更新拼多多改銷助手小象助手多多出評(píng)軟件
    2025年10月份更新拼多多改銷助手小象助手多
    有限元分析 CAE仿真分析服務(wù)-企業(yè)/產(chǎn)品研發(fā)/客戶要求/設(shè)計(jì)優(yōu)化
    有限元分析 CAE仿真分析服務(wù)-企業(yè)/產(chǎn)品研發(fā)
    急尋熱仿真分析?代做熱仿真服務(wù)+熱設(shè)計(jì)優(yōu)化
    急尋熱仿真分析?代做熱仿真服務(wù)+熱設(shè)計(jì)優(yōu)化
    出評(píng) 開團(tuán)工具
    出評(píng) 開團(tuán)工具
    挖掘機(jī)濾芯提升發(fā)動(dòng)機(jī)性能
    挖掘機(jī)濾芯提升發(fā)動(dòng)機(jī)性能
    海信羅馬假日洗衣機(jī)亮相AWE  復(fù)古美學(xué)與現(xiàn)代科技完美結(jié)合
    海信羅馬假日洗衣機(jī)亮相AWE 復(fù)古美學(xué)與現(xiàn)代
    合肥機(jī)場巴士4號(hào)線
    合肥機(jī)場巴士4號(hào)線
    合肥機(jī)場巴士3號(hào)線
    合肥機(jī)場巴士3號(hào)線
  • 短信驗(yàn)證碼 trae 豆包網(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號(hào)-3 公安備 42010502001045

    99爱在线视频这里只有精品_窝窝午夜看片成人精品_日韩精品久久久毛片一区二区_亚洲一区二区久久

          9000px;">

                亚欧色一区w666天堂| 免费成人你懂的| 678五月天丁香亚洲综合网| 久国产精品韩国三级视频| 天天做天天摸天天爽国产一区| 成人毛片老司机大片| 欧美精品一二三区| 欧美性大战久久久久久久蜜臀 | 色综合一个色综合| 国精产品一区一区三区mba桃花| 亚洲图片另类小说| 欧美一级二级三级乱码| 亚洲国产精品人人做人人爽| 一区二区视频免费在线观看| 久久―日本道色综合久久| 不卡欧美aaaaa| 亚洲与欧洲av电影| 国产精品毛片大码女人| 欧美乱妇一区二区三区不卡视频 | 首页国产欧美久久| 国产99一区视频免费| 一道本成人在线| 亚洲伊人色欲综合网| 日本欧美在线看| 亚洲一区二三区| 麻豆视频一区二区| 亚洲一区二区三区小说| 亚洲一区二区在线免费观看视频| 中文字幕一区二区视频| 亚洲国产精品传媒在线观看| 中文字幕一区二区三区在线不卡| 日韩福利视频网| 看国产成人h片视频| 老司机精品视频线观看86| 精品国产一区二区三区忘忧草| 亚洲小说欧美激情另类| 国产欧美一区二区精品婷婷| 日韩精品中文字幕一区| 精品国产一区二区三区四区四| 91日韩在线专区| 欧美写真视频网站| 91精品国产综合久久久久久漫画| 成人av网站免费观看| 国产+成+人+亚洲欧洲自线| 高清成人免费视频| www.在线欧美| 欧美日韩中文另类| 国产不卡视频在线播放| 精品国产免费视频| 欧美三级乱人伦电影| 色悠悠久久综合| 国产一区二区不卡在线 | 日本高清成人免费播放| 日韩av一级片| 91精品国产免费| 欧美精品精品一区| 国产不卡一区视频| 男女男精品网站| 亚洲蜜臀av乱码久久精品| 久久综合国产精品| 日韩欧美一区在线| 制服丝袜国产精品| 欧美日韩在线三级| 欧美午夜不卡视频| 欧美亚洲一区三区| 一本色道久久综合亚洲91| 国产成人午夜片在线观看高清观看 | 美女视频黄频大全不卡视频在线播放| 夜夜爽夜夜爽精品视频| 亚洲欧美另类在线| 中文字幕亚洲在| 欧美精品一区二| 久久影音资源网| 国产视频一区二区三区在线观看| 日韩欧美一卡二卡| 3751色影院一区二区三区| 欧美日韩午夜在线视频| 亚洲第一福利一区| 日韩成人午夜电影| 国内精品久久久久影院一蜜桃| 捆绑调教一区二区三区| 国产制服丝袜一区| 成人av影视在线观看| 成人黄色电影在线| 在线免费视频一区二区| 日韩欧美色综合网站| 国产欧美一区二区三区网站| 亚洲乱码中文字幕综合| 日韩电影在线一区二区| 成人综合婷婷国产精品久久| 99久久婷婷国产综合精品电影 | 99热精品一区二区| 在线免费不卡电影| 欧美不卡123| 18欧美亚洲精品| 免费在线观看视频一区| 国产成人午夜高潮毛片| 欧美视频完全免费看| 精品国产99国产精品| **网站欧美大片在线观看| 午夜精品久久久久久久蜜桃app| 久久精品国产亚洲5555| 日本道色综合久久| 国产亚洲成aⅴ人片在线观看| 97se亚洲国产综合自在线| 夜色激情一区二区| 久久99热99| 在线一区二区三区| 欧美一区午夜精品| 国产午夜亚洲精品不卡| 亚洲国产成人精品视频| 成人激情电影免费在线观看| 91精品国产综合久久精品麻豆| 久久中文字幕电影| 日韩福利视频导航| 色88888久久久久久影院野外| 精品国产乱码久久久久久浪潮 | 91麻豆自制传媒国产之光| 欧美一级理论性理论a| 一区二区三区在线观看网站| 国产黄色精品网站| 欧美丰满嫩嫩电影| 亚洲精品中文在线影院| 国精产品一区一区三区mba桃花| 欧美午夜一区二区三区| 国产精品毛片大码女人| 日本一二三四高清不卡| 日韩高清欧美激情| 91丨国产丨九色丨pron| 国产精品福利一区二区| 奇米色777欧美一区二区| 成人精品鲁一区一区二区| 国产欧美日韩久久| 亚洲国产成人va在线观看天堂| 色噜噜久久综合| 666欧美在线视频| 亚洲一区二区三区影院| 欧美日韩成人综合| 亚洲精品视频在线观看免费 | 国产亚洲综合在线| 偷拍亚洲欧洲综合| 欧美一级一区二区| 美腿丝袜亚洲一区| 欧美精品久久天天躁| 久久精品久久99精品久久| 欧美精品久久久久久久多人混战 | 国产精品一二三四区| 欧美人与禽zozo性伦| 丝袜美腿亚洲综合| 色综合视频一区二区三区高清| 欧美一区二区人人喊爽| 亚洲一区二区三区中文字幕在线 | 精品写真视频在线观看 | 色综合天天综合狠狠| 久久久精品中文字幕麻豆发布| 裸体歌舞表演一区二区| 欧美亚洲高清一区二区三区不卡| 午夜视黄欧洲亚洲| 91麻豆精品国产自产在线| 亚洲资源在线观看| 91美女在线看| 亚洲国产精品一区二区www在线| 日韩欧美一级片| 免费在线成人网| 精品久久久久香蕉网| 国产制服丝袜一区| 欧美精品一区二区在线观看| 成人国产一区二区三区精品| 国产亚洲精品7777| av色综合久久天堂av综合| 亚洲人成在线观看一区二区| 99国产一区二区三精品乱码| 日本视频在线一区| 日韩色在线观看| 国产一区不卡精品| 国产精品久久久久久久久免费樱桃| 91女厕偷拍女厕偷拍高清| 久久精品国产999大香线蕉| 久久欧美一区二区| 色婷婷久久一区二区三区麻豆| 亚洲综合视频在线观看| 精品视频一区三区九区| 粉嫩av一区二区三区| 一区二区三区在线视频免费观看| 欧美日本乱大交xxxxx| 国产一区二区主播在线| 1区2区3区欧美| 欧美国产日韩一二三区| 91啪亚洲精品| 精彩视频一区二区| 中文字幕五月欧美| 日本强好片久久久久久aaa| 中文欧美字幕免费| 欧美性大战久久久| 国产麻豆日韩欧美久久| 亚洲三级在线播放| 狠狠色丁香婷婷综合久久片| 亚洲精品国产品国语在线app| 欧美精品aⅴ在线视频| 成人精品亚洲人成在线|