Share
Explore

Good morning, Mr. Phelps. Your mission, should you choose to accept it

Good morning, Mr. Phelps. Your mission, should you choose to accept it, is to prevent the outbreak of World War 3 by aiding Ethan Hunt in retrieving a USB key containing secret documents from the enemy embassy. These documents are vital to our national security and must not fall into the wrong hands.
You'll be responsible for guiding Ethan through a series of challenges that will test your wits and strategy. Your first task is to infiltrate the enemy embassy and locate the secure vault where the USB key is being held. You'll need to bypass the security systems in place, including cameras, motion sensors, and guards.
Once inside the vault, you'll need to crack the code to access the USB key. Pay close attention to your surroundings, as clues to the code may be hidden in plain sight. Retrieve the USB key and make your way to the extraction point, avoiding detection by enemy forces.
Throughout the mission, you'll need to rely on your intuition and problem-solving skills to help Ethan succeed. Remember, timing is crucial, and you must work together to overcome obstacles and complete the mission.
As always, if you or any member of your team is caught or killed, the Secretary will disavow any knowledge of your actions. This tape will self-destruct in five seconds.
Good luck, Jim.

Learning Outcome:

Write a Java Object Oriented Application to role play a Mission Impossible game in which the human user of the program helps Ethan Hunt Fulfill his mission to retrieve the usb key from the Enemy's Embassy with the Secret Documents that will prevent World War 3

Below is a simple Java Object Oriented Application to role play a Mission Impossible game. The application consists of several classes: MissionImpossibleGame, EthanHunt, EnemyEmbassy, SecretDocuments, and USBKey. The main class, MissionImpossibleGame, is responsible for running the game, and the other classes represent various game components.

// EthanHunt.java
public class EthanHunt {
private boolean hasUSBKey;

public EthanHunt() {
hasUSBKey = false;
}

public void retrieveUSBKey() {
hasUSBKey = true;
}

public boolean hasUSBKey() {
return hasUSBKey;
}
}

// EnemyEmbassy.java
public class EnemyEmbassy {
private final USBKey usbKey;

public EnemyEmbassy(SecretDocuments secretDocuments) {
usbKey = new USBKey(secretDocuments);
}

public USBKey getUSBKey() {
return usbKey;
}
}

// SecretDocuments.java
public class SecretDocuments {
private boolean worldWar3Prevented;

public SecretDocuments() {
worldWar3Prevented = false;
}

public void preventWorldWar3() {
worldWar3Prevented = true;
}

public boolean isWorldWar3Prevented() {
return worldWar3Prevented;
}
}

// USBKey.java
public class USBKey {
private final SecretDocuments secretDocuments;

public USBKey(SecretDocuments secretDocuments) {
this.secretDocuments = secretDocuments;
}

public SecretDocuments getSecretDocuments() {
return secretDocuments;
}
}

// MissionImpossibleGame.java
import java.util.Scanner;

public class MissionImpossibleGame {
public static void main(String[] args) {
EthanHunt ethanHunt = new EthanHunt();
SecretDocuments secretDocuments = new SecretDocuments();
EnemyEmbassy enemyEmbassy = new EnemyEmbassy(secretDocuments);

System.out.println("Welcome to the Mission Impossible game!");
System.out.println("Your mission, should you choose to accept it, is to help Ethan Hunt retrieve the USB key from the Enemy Embassy containing the Secret Documents that will prevent World War 3.");
System.out.println("Type 'start' to begin.");

Scanner scanner = new Scanner(System.in);
String input = scanner.nextLine();

if (input.equalsIgnoreCase("start")) {
System.out.println("You have entered the Enemy Embassy. Type 'retrieve' to retrieve the USB key.");

input = scanner.nextLine();

if (input.equalsIgnoreCase("retrieve")) {
ethanHunt.retrieveUSBKey();
System.out.println("Ethan has successfully retrieved the USB key!");

if (ethanHunt.hasUSBKey()) {
USBKey usbKey = enemyEmbassy.getUSBKey();
SecretDocuments retrievedDocuments = usbKey.getSecretDocuments();
retrievedDocuments.preventWorldWar3();

if (retrievedDocuments.isWorldWar3Prevented()) {
System.out.println("Congratulations! You have successfully prevented World War 3!");
}
}
} else {
System.out.println("Invalid input. Mission failed.");
}
} else {
System.out.println("Invalid input. Mission failed.");
}

scanner.close();
}
}
This is a very basic implementation and can be extended to include more features, such as adding obstacles, enemy agents, and various missions.



Add to the original code to provide Java Classes for these specifications: extend and amplify this example such that Ethan Hunt must attempt entry to several rooms to look for the safe with the usb key. He must disable alarms and cameras. He must set off a fire cracker to lure a guard away from a door while he picks the lock.

Here is the sample code for the described scenario using Java classes:

import java.util.ArrayList;

class Mission {
public static void main(String[] args) {
Embassy embassy = new Embassy();
EthanHunt ethan = new EthanHunt();

boolean missionSuccess = ethan.findUSBKey(embassy);
System.out.println("Mission status: " + (missionSuccess ? "Success" : "Failed"));
}
}

class Embassy {
private ArrayList<Room> rooms;

public Embassy() {
rooms = new ArrayList<>();
// Initialize rooms with different security measures
rooms.add(new Room(true, true, false));
rooms.add(new Room(false, true, true));
// The room with the USB key
rooms.add(new Room(true, false, true));
}

public ArrayList<Room> getRooms() {
return rooms;
}
}

class Room {
private boolean alarmEnabled;
private boolean cameraEnabled;
private boolean hasUSBKey;

public Room(boolean alarmEnabled, boolean cameraEnabled, boolean hasUSBKey) {
this.alarmEnabled = alarmEnabled;
this.cameraEnabled = cameraEnabled;
this.hasUSBKey = hasUSBKey;
}

public boolean isAlarmEnabled() {
return alarmEnabled;
}

public boolean isCameraEnabled() {
return cameraEnabled;
}

public boolean hasUSBKey() {
return hasUSBKey;
}
}

class EthanHunt {
public boolean findUSBKey(Embassy embassy) {
for (Room room : embassy.getRooms()) {
if (disableAlarm(room) && disableCamera(room)) {
if (room.hasUSBKey()) {
return true;
}
}
}
return false;
}

private boolean disableAlarm(Room room) {
if (room.isAlarmEnabled()) {
// Code to disable alarm
return true;
}
return false;
}

private boolean disableCamera(Room room) {
if (room.isCameraEnabled()) {
// Code to disable camera
return true;
}
return false;
}

private void setOffFirecracker() {
// Code to set off firecracker
}

private void lureGuard() {
setOffFirecracker();
// Code to lure guard away from the door
}

private boolean pickLock() {
// Code to pick the lock
return true;
}
}
This code provides the basic structure for the described scenario. The Embassy class represents the enemy embassy with multiple rooms. The Room class represents a room with various security measures (alarms, cameras) and the USB key. The EthanHunt class contains methods for disabling alarms, cameras, setting off firecrackers, luring guards, and picking locks. The main method in the Mission class starts the mission and checks if Ethan Hunt can find the USB key.
Want to print your doc?
This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (
CtrlP
) instead.