The project is a text-based adventure game of your own invention that satisfies
ID: 3605052 • Letter: T
Question
The project is a text-based adventure game of your own invention that satisfies the following requirements.
There must be an object to the game (e.g., it may be to reach a specific location, collect treasures, or both, or something else). There must be some way to 'win'.
The game must include at least 10 different locations.
The game must include at least 5 carryable items and 5 non-carryable items.
There must be at least 5 puzzles in the game. For example, when a player wants to move from one location to another, the player must solve some sort of puzzle before the movement is permitted. Puzzles are NOT needed for all movements but there must be at least 5 puzzles in total in the game.
The player can only carry a limited number of items. In particular, it must NOT be possible for the player to carry all the items needed to solve all the puzzles.
Commands to save and restore a game are required.
A "back" command is required. For example, if a player has moved from "A" to "B" to "C", then if the player issues a "back" command, the player will return to "B" (and if a second "back" command is issued, the player will return to "A"). Note, it is not necessary for the "back" command to work in every instance (e.g., if the player has fallen down a non-climbable cliff then "back" will not work and the player remains where he/she is). However, the "back" command must work (as appropriate) in a restored game. For example, if a player has moved from "A" to "B" to "C", then saves the game and restores it, the "back" command will return the player to "B".
As the player moves about the game a score for the player must be calculated. A command to view the player's current score is required and the score must also be displayed when the player stops playing the game.
The game must include at least one other character (or creature, or ...) that can move about the game independently and interferes with the player's ability to complete the game. Hence, to complete the game, the player must solve at least one puzzle that involves this other character.
The game must be written in Java and it must demonstrate your understanding of object-oriented design, classes and interfaces, exception handling, inheritance, file I/O, packages, static variables and methods, and containers.
Explanation / Answer
import java.awt.*;
import java.awt.event.*;
import javax.swing.JOptionPane;
public class Puzzle extends Frame implements ActionListener{
Button b1,b2,b3,b4,b5,b6,b7,b8,b9;
Puzzle(){
super("Puzzle - JavaTpoint");
b1=new Button("1");
b1.setBounds(50,100,40,40);
b2=new Button("2");
b2.setBounds(100,100,40,40);
b3=new Button("3");
b3.setBounds(150,100,40,40);
b4=new Button("4");
b4.setBounds(50,150,40,40);
b5=new Button("5");
b5.setBounds(100,150,40,40);
b6=new Button("6");
b6.setBounds(150,150,40,40);
b7=new Button("7");
b7.setBounds(50,200,40,40);
b8=new Button("");
b8.setBounds(100,200,40,40);
b9=new Button("8");
b9.setBounds(150,200,40,40);
b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);
b4.addActionListener(this);
b5.addActionListener(this);
b6.addActionListener(this);
b7.addActionListener(this);
b8.addActionListener(this);
b9.addActionListener(this);
add(b1);add(b2);add(b3);add(b4);add(b5);add(b6);add(b7);add(b8);add(b9);
setSize(400,400);
setLayout(null);
setVisible(true);
}
public void actionPerformed(ActionEvent e){
if(e.getSource()==b1){
String label=b1.getLabel();
if(b2.getLabel().equals("")){
b2.setLabel(label);
b1.setLabel("");
}
if(b4.getLabel().equals("")){
b4.setLabel(label);
b1.setLabel("");
}
}
if(e.getSource()==b2){
String label=b2.getLabel();
if(b1.getLabel().equals("")){
b1.setLabel(label);
b2.setLabel("");
}
if(b3.getLabel().equals("")){
b3.setLabel(label);
b2.setLabel("");
}
if(b5.getLabel().equals("")){
b5.setLabel(label);
b2.setLabel("");
}
}
if(e.getSource()==b3){
String label=b3.getLabel();
if(b2.getLabel().equals("")){
b2.setLabel(label);
b3.setLabel("");
}
if(b6.getLabel().equals("")){
b6.setLabel(label);
b3.setLabel("");
}
}
if(e.getSource()==b4){
String label=b4.getLabel();
if(b1.getLabel().equals("")){
b1.setLabel(label);
b4.setLabel("");
}
if(b7.getLabel().equals("")){
b7.setLabel(label);
b4.setLabel("");
}
if(b5.getLabel().equals("")){
b5.setLabel(label);
b4.setLabel("");
}
}
if(e.getSource()==b5){
String label=b5.getLabel();
if(b2.getLabel().equals("")){
b2.setLabel(label);
b5.setLabel("");
}
if(b6.getLabel().equals("")){
b6.setLabel(label);
b5.setLabel("");
}
if(b4.getLabel().equals("")){
b4.setLabel(label);
b5.setLabel("");
}
if(b8.getLabel().equals("")){
b8.setLabel(label);
b5.setLabel("");
}
}
if(e.getSource()==b6){
String label=b6.getLabel();
if(b9.getLabel().equals("")){
b9.setLabel(label);
b6.setLabel("");
}
if(b3.getLabel().equals("")){
b3.setLabel(label);
b6.setLabel("");
}
if(b5.getLabel().equals("")){
b5.setLabel(label);
b6.setLabel("");
}
}
if(e.getSource()==b7){
String label=b7.getLabel();
if(b4.getLabel().equals("")){
b4.setLabel(label);
b7.setLabel("");
}
if(b8.getLabel().equals("")){
b8.setLabel(label);
b7.setLabel("");
}
}
if(e.getSource()==b8){
String label=b8.getLabel();
if(b9.getLabel().equals("")){
b9.setLabel(label);
b8.setLabel("");
}
if(b7.getLabel().equals("")){
b7.setLabel(label);
b8.setLabel("");
}
if(b5.getLabel().equals("")){
b5.setLabel(label);
b8.setLabel("");
}
}
if(e.getSource()==b9){
String label=b9.getLabel();
if(b6.getLabel().equals("")){
b6.setLabel(label);
b9.setLabel("");
}
if(b8.getLabel().equals("")){
b8.setLabel(label);
b9.setLabel("");
}
}
//congrats code
if(b1.getLabel().equals("1")&&b2.getLabel().equals("2")&&b3.getLabel()
.equals("3")&&b4.getLabel().equals("4")&&b5.getLabel().equals("5")
&&b6.getLabel().equals("6")&&b7.getLabel().equals("7")&&b8.getLabel()
.equals("8")&&b9.getLabel().equals("")){
JOptionPane.showMessageDialog(this,"Congratulations! You won.");
}
}
public static void main(String[] args) {
new Puzzle();
}
}
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.