Skip to content

Exercise 11 - Objekte und Funktionen

let spaceship = {
name: "Daedalus",
class: "BC-304",
crew: [
{
name: "Steven Caldwell",
rank: "Colonel",
position: "Commanding officer",
},
{
name: "Patrick Bishop",
rank: "Lt. Colonel",
position: "Navigator",
},
{
name: "Melissa Hocken",
rank: "Lt. Colonel",
position: "Pilot",
},
{
name: "Kevin Marks",
rank: "Major",
position: "Weapons Officer",
},
{
name: "Megan Cooper",
rank: "Captain",
position: "Navigator",
},
{
name: "Mark Stern",
rank: "Lt.",
position: "Communications Officer",
},
{
name: "Lindsey Novak",
rank: "Dr.",
position: "Engineer",
},
{
name: "Dave Kleinman",
rank: "Dr.",
position: "Weapons Officer",
},
],
engines: [
{
type: "Maneuvering thrusters",
speed: 300,
speedUnit: "km/s",
consumption: {
kind: "Naquadah",
amount: 1,
unit: "s",
},
},
{
type: "Sublight drive",
speed: 250000,
speedUnit: "km/s",
consumption: {
kind: "Naquadah",
amount: 167,
unit: "s",
},
},
{
type: "Asgard hyperdrive",
speed: 150,
speedUnit: "ly/h",
consumption: {
kind: "Zero Point Module",
},
},
],
fuel: [
{
type: "Naquadah",
kind: "limited",
amount: 10000,
},
{
type: "Zero Point Module",
kind: "unlimited",
},
],
weapons: [
{
type: "Asgard plasma beam",
amount: 4,
damage: 1000,
cooldown: 20,
},
{
type: "Railgun",
amount: 32,
damage: 150,
cooldown: 30,
},
],
};
// Wie viele Crew-Mitglieder gibt es?
// TODO: Erstelle die Funktion
// TODO: Kommentiere die Zeile ein und überprüfe es.
// console.log("Es gibt", countCrewMembers(spaceship), "Crew-Mitglieder");
// Wie viele Crew-Mitglieder sind Weapons Officer?
// TODO: Erstelle die Funktion
// TODO: Kommentiere die Zeile ein und überprüfe es.
// console.log("Es gibt", countWeaponsOfficers(spaceship), "Weapons Officer");
// Füge der Crew ein neues Mitglied hinzu:
const newCrewMember = {
name: "Pat Meyers",
rank: "Major",
position: "Navigator",
};
// TODO: Erstelle die Funktion
// TODO: Kommentiere die Zeile aus und überprüfe es.
addCrewMember(spaceship, newCrewMember);
// Wie viele Navigatoren gibt es jetzt, nachdem das neue Mitglied hinzugefügt wurde?
// TODO: Erstelle die Funktion
// TODO: Kommentiere die Zeilen ein und überprüfe es.
// console.log(
// "Es gibt",
// countCrewByPosition(spaceship, "Navigator"),
// "Navigatoren"
//);
// Beim Reisen mit dem Sublight drive wird Naquadah verbraucht.
// Pro Sekunde werden 167 Einheiten verbraucht.
// Erstelle eine Funktion useSublightDrive mit der das Raumschiff bewegt wird.
// Dabei wird angegeben wie weit sich das Schiff bewegen soll (in km).
// Die Funktion gibt ein Objekt zurück, das angibt wie lange die Reise gedauert hat,
// wie viel Naquadah verbraucht wurde und wie weit wirklich gereist wurde.
// Achte darauf dass nicht weiter gereist wird, wenn kein Naquadah mer übrig ist.
// Außerdem sollen die Naquadah-Reserven im Schiff um die richtige Menge reduziert werden.
// TODO: Erstelle die Funktion
// TODO: Kommentiere die Zeilen ein und überprüfe es.
// let moveResult = useSublightDrive(spaceship, 59456851);
// console.log(
// "Die Distanz von",
// moveResult.distance,
// "km dauerte",
// moveResult.time,
// "Sekunden und hat",
// moveResult.fuelAmount,
// "Naquadah verbraucht."
// );
// console.log(
// "Das Schiff hat noch",
// spaceship.fuel[0].amount,
// "Einheiten Naquadah übrig."
// );