-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathSummary.txt
89 lines (70 loc) · 5.66 KB
/
Summary.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
Team-35-Scrabble-Game
Gaming is a popular entertainment venture, a lot of gaming currently is being done virtually online. In the cit-591 course, we have had the practice of some of the popular games like BlackjackSolitaire as an assignment, and on a basic level Chess, Snakes and Ladders, etc. We want to build on this expertise and scale higher with new games called Scrabble. In this game, a user (or two users) can access and play against each other. In this game, players will have a game board, 15 by 15 tiles, a letter bag, and seven racks. The rule is player 1 clicks the letter in the rack and then clicks any tile on the board to relocate the letter. Each time the player finishes this round, click the submit button to save the words on board, then it will pass to the other player or next round. The more words player made, the more score the player wins. Each letter has its score and some tiles have bonus effects.
Implementation Method:
•Front End GUI:
•JavaFX (needed JDK-11.0.7 for Java)
•Gradle
•Challenges:
•Setup and Interfacing with Back End
•Handling animation, and event handling
•Back End:
•Implemented the Scrabble Algorithm, and created some new rules for the game
•Using Classes, and different data Structures.
•Challenges:
•The Scrabble Algorithm was much more challenging than originally envisioned.
•Includes storing previously created words, and the scores associated with the letters ONLY as memory (by updating associated objects)
•Also, there are different kinds of scores that need to be considered from the Board and Letters.
•Also check if the word is correct from partially provided word as half the letters were already used previously on the board!
•CRC Cards created at the beginning of the project were very helpful
•Classes for Back End:
•ScrabbleRunner (same as main.java): start GUI (gameUI)
•GUI: includes inputReader, display, playerList
•ScrabbleGame: includes play, dictionary, playerTurn, gameResult, playAgain, reStartPlay
•Dictionary
•Board: includes currentBoard
•BagOfLetters: includes shuffleAndPickLetters, getCurrentBagOfLetters, removeLetter, addLetters, isEmpty
•WordBuilder
•Letter
•Cell
•ScoreKeeper: scoreOfEachPlayer (TBD: may not be needed, as already available from each Player)
•Player: includes currentTrayOfLetters (Here, 7 for Scrabble), letterSelectionChoice, getTotalScore, getCurrentLetterTray
•Front-End Classes:
•GUI
•Welcome GUI Controller
•Board GUI Controller
## How to run in visual studio code (preferred)
*Make sure you have Java 11 or higher installed.
1. Clone this repo to your local machine with this link https://github.com/UPenn-CIT599/final-project-team-35-scrabble.git
2. Unzip it and open the folder in Visual Studio Code.
3. Launch the app from visual studio code by running the main file "ScrabbleRunner.java" under scrabble/src/main/java/scrabble.
## How to run in terminal
1. Open a terminal under folder "Scrabble".
2. Build a Gradle project in terminal: "./gradlew build" for Mac or ".\gradlew build" for PC
3. Run the project in terminal: "./gradlew run" for Mac or ".\gradlew run" for PC.
## How to run in Eclipse (Method-1):
1. Download Scrabble.zip into your desktop
2. Unzip the folder into you eclipse-workspace
3. Open eclipse
4. Select "File" --> Open Projects from File System, and Select the Unzipped "Scrabble" folder
5. now that the File System has been picked by eclipse and configure, right-click on the "Scrabble" Project, then go to "Gradle", and hit "Refresh Gradle Project"
6. Now, In the top bar of eclipse, Select Project --> then hit "Build Project". (This step is needed as sometimes eclipse may not "build project" automatically!)
7. Now you should be able to run the "Scrabble" game by running the "Scrabble Runner".
8. Please let us know if you run into any issues.
## How to run in Eclipse (Method-2)
1. Add JavaSE-11.0.7 library.
Right click on the Scrabble project -> Project -> Properties -> Java Build Path -> Library tab -> Add Library -> JRE System Library ->
Execution environment -> JavaSE-11.0.7
2. Download JavaFX from https://openjfx.io/. Unzip it.
3. Add JavaFx library to eclipse
Right click on the Scrabble project -> Project -> Properties -> Java Build Path -> Library tab -> Add Library -> User Library -> User Library -> New -> name it as JavaFX -> Browse to the JavaFx library you just downloaded. Add all JARs in the folder. Here is a more detailed instruction: https://www.javatpoint.com/javafx-with-eclipse
How to Play
In the welcome page, you can choose a single-player mode 🕺 or multiplayer mode and name your player.
In the game page, you can click the letter in the rack and then click any tile you want to relocate the letter.🎴 The first word must be played using the center square with a star. ⭐️ Each time you finish this round, click submit button, it will pass to the other player or your next round.🔂 The more words you made, the more score you win. Each letter has its score and some tiles have bonus effects.🤑
You can search if a word is in the dictionary by clicking the search button 📖, swap tiles from the tile bag by clicking the swap button, and the letter you want to swap and swap button again 🔄, pass your turn by clicking pass button ▶️and undo your step by clicking undo button.↩️
You can check how many letters are left in the letter bag by clicking the bag button.
Authors
Shodhan Shetty--Initiated and completed the back-end of this game, including the Scrabble algorithm
Daisy Liu--Designed the Project structure and implemented the GUI
Yugui Chen--Created all the images elements in the GUI and completed all the JUnit test
Yugui Chen--Support the GUI design and completed all the JUnit test files