辅导案例-CSCE 322-Assignment 03

欢迎使用51辅导,51作业君孵化低价透明的学长辅导平台,服务保持优质,平均费用压低50%以上! 51fudao.top
Assignment 03 (Due: November 8, 2019)
CSCE 322
Contents
1 Instructions 1
1.1 Data File Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 csce322a03part(num).hs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2.1 onePlayerOneSlide (csce322a03part01.hs) . . . . . . . . . . . . . . . . . 2
1.2.2 onePlayerManySlides (csce322a03part02.hs) . . . . . . . . . . . . . . . . 3
1.2.3 manyPlayersOneSlide (csce322a03part03.hs) . . . . . . . . . . . . . . . . 4
1.2.4 manyPlayersManySlides (csce322a03part04.hs) . . . . . . . . . . . . . . 5
2 Naming Conventions 6
3 webgrader Note 7
4 Point Allocation 7
5 External Resources 7
List of Figures
1 A properly formatted encoding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2 Game State Before onePlayerOneSlide . . . . . . . . . . . . . . . . . . . . . . . . . 3
3 Game State After onePlayerOneSlide . . . . . . . . . . . . . . . . . . . . . . . . . 3
4 Game State Before onePlayerManySlides . . . . . . . . . . . . . . . . . . . . . . . 4
5 Game State After onePlayerManySlides . . . . . . . . . . . . . . . . . . . . . . . . 4
6 Game State Before manyPlayersOneSlide . . . . . . . . . . . . . . . . . . . . . . . 5
7 Game State After manyPlayersOneSlide . . . . . . . . . . . . . . . . . . . . . . . . 5
8 Game State Before manyPlayersManySlides . . . . . . . . . . . . . . . . . . . . . . 6
9 Game State After manyPlayersManySlides . . . . . . . . . . . . . . . . . . . . . . . 6
1 Instructions
In this assignment, you will be required to write Haskell functions that facilitate the playing of the
variation of Slippery Crossings. You will be provided with skeleton code that includes functionality
for reading from a data file and generating outputs. The code will also include function declarations
that you must define.
1
1.1 Data File Specification
An example of a properly formatted file is shown in Figure 1. The tuple represents a maze and
moves to be made.
(
"uuddrddlrrd",
[
"xxxxxxxxxxxxxx",
"x-----x----x-x",
"x-x------x---x",
"xx -----xx ----x",
"x-----x-xx -xgx",
"x-x--x---x1x -x",
"x-xx ---xxxx --x",
"x------------x",
"x-x---xxx -x--x",
"x-x-----xx ---x",
"x---x--xx ----x",
"xx -x--x------x",
"x--x--x-----xx",
"xx --x---xx -xxx",
"xx --xx --x----x",
"x---x--xx --xxx",
"xxxxxxxxxxxxxx"
]
)
Figure 1: A properly formatted encoding
The tuple contains a list of moves (up, down, left, and right) and a maze (where x corresponds
to a barrier, g corresponds to the goal, - corresponds to an empty space, and numbers correspond
to players).
1.2 csce322a03part(num).hs
This assignment requires the implementation of four (4) methods: onePlayerOneSlide , onePlayerManySlides ,
manyPlayersOneSlide , and manyPlayersManySlides . Each method will be implemented in its
own file (named csce322a03part(num).hs, where (num) is 01, 02, 03, or 04). The behavior of each
function is described below.
1.2.1 onePlayerOneSlide (csce322a03part01.hs)
onePlayerOneSlide :: [[Char]] -> Char -> [[Char]] This method will take a move to make
and a maze, and return a maze after the move according to the following rules:
1. A player must slide in a given direction until they hit a barrier or they land on the goal.
Page 2
("uuddrddlrrd",
[
"xxxxxxxxxxxxxx",
"x-----x----x-x",
"x-x------x---x",
"xx -----xx ----x",
"x-----x-xx -xgx",
"x-x--x---x1x -x",
"x-xx ---xxxx --x",
"x------------x",
"x-x---xxx -x--x",
"x-x-----xx ---x",
"x---x--xx ----x",
"xx -x--x------x",
"x--x--x-----xx",
"xx --x---xx -xxx",
"xx --xx --x----x",
"x---x--xx --xxx",
"xxxxxxxxxxxxxx"
]
)
Figure 2: Game State Before onePlayerOneSlide
"Result"
"xxxxxxxxxxxxxx"
"x-----x---1x-x"
"x-x------x---x"
"xx -----xx ----x"
"x-----x-xx -xgx"
"x-x--x---x-x-x"
"x-xx ---xxxx --x"
"x------------x"
"x-x---xxx -x--x"
"x-x-----xx ---x"
"x---x--xx ----x"
"xx -x--x------x"
"x--x--x-----xx"
"xx --x---xx -xxx"
"xx --xx --x----x"
"x---x--xx --xxx"
"xxxxxxxxxxxxxx"
"END"
Figure 3: Game State After onePlayerOneSlide
Page 3
Sample Sequence
1.2.2 onePlayerManySlides (csce322a03part02.hs)
onePlayerManySlides :: [[Char]] -> [Char] -> [[Char]] This method will take a list of
moves to make and a maze and make each move in accordance to the rules for onePlayerOneSlide .
If the goal is encountered before the last move in the list is made, the player makes none of the
remaining moves.
(
"uurlduurldurrrlruldr",
[
"xxxxxxxxxxxxxxxxxxxxx",
"xx -1x---------x-----x",
"x------xx -----------x",
"x------xx ---x-x-----x",
"x-x--x-xx -----x-x--xx",
"x-----x-xx ----xx---xx",
"x-x--xx ----x--xx----x",
"x-x-----x--x--xxxxx -x",
"x---xx -x-gx --xx-x--xx",
"x-x-xx ------x---x-x-x",
"x--xxx -x-xx ---------x",
"xx ----x--------xx---x",
"x-----x----x-x--x-x-x",
"x-----x----x--x-----x",
"x--xx ----x--x--x--x-x",
"x--------x----------x",
"xxxxxxxxxxxxxxxxxxxxx"
]
)
Figure 4: Game State Before onePlayerManySlides
Page 4
"Result"
"xxxxxxxxxxxxxxxxxxxxx"
"xx --x---------x-----x"
"x------xx -----------x"
"x-----1xx ---x-x-----x"
"x-x--x-xx -----x-x--xx"
"x-----x-xx ----xx---xx"
"x-x--xx ----x--xx----x"
"x-x-----x--x--xxxxx -x"
"x---xx -x-gx --xx-x--xx"
"x-x-xx ------x---x-x-x"
"x--xxx -x-xx ---------x"
"xx ----x--------xx---x"
"x-----x----x-x--x-x-x"
"x-----x----x--x-----x"
"x--xx ----x--x--x--x-x"
"x--------x----------x"
"xxxxxxxxxxxxxxxxxxxxx"
"END"
Figure 5: Game State After onePlayerManySlides
Sample Sequence
1.2.3 manyPlayersOneSlide (csce322a03part03.hs)
manyPlayersManySlidesHelper :: [[Char]] -> [Char] -> [Int] -> [[Char]] This method
will take a list of moves to make and a maze and make the first move for Player 1, the second
move for Player 2. . . in accordance to the rules for onePlayerOneSlide until each player has made
a single move each. If the goal is encountered before every player makes one move, the players
make none of the remaining moves.
Page 5
("dlrruururlr",
[
"xxxxxxxxxxxxxxx",
"xx ------xx -x--x",
"xxx ----xg ---x-x",
"xx ----xx -x----x",
"x-x-----xx ----x",
"x---x-x----x--x",
"x-x----x------x",
"xx ----x-----x-x",
"x-----xx ---x-xx",
"x-x-xxx -2-x---x",
"x--xxxx4x -----x",
"x-xx ----------x",
"x----x-------xx",
"x-x--xx -------x",
"x--xxx --3x--xxx",
"x-x----1------x",
"xxxxxxxxxxxxxxx"
]
)
Figure 6: Game State Before manyPlayersOneSlide
"Result"
"xxxxxxxxxxxxxxx"
"xx ------xx-x--x"
"xxx ----xg ---x-x"
"xx ----xx -x----x"
"x-x-----xx ----x"
"x---x-x----x--x"
"x-x----x------x"
"xx ----x-----x-x"
"x-----xx ---x-xx"
"x-x-xxx2 --x---x"
"x--xxxx4x -----x"
"x-xx ----------x"
"x----x-------xx"
"x-x--xx -------x"
"x--xxx --3x--xxx"
"x-x----1------x"
"xxxxxxxxxxxxxxx"
"END"
Figure 7: Game State After manyPlayersOneSlide
Page 6
Sample Sequence
1.2.4 manyPlayersManySlides (csce322a03part04.hs)
manyPlayersManySlidesHelper :: [[Char]] -> [Char] -> [Int] -> [[Char]] This method
will take a list of moves to make and a maze and make the first move for Player 1, the second move
for Player 2. . . in accordance to the rules for onePlayerOneSlide . If the goal is encountered before
the last move in the list is made, the players make none of the remaining moves.
(
"ulludllrrlddldud",
[
"xxxxxxxxxxxxxxxxxxxx",
"x------x---x--x----x",
"x---xg -xx ---x----x-x",
"x--------xx--------x",
"xx ----------x--xx--x",
"x---x--x-x--------xx",
"xx --x-----x-xx--x--x",
"x----------x----x-xx",
"xxx --xxx --xxx ------x",
"x--x---------xxxxx3x",
"x-------x-------x--x",
"x-x--x--x-xx ---x--xx",
"x2xx ----x--------x-x",
"x-1----xx -----x----x",
"xxxxxxxxxxxxxxxxxxxx"
]
)
Figure 8: Game State Before manyPlayersManySlides
Page 7
"Result"
"xxxxxxxxxxxxxxxxxxxx"
"x------x---x--x----x"
"x---xg -xx ---x----x-x"
"x--------xx--------x"
"xx ----------x--xx--x"
"x---x--x-x--------xx"
"xx --x-----x-xx--x--x"
"x----------x----x-xx"
"xxx --xxx --xxx -----3x"
"x--x---------xxxxx -x"
"x-------x-------x--x"
"x-x--x--x-xx ---x--xx"
"x-xx ----x--------x-x"
"x21 ----xx -----x----x"
"xxxxxxxxxxxxxxxxxxxx"
"END"
Figure 9: Game State After manyPlayersManySlides
Sample Sequence
2 Naming Conventions
You will be submitting at least 4 .hs files (csce322a03part01.hs, csce322a03part02.hs, csce322a03part03.hs,
and csce322a03part04.hs). If you do not submit a modified Helpers.hs file, the default one will
be provided.
3 webgrader Note
Submissions will be tested with ghc. cse.unl.edu is currently running version 8.0.2 of ghc.
4 Point Allocation
Component Points
csce322a03part01.hs 30%
csce322a03part02.hs 20%
csce322a03part03.hs 20%
csce322a03part04.hs 30%
Total 100
Page 8
5 External Resources
Learn Haskell Fast and Hard
Learn You a Haskell for Great Good!
Red Bean Software
Functional Programming Fundamentals The Haskell Cheatsheet
Page 9
51作业君

Email:51zuoyejun

@gmail.com

添加客服微信: abby12468