代写In this project, you'll be working off some skeleton code to build 2048!代做Python程序

Introduction

In this project, you'llbe working off some skeleton code to build 2048! If you're unfamiliar, 2048 is a sliding puzzle game where the goal is to combine same-valued tiles to reach the value 2048. You can  play the game att this link for free to get used to  how  it works. You won't be building the game from scratch, just filling out five blocks. All of those blocks willbe reporters, and should not update the board display—that's handled for you in the skeleton code. So make sure not to mutate the original board. Once you've completed those five block definitions, you won't need to change anything else about the code;it should work!

In a nutshell,the game works like this:

· The starting board contains two tiles with values of 2 or 4.

· When the player hits an arrow key, all tiles on the board "merge" in that direction.

· After each merge,a random tile of value 2 or 4 is added to the screen.

· The game ends when there are no merges left. You "win" if a tile reads “2048” or more!

The board representation in this version of 2048 is abstracted away (we call that an“abstract data type”), but you can picture it as a table that looks like the  picture on the right, containing only 0 and powers of 2 greater than or equal to 2 (e.g., 2, 4, 8, 16, etc). Do not assume  that boards are always 4x4-all the code we give you as well as the code you write should be able to work with any size square board!

Note: Make sure to run your game in Turbo Mode for best response time results. To turn on Turbo Mode, check the “Turbo Mode”box in the gear icon menu. The green starting flag will change to a lightning bolt (as shown).

This project must be completed with a partner. If you're having trouble finding one, head to the Partner-Finding thread on Ed! Do remember that while you may discuss general ideas with students you aren't partners with, sharing code would be academically dishonest. If you're having trouble, please contact the course staff for assistance—Ed, Office hours, labs, and the project party are all here to help you feel good about the work you're doing! If you can't make the times, tell us, and we'll figure out how you can stilll get support. But we won't know when or how to help unless you let us know!

Note:You can import blocks from libraries

Helper Blocks


You willnot need to know how we represent a boarrd in this game—we have provided the following nine helper blocks for you to use to interface with our board implementation. The Power of Abstraction!With this in mind, please make sure not to modify the input board in any of the blocks you write! In addition, please use these blocks,rather than coming up with your own. Also keep in mind that you generally want to abstract as much as possible, meaning you should not use global variables within blocks. We created all custom blocks (including the five you will fill out) so that any information you'l need will be passed into the block as input.

We encourage you to play around with these blocks (input different values and see what the output is)to better understand what they do and how they work —you can also go into each block and look at the code.This will help you when using these blocks in the rest of the project. Just be sure not to change what is inside each of them.

Suggestions

Parts 3 and 4 will take a significant amount of your time spent on the project. We recommend managing your time to accommodate for the influx of difficulty on the latter half of project 3. A good mental checkpoint is to have part 2 done by Friday. These are merely suggestions based on the experience of students from previous semesters.

Part 1:Populating the Board

In this section of the project,you should fill out the 'add 2 or 4 to _'block. The value 2 should have a 75%chance of being added,and the value 4 should have a 25%chance.These values should be added to a randomly-selected empty space on the board.

Input: board-a 2048 game board with at least one empty space

Output: a copy of board with an added value at a random location

Make sure you aren't modifying the original board when working on this. Your output should be a new copy of the board,and should not update the existing board.Updating the existing board is done for you in the provided game code.

Hint: Stuck? Check out some of the existing blocks in Snap! How will you find where to insert the value in the board?Are there any blocks we provide that could help?

Part 2:Rotating the Board

In this part, you should fill out the 'rotate_clockwise' block, which takes in a board and returns a copy of the board that is the result of rotating the input board 90 degrees clockwise.(You will lose points if you rotate anti-clockwise.)

Input: board-a 2048 game board with at least one empty space

Output: a copy of board that has been rotated 90 degrees clockwise

Make sure you aren't modifying the original board when working on this. Your output should be a new copy of the board,and should not update the existing board.Updating the existing board is done for you in the provided game code.

Hint: Take a look at the 'rotated row','rotated column''size of board',and 'copy of'blocks if you're not sure how to do something!In particular,the 'copy of' block will let you duplicate the contents of a board and then update it separately from the original.

Part 3:Merging

In this section of the  project,you'll  be  filling  out  two  blocks:'merge  column_of_up'and  'merge  up_.It  is  highly  recommended  that  you  make  helper  blocks as part of your implementation of 'merge column_of_up!Note that you can create helper blocks by right clicking in the scripting area and selecting“make a block..."

This article breaks down the components of merging a singgle column,which you should mimic with your implementation.Also,make sure that you're

maintaining the  abstraction  provided  by'merge  column of up'when you  build  'merge  up 'which is to say try to use 'merge column of up'while coding  up  'merge  up .

'merge column of up' Input: col  (number,1is  the  leftmost  column),board-a  2048  game   board Output: a copy of the board in which column col has been completely merged up

'merge  up'Input: board-a 2048 game  board at some point in the game Output: a copy of board in which all columns have been merged up

Make sure you aren't modifying the original board when working on this.Your output should be a new version of the board,and should not update the existing board.Updating the existing board is done for you in the provided game code.Note that we only need one block that merges upward (rather than four  blocks that each  merge  left,right,up,down)because we  have  the  'rotate clockwise'block.If we want to  merge  left,for  example,we  can first  rotate the board clockwise 90 degrees,merge up,and then rotate the board clockwise 270 degrees.The provided skeleton code implements this for you,though!

Hint:Stuck?Check out some of the existing blocks in Snap!How will you find where to insert the value in the board?Are there any blocks we provide that could  help?

Part 4:Ending the Game

In this part of the project,you'll be filling in the 'no moves left for_?'block,which should report False when there are still merges available on the board,and True when the board cannot be merged further.Keep in mind that the board can be full and there can still be moves available.

Input: board-a  2048  game  board

Output: whether or not the board can be merged further(Boolean)

Make sure you aren't modifying the original board when working on this.Your output should be a Boolean,ie,True/False value signifying whether the game is over  or  not.Hint:We  found  the"cascade"block  helpful …


热门主题

课程名

mktg2509 csci 2600 38170 lng302 csse3010 phas3226 77938 arch1162 engn4536/engn6536 acx5903 comp151101 phl245 cse12 comp9312 stat3016/6016 phas0038 comp2140 6qqmb312 xjco3011 rest0005 ematm0051 5qqmn219 lubs5062m eee8155 cege0100 eap033 artd1109 mat246 etc3430 ecmm462 mis102 inft6800 ddes9903 comp6521 comp9517 comp3331/9331 comp4337 comp6008 comp9414 bu.231.790.81 man00150m csb352h math1041 eengm4100 isys1002 08 6057cem mktg3504 mthm036 mtrx1701 mth3241 eeee3086 cmp-7038b cmp-7000a ints4010 econ2151 infs5710 fins5516 fin3309 fins5510 gsoe9340 math2007 math2036 soee5010 mark3088 infs3605 elec9714 comp2271 ma214 comp2211 infs3604 600426 sit254 acct3091 bbt405 msin0116 com107/com113 mark5826 sit120 comp9021 eco2101 eeen40700 cs253 ece3114 ecmm447 chns3000 math377 itd102 comp9444 comp(2041|9044) econ0060 econ7230 mgt001371 ecs-323 cs6250 mgdi60012 mdia2012 comm221001 comm5000 ma1008 engl642 econ241 com333 math367 mis201 nbs-7041x meek16104 econ2003 comm1190 mbas902 comp-1027 dpst1091 comp7315 eppd1033 m06 ee3025 msci231 bb113/bbs1063 fc709 comp3425 comp9417 econ42915 cb9101 math1102e chme0017 fc307 mkt60104 5522usst litr1-uc6201.200 ee1102 cosc2803 math39512 omp9727 int2067/int5051 bsb151 mgt253 fc021 babs2202 mis2002s phya21 18-213 cege0012 mdia1002 math38032 mech5125 07 cisc102 mgx3110 cs240 11175 fin3020s eco3420 ictten622 comp9727 cpt111 de114102d mgm320h5s bafi1019 math21112 efim20036 mn-3503 fins5568 110.807 bcpm000028 info6030 bma0092 bcpm0054 math20212 ce335 cs365 cenv6141 ftec5580 math2010 ec3450 comm1170 ecmt1010 csci-ua.0480-003 econ12-200 ib3960 ectb60h3f cs247—assignment tk3163 ics3u ib3j80 comp20008 comp9334 eppd1063 acct2343 cct109 isys1055/3412 math350-real math2014 eec180 stat141b econ2101 msinm014/msing014/msing014b fit2004 comp643 bu1002 cm2030
联系我们
EMail: 99515681@qq.com
QQ: 99515681
留学生作业帮-留学生的知心伴侣!
工作时间:08:00-21:00
python代写
微信客服:codinghelp
站长地图