![]() ![]() Windows users should first check if telnet is installed by running the command telnet on the command line. *nix operating systems (including OS X) should have telnet installed by default. Before starting this problem set, please ensure that you have telnet installed. telnet is a utility that allows you to make a direct network connection to a listening server and communicate with it via a terminal interface. In our version of Minesweeper, the board is always square.īefore You Begin. We are not specifically defining, or asking you to implement, any kind of "win condition" for the game. Your program should allow the user to dig in that square-a user of Multiplayer Minesweeper must accept this kind of risk. Meanwhile, user B has not observed the board state since this update has taken place, so user B goes ahead and digs in square i,j. by digging in one or more squares) such that square i,j obviously has a bomb. For example, say user A has just modified the game state (i.e. Note that there are some tricky cases of user-level concurrency. The player who lost may reconnect to the same game again via telnet to start playing again. The square where the bomb was blown up is now a dug square with no bomb. the server ends their connection), but the other players may continue playing. In our version, when one player blows up a bomb, they still lose, and the game ends for them (i.e. Whereas a standard Minesweeper game would end at this point, in our version, the game keeps going for the other players. In both versions, players lose when they try to dig an untouched square that happens to contain a bomb. Our variant works very similarly to standard Minesweeper, but with multiple players simultaneously playing on a single board. Each square also either contains a bomb, or does not contain a bomb. Each square is either 'flagged', 'dug', or 'untouched'. We will refer to the board as a grid of N*N squares. The final product will consist of a server and no client it should be fully playable using the telnet utility to send text commands directly over a network connection (see further below). (It would be in conflict with giving the option to pass in a pre-designed board, for example.) You should not implement this for the assignment. It ensures that there's never a bomb where you make your first click of the game. Note: You may notice that the implementation in the latter link above does something subtle. ![]() You can try playing traditional/single-player Minesweeper here. You can review the traditional single-player Minesweeper concept rules on Wikipedia: Minesweeper (video game) You will start with some minimal server code and implement a server and thread-safe data structure for playing a multiplayer variant of the classic computer game "Minesweeper." If you need a refresher on how to do this, see Problem Set 0. To get started, you can use git in the same way as discussed in previous problem sets, but this time the repository path is: /afs//course/6/6.005/git/sp13/psets/ps3/.git For example, you can add new methods, classes, and packages, and rename or delete classes other than MinesweeperServer. Failing the test suite means you get 0 points for your submission: beta, final, or otherwise.īeyond this requirement you have complete design freedom. Your code will be tested automatically changing these interfaces or axes will cause our testing suite to fail. Your solution must not change the name, method signature, class name, package name, or specification of the methods () or ().Īlso note that the axis definition of your board must match what is defined in "Grammar for messages from the server to the user" section the (x,y) coordinates start at (0,0) in the top-left corner, extend horizontally to the right in the X direction, and vertically downwards in the Y direction. ![]()
0 Comments
Leave a Reply. |