Wo liegt der Fehler, dass JavaScript neu hinzugefügte Bilder nicht berücksichtigt?

Hallo,

ich lerne gerade JavaScript.

Um es zu üben, habe ich ein kleines Memoryspiel programmiert. Dabei sollen aus mehreren Bilder per Zufall zehn Bildpaare ausgewählt und auf der Seite angezeigt werden. Als ich heute weiter Bilder eingefügt habe, fiel mir auf, dass die neu hinzugefügten Bilder nicht vom Zufallsgenerator berücksichtigt werden. Leider finde ich den Fehler nicht.

Hier ist mein Code:

const bilder = [
  'Memory/hund1.png',
  'Memory/katze1.png',
  'Memory/blume1.png',
  'Memory/blitz1.png',
  'Memory/hexe.png',
  'Memory/ufo.png',
  'Memory/frau.png',
  'Memory/geist.png',
  'Memory/papagei.png',
  'Memory/schmetterling.png',
  'Memory/taschenuhr.png',
  'Memory/kompass.png',
  'Memory/hasen.png',
  'Memory/springbrunnen.png',
  'Memory/ballon.png',
  'Memory/daenerys.png',
  'Memory/dino.png',
  'Memory/erde.png',
  'Memory/frosch.png',
  'Memory/laub.png',
  'Memory/orange.png',
  'Memory/paar.png',
  'Memory/schloss.png',
  'Memory/teddy.png',
  'Memory/tiger.png',
  'Memory/tropen.png',
  'Memory/wasserfall.png',
  'Memory/biene.png',
  'Memory/mädchen.png',
  'Memory/villa.png',
  'Memory/insel.png',
  'Memory/insel2.png',
  'Memory/wettersymbol.png',
  'Memory/altesauto.png',
  'Memory/ente.png',
  'Memory/kolibri.png',
  'Memory/tinkerbell.png',
  'Memory/fraukatze.png',
  'Memory/vögellaub.png',
  'Memory/sphinx.png',
  'Memory/skulptur.png',
  'Memory/schach.png',
  'Memory/raben.png',
  'Memory/hochhaus.png',
  'Memory/zitronen.png',
  'Memory/lstand.png',
  'Memory/limonade.png',
  'Memory/trinken.png',
  'Memory/hexe2.png',
  'Memory/leuchtturm.png',
  'Memory/leuchtturm2.png',
  'Memory/dänemark.png',
  'Memory/dänemark2.png',
  'Memory/schienen.png',
  'Memory/kuba.png',
  'Memory/havanna.png',
  'Memory/tinkerbell.png',
  'Memory/fraukatze.png',
  'Memory/vögellaub.png',
  'Memory/sphinx.png',
  'Memory/skulptur.png',
  'Memory/schach.png',
  'Memory/raben.png',
  'Memory/hochhaus.png',
  'Memory/zitronen.png',
  'Memory/lstand.png',
  'Memory/limonade.png',
  'Memory/trinken.png',
  'Memory/hexe2.png',
  'Memory/leuchtturm.png',
  'Memory/leuchtturm2.png',
  'Memory/dänemark.png',
  'Memory/dänemark2.png',
  'Memory/schienen.png',
  'Memory/kuba.png',
  'Memory/havanna.png'
];
let karten = [];
let aufgedeckteKarten = 0;
let ersteKarte = null;
let zweiteKarte = null;
let übereinstimmendeKarten = 0;
let spielfeldGesperrt = false;

function kartenMischen() {
  const ausgewählteBilder = bilder.slice(0);
  karten = ausgewählteBilder.sort(() => Math.random() - 0.5);
  karten = karten.slice(0, 10).concat(karten.slice(0, 10));
}

function karteUmdrehen(karte) {
  if (spielfeldGesperrt) return;
  if (karte === ersteKarte) return;

  karte.style.backgroundImage = `url(${karte.dataset.bild})`;

  if (!ersteKarte) {
    ersteKarte = karte;
  }
  else {
    zweiteKarte = karte;
    übereinstimmungPrüfen();
  }
}

function übereinstimmungPrüfen() {
  spielfeldGesperrt = true;

  if (ersteKarte.dataset.bild === zweiteKarte.dataset.bild) {
    übereinstimmendeKarten += 2;

    if (übereinstimmendeKarten === karten.length) {
      alert('Herzlichen Glückwunsch! Du hast gewonnen!');
    }

    kartenDeaktivieren();
  }
  else {
    setTimeout(() => {
      ersteKarte.style.backgroundImage = 'none';
      zweiteKarte.style.backgroundImage = 'none';
      kartenZurücksetzen();
    }, 1000);
  }
}

function kartenDeaktivieren() {
  ersteKarte.removeEventListener('click', () => karteUmdrehen(ersteKarte));
  zweiteKarte.removeEventListener('click', () => karteUmdrehen(zweiteKarte));
  kartenZurücksetzen();
}

function kartenZurücksetzen() {
  [ersteKarte, zweiteKarte] = [null, null];
  spielfeldGesperrt = false;
}

const spielfeld = document.getElementById('spielfeld');
kartenMischen();

for (let i = 0; i < karten.length; i++) {
  const karte = document.createElement('div');
  karte.classList.add('karte');
  karte.dataset.bild = karten[i];
  karte.style.backgroundImage = 'none';
  karte.addEventListener('click', () => karteUmdrehen(karte));
  spielfeld.appendChild(karte);
}

Es wäre schön wenn mir jemand sagt, wo mein Fehler liegt.

Danke

Spiele, JavaScript
Spielidee Cars Lighting McQueen?

Hallo zusammen,

Ein Freund und ich haben uns letztes Mal über Videospiele unterhalten und kamen auf Cars Lightning McQueen, dass man darauf eigentlich ein mega cooles Rennspiel machen könnte.

Wir haben die Idee Mal formuliert und wollten Mal fragen was ihr dazu sagt.

Wie findet ihr die Videospielidee?

Cars: lighting McQueen Piston Cup

Das Rennspiel bietet eine fesselnde Mehrspieler-Erfahrung, bei der man in die Rolle von Lightning McQueen und anderen beliebten Charakteren aus "Cars: Lightning McQueen" schlüpfen kann. Das Hauptziel des Spiels besteht darin, den begehrten Piston Cup zu gewinnen und sich stets in den Top-Rängen zu behaupten.

Es sind verschiedene Events entwickelt, die für unterschiedliche Fortschrittsklassen geeignet sind. Diese reichen von Einsteigerrennen, bei denen die Autos noch in ihrem Grundzustand sind, bis hin zu den anspruchsvollsten Wettbewerben, bei denen ausschließlich Elektroautos teilnehmen können.

Die Spielphilosophie hebt sich von anderen Rennspielen ab, denn es geht nicht allein darum, wer das am besten ausgerüstete Rennauto hat. Vielmehr liegt der Fokus auf fahrerisches Können und clevere Strategien. Das bedeutet, dass selbst ein wenig getuntes Auto erfolgreich gegen die neuesten Hochleistungsfahrzeuge antreten kann, wenn der Fahrer seine Fähigkeiten meisterhaft einsetzt.

Die Events finden in Echtzeit statt, um ein authentisches und realistisches Spielerlebnis zu schaffen. Im Spiel kann man spezielle Fahrtechniken freischalten, darunter das legendäre Springen von Lightning McQueen und das Driften an Kurven, inspiriert von Doc Hudson.

Die Fahrphysik wäre akribisch gestaltet, um es realistisch anfühlen zu lassen und die Autos bewegen sich genauso geschmeidig und lebensecht wie im Film. Dadurch kann man noch tiefer in die Welt von "Cars: Lightning McQueen" eintreten und erlebt, wie es ist, Teil dieser faszinierenden Geschichte zu sein.

Darüber hinaus gibt es die Möglichkeit, die Lackierung des Rennwagens nach eigenen Wünschen anzupassen. Man kann zwischen verschiedenen Teams wählen, wobei man mit Lightning McQueen im Standardteam beginnt. Doch mit steigenden Erfahrungspunkten erhält man die Möglichkeit, in ein anderes Team zu wechseln, wodurch sich nicht nur die Lackierung, sondern auch der Teamchef und viele weitere Aspekte deines Rennabenteuers verändern.

Würdet ihr wenn so ein Spiel von Cars entwickelt werden würde, das Spiel spielen?

Ich mein, das wäre doch eine mega Idee und würde sicherlich viele Spieler anziehen

Spiele, Disney, Konsolen, Gaming, Autorennen, Cars, Fantasie, Spieleentwicklung, zocken, Rennspiel
Wieso spielen in 2023 noch Leute auf PS4 statt PS5?

Ich meine das Argument dass man sie nicht mehr easy bekommt ist ja hinfällig.

Am 11.09. hab ich meine am selben tag für 449€ bei Saturn abgeholt, eine Woche später hab ich mir für 422€ eine geholt und die andere an saturn zurück.

Also man könnte save heute noch eine bekommen oder wenn man ne Woche wartet save auch für 450-460.

Und ich meine es gibt auch noch einige Spiele für PS4 aber das ist kein Vergleich. Schaut euch Horizon Forbidden West an, auf PS5 1000X geiler und man hat natürlich die Controller Features die bei PS4 alle fehlen, genauso wie das DLC.

Also find das immer weird wenn ich derzeit noch Leute sehe die auf PS4 (alte oder Slim) zocken.

Wo ichs noch bisschen verstehen kann ist PS4 Pro, wo spiele wenigstens auf 60fps laufen und die Grafik bei manchen spielen klar geht, aber selbst da sollte man mittlerweile upgraden. Für normale Standard PS4 oder PS4 Slim seh ich eigentlich nur noch so als Konsole wo man seine kinder dran spielen lässt wenn man welche hat damit die die PS5 nicht kaputtmachen oder k.a. fürs Gästezimmer oder wenn man Airbnb hat... Oder eben als Ersatz wenn PS5 kaputt und in Reparatur ist.

Und es ist ja nicht so als ob man keine PS4 games auf der PS5 spielen kann. Das geht ja auch, also keine Ausreden mehr 😂

Spiele, Videospiele, GTA Online, Verhalten, PlayStation Network, Gaming, Sony, Logik, zocken, gam, GTA V, PlayStation 5, PlayStation Plus, PlayStation 4, Videogaming, seltsam, Spiele und Gaming, PlayStation 4 Pro, Gaming und Spielen, Ps5 Spiele
Abo-Modelle (2023): Es ist einfach zum kotzen man?

Guten Abend zusammen liebe GF-Community.

Niemand auf dieser Plattform "Gutefrage.net" hier kann sich auch nur zu einem Bruchteil ausdenken wie hart ich in diesen Zeiten von Abo-Modellen genervt bin.

Was bei diesem Modell besonders auffällt, ist, wie uneinheitlich das Kundenerlebnis ist. Gerade, weil das Augenmerk in Sachen Service nur darauf liegt, die Kund:innen zum Abo-Abschluss zu bringen, wird auf Service im Weiteren kaum bis gar keinen Wert gelegt. Kund:innen können sich deswegen schnell frustriert fühlen und das Abo bei erster sich bietender Gelegenheit wieder kündigen.

Abo-Modelle sind heutzutage das schlimmste was es in der Menschheits-Geschichte überhaupt gibt. In Apps oder Spiele wird penetrante Werbung eingebaut damit man Menschen dazu zwingt ein Abo abzuschließen.

Selbstverständlich sehe ich irgendwo ein das dass viel Aufwand ist eine App oder ein Spiel zu Programmieren und zu Updaten. Natürlich würde ich für weitere Funktionen oder eine "Pro-Version" erwerben. Aber ein A-B-O-?

Es reicht man!

Heutzutage findest du kaum noch Apps im Store (und wenn dann nur vereinzelnd) und die Betonung liegt hier bei "fast keine" Apps die ohne Abo-Modell funktionieren.

Die Menschen sehen nur noch Geld in den Menschen. Das ist unfassbar traurig!

Und dasselbe "Abo-Modell" hat es nicht nur bei Apps und Games sondern auch bei Software, Tarife und sooooooooooooooooo vielen anderen Dingen. Und das nervt!

Ein Preis. Da bin ich immer dabei auch wenn er mehr kostet. Aber sicher kein Abo! Vor allem bezahlt man "im Abonnement" am Ende viel mehr als diesen einmal Preis.

Beispiel: App - Einmalig: 59,00€. 19,99€ im Monat. 12 Monate 19,99€ = 240€. Top.

| Frage: Nervt euch auch dieses Abo-Modell?

Mich kotzt es einfach nur noch an!

Mit freundlichen Grüßen

Robin | TechBrain.

Bild zum Beitrag
| Nein mich nervt es nicht. 50%
| Ja mich nervt es total. 40%
| Ich habe eine andere Meinung zu diesem Thema. 10%
Spiele, PC, Handy, Internet, Software, YouTube, App, Fernsehen, Film, Geld, Streaming, Serie, Gaming, zocken, Abonnement, Netflix, Spiele und Gaming
Warum ist das so?

Warum ist bei diesem code der Screen weiß?

 <!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Snake</title>
</head>
<body>
  
  <canvas id="canvas" width="480" height="480"></canvas>
  <script>
    let canvas = document.getElementById('canvas');
    let ctx = canvas.getContext('2d');
    let rows = 20;
    let cols = 20;
    let snake = [{
      x: 19,
      y:3
    }];
    let food = {
      x: 4,
      y: 5
    };
    let cellWidht = canvas.width / cols
    let cellHeigth = canvas.height / rows
    let direction = 'LEFT';
    let foodCollected = false;
    placeFood();
    setInterval(gameLoop, 200);
    document.addEventListener('keydown', keyDown);
    draw();
    
    function draw() {
      ctx.fillStyle = 'black';
      ctx.fillRect(0, 0, canvas.width, canvas.height);
      ctx.fillStyle = 'white'
      snake.forEach(part => add(part.x, part.y));
      
      ctx.fillStyle = 'yellow'
      add(food.x, food.y); //food
      requestAnimationFrame(draw);
    }
      function testGameOver() {
      //1. Schlange läuft gegen die Wand
      if (snake[0].x < 0 ||
        snake[0].x > cols - 1 ||
        snake[0].y < 0 ||
        snake[0].y > rows - 1
      ) {
        placeFood();
        snake = [{
      x: 19,
      y:3
    }];
      direction = 'LEFT';
  }
      function placeFood(){
        let randomX = Math.floor(Math.random() * cols);
        let randomY = Math.floor(Math.random() * rows);
        food = {x: randomX, y: randomY};
       };
      }
    function add(x, y) {
      ctx.fillRect(x * cellWidht, y * cellHeigth, cellWidht - 1, cellHeigth - 1);
    }
    function shiftsnake() {
      for (let i = snake.length - 1; i > 0; i--) {       const part = snake[i];
        const lastPart = snake[i - 1];
        part.x = lastPart.x;
        part.y = lastPart.y;
      
      }
    }
    function gameLoop() {
     
      testGameOver();
      if(foodCollected) {
       snake = [{x: snake[0].x, y: snake[0].y}, ...snake];
       
       foodCollected = false;
      }
      
      shiftsnake();
      if (direction == 'LEFT') {
      snake[0].x--;
      }
      if (direction == 'RIGHT') {
      snake[0].x++;
      }
      if (direction == 'UP') {
      snake[0].y--;
      }
      if (direction == 'DOWN') {
      snake[0].y++;
      }
      if(snake[0].x ==food.x
      && snake[0].y == food.y) {
      foodCollected = true;
         placeFood();
      }
    }
    
      
    function keyDown(e) {
      if (e.keyCode == 37) { //Richtung Links
        direction = 'LEFT';
      }
      if (e.keyCode == 38) {
        direction = 'UP';
      }
      if (e.keyCode == 39) {
        direction = 'RIGHT';
      }
      if (e.keyCode == 40) {
        direction = 'DOWN';
      }
    }  
  </script>
</body>
</html>
Spiele, programmieren, JavaScript

Meistgelesene Fragen zum Thema Spiele