"Snake"-Game Logikfehler

Battleju

Aktives Mitglied
Hi,
ich bin ein Anfänger und versuche das Spiel Snake auf eine ungewöhnliche Weise zu Programmieren. Es besteht aus der Eingabeaufforderung als "Bild-Ausgabe" und einem Frame als Steuerung.
Das Spiel ist fast fertig und funktioniert auch bis zu einem Punkt. Nun ist es so, dass wenn die Schlange einen "Snack" frisst größer wird. Das ist mein Problem... Die Schlange wird als "*" dargestellt. Doch der Schwanz der Schlange wird nicht ordnungsgemäß dargestellt. Ich grüble schon Tage darüber und komme nicht darauf, was ich falsch gemacht habe.
Der Code:
Code:
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.concurrent.TimeUnit;
public class Snake extends Thread{
  static int stnr=0;
  static int a=1;
  static int snack=0;
  static int xsnack,ysnack;
  public static void main(String[]args)throws InterruptedException{
    int x=0,y=0,score=0,z=1;
    int[] xalt;
    int[] yalt;
    int[] xzws;
    int[] yzws;
    Snake t1 = new Snake();
    t1.start();
    while(a==1){
      TimeUnit.SECONDS.sleep(1);
      xalt = new int[z+1];
      yalt = new int[z+1];
      xzws = new int[z+1];
      yzws = new int[z+1];
     
      for (int czws=0; czws<=z; czws++) {
        if (czws==0) {
          xzws[czws]=xalt[czws];
          yzws[czws]=yalt[czws];
        }else{
          xzws[czws]=xalt[czws];
          yzws[czws]=yalt[czws]; 
        }
      }
      for (int c=0; c<=z; c++) {
        if (c==0) {
          xalt[c]=x;
          yalt[c]=y;
        }else{
          xalt[c]=xzws[c-1];
          yalt[c]=yzws[c-1];
        }
      }
      if (snack==0) {
        snack=1;
        snackGenerieren();
      }
      if (stnr==1) {
        x=x-1;
      }
      if (stnr==2) {
        x=x+1;
      }
      if (stnr==3) {
        y=y-1;
      }
      if (stnr==4) {
        y=y+1;
      }
      if (y>20) {
        y=0;
      }
      if (x>40) {
        x=0;
      }
      if (y<0) {
        y=20;
      }
      if (x<0) {
        x=40;
      }
     
      if (x==xsnack && y==ysnack) {
        snack=0;
        score++;
        z++;
      }
     
      System.out.println(score);
      for (int yachse=0; yachse<=20; yachse++) {
        for (int xachse=0; xachse<=40; xachse++) {
          for (int v =0; v<z; v++) {
            if (xalt[v]==xachse && yalt[v]==yachse ) {
              System.out.print("*");
            }
          }
          if ((x==xachse && y==yachse) ) {
            System.out.print("*");
          } else{
            System.out.print(" ");
          }
          if (xsnack==xachse && ysnack==yachse) {
            System.out.print("~");
          }
         
        }
        System.out.println();
       
      }
     
    }
  }
  public static void snackGenerieren(){
    xsnack=(int)((Math.random() * 40)+1);
    ysnack=(int)((Math.random() * 20)+1);
  }
  public void run(){
    int x=0;
    JFrame meinJFrame = new JFrame();
    meinJFrame.setTitle("Steuerung");
    JPanel panel = new JPanel();
   
    JButton links = new JButton("links");
    JButton rechts = new JButton("rechts");
    JButton oben = new JButton("oben");
    JButton unten = new JButton("unten");
   
   
    ActionListener l = new ActionListener() {
      public void actionPerformed(ActionEvent arg0) {
        stnr=1;
      }
    };
    ActionListener r = new ActionListener() {
      public void actionPerformed(ActionEvent arg0) {
        stnr=2;
      }
    }; 
    ActionListener o = new ActionListener() {
      public void actionPerformed(ActionEvent arg0) {
        stnr=3;
      }
    }; 
    ActionListener u = new ActionListener() {
      public void actionPerformed(ActionEvent arg0) {
        stnr=4;
      }
    };
   
    links.addActionListener(l);
    rechts.addActionListener(r);
    oben.addActionListener(o);
    unten.addActionListener(u);
   
    panel.add(links);
    panel.add(rechts);
    panel.add(oben);
    panel.add(unten);
   
    meinJFrame.add(panel);
   
    meinJFrame.pack();
   
    meinJFrame.setVisible(true);
    try{
      TimeUnit.SECONDS.sleep(1);
    }catch(InterruptedException e){
      e.printStackTrace();
    }
  }
}
Wenn ich jetzt nicht den übelsten Tunnelblick habe, sollte es an den 2 Stellen liegen:
Java:
for (int czws=0; czws<=z; czws++) {
        if (czws==0) {
          xzws[czws]=xalt[czws];
          yzws[czws]=yalt[czws];
        }else{
          xzws[czws]=xalt[czws];
          yzws[czws]=yalt[czws]; 
        }
      }
      for (int c=0; c<=z; c++) {
        if (c==0) {
          xalt[c]=x;
          yalt[c]=y;
        }else{
          xalt[c]=xzws[c-1];
          yalt[c]=yzws[c-1];
        }
      }
Java:
for (int yachse=0; yachse<=20; yachse++) {
        for (int xachse=0; xachse<=40; xachse++) {
          for (int v =0; v<z; v++) {
            if (xalt[v]==xachse && yalt[v]==yachse ) {
              System.out.print("*");
            }
          }
          if ((x==xachse && y==yachse) ) {
            System.out.print("*");
          } else{
            System.out.print(" ");
          }
          if (xsnack==xachse && ysnack==yachse) {
            System.out.print("~");
          }
         
        }
        System.out.println();
       
      }
Ich hoffe jemand kann mir helfen:(
Danke schon mal im voraus!

Lg bttl
 

krgewb

Top Contributor
Ich habe mal die Zeile
Java:
System.out.println();
durch diese
Java:
System.out.println("#");
ersetzt. Dadurch sieht man sozusagen die rechte Mauer. Auf dem Screenshot sieht man, dass sie an manchen Stellen um eins zu weit rechts ist.
 

Anhänge

  • Unbenannt.png
    Unbenannt.png
    8,6 KB · Aufrufe: 34
Ähnliche Java Themen
  Titel Forum Antworten Datum
J SNAKE-GAME-LOOP / (Applet zu Application) Spiele- und Multimedia-Programmierung 4
P Snake Game Verbessern Spiele- und Multimedia-Programmierung 15
B Snake-Game fürs Handy Spiele- und Multimedia-Programmierung 3
P Snake Java Hilfe Spiele- und Multimedia-Programmierung 4
F Koordinieren und Essen von Snake - Spiel Spiele- und Multimedia-Programmierung 14
B noch ein snake klon Spiele- und Multimedia-Programmierung 2
Viktim Snake - Schlange wächst nicht Spiele- und Multimedia-Programmierung 3
M Hilfe bei Snake Spiele- und Multimedia-Programmierung 4
J LWJGL Update Schleife (Snake) Spiele- und Multimedia-Programmierung 6
N Schulprogramm "Snake" Spiele- und Multimedia-Programmierung 4
R Hilfe bei Snake-Programmierung Spiele- und Multimedia-Programmierung 6
C Hinterteil von Snake programmieren Spiele- und Multimedia-Programmierung 11
S Snake versuch Spiele- und Multimedia-Programmierung 14
J Snake Programmierung Spiele- und Multimedia-Programmierung 18
V Snake Spiel Spiele- und Multimedia-Programmierung 7
D Snake n+1-Thread Spiele- und Multimedia-Programmierung 2
N Hilfe bei snake Spiele- und Multimedia-Programmierung 37
N Snake (Programmier Stil) Spiele- und Multimedia-Programmierung 8
G SNAKE HILFEEE! Spiele- und Multimedia-Programmierung 15
G Snake Alphaversion Spiele- und Multimedia-Programmierung 18
L Spider game, Ist es verloren? Spiele- und Multimedia-Programmierung 4
E Organisation für Game Spiele- und Multimedia-Programmierung 1
G [Game-Multiplayer] Welt vom Server zum Client senden. Spiele- und Multimedia-Programmierung 0
C 3d Game Engine : PERFORMANTE Räumliche Verdeckung Spiele- und Multimedia-Programmierung 5
R Durch String Platform Game erstellen Spiele- und Multimedia-Programmierung 8
G Component System Java 2D Game LibGDX Spiele- und Multimedia-Programmierung 6
G Collision Detection in einem 2D Sandbox Game. Spiele- und Multimedia-Programmierung 2
J Problem mit Game Of Life Spiele- und Multimedia-Programmierung 3
R Game Loop verhält sich eigenartig Spiele- und Multimedia-Programmierung 1
H Game Crash Spiele- und Multimedia-Programmierung 7
B Game of Life: Was mache ich falsch? Spiele- und Multimedia-Programmierung 3
$ Einstieg in Java Game Development Spiele- und Multimedia-Programmierung 11
BraunBerry Java Game Pixel "einfärben" Spiele- und Multimedia-Programmierung 6
BraunBerry Java Game verbesserte Kollisionserkennung Spiele- und Multimedia-Programmierung 18
BraunBerry Java Game Waypoint System Spiele- und Multimedia-Programmierung 3
T Moddable Game Spiele- und Multimedia-Programmierung 6
P java lwjgl Game Spiele- und Multimedia-Programmierung 0
T Game-Rendering Spiele- und Multimedia-Programmierung 5
I 2D-Side-Scrolling-Game in Chunks splitten Spiele- und Multimedia-Programmierung 9
Z 2D Pixer art RPG Game - Alpha auf Indie DB spielbar Spiele- und Multimedia-Programmierung 0
F Game of Life Spiele- und Multimedia-Programmierung 1
S Game/Cheat Spiele- und Multimedia-Programmierung 20
wolfgang63 Mit JavaFX einfaches Game programmieren Spiele- und Multimedia-Programmierung 5
D Textfield im Game ,Problem: while-Schleife Spiele- und Multimedia-Programmierung 3
O Pause Menu im 2D Game, bitte um Rat! Spiele- und Multimedia-Programmierung 4
J Java Game performance Probleme Spiele- und Multimedia-Programmierung 7
K Online Game? Spiele- und Multimedia-Programmierung 1
R Game Loop scheitert.. Spiele- und Multimedia-Programmierung 2
Androbin Verschwindender Spieler in 2D-Game Spiele- und Multimedia-Programmierung 7
Sogomn Game Loop Spiele- und Multimedia-Programmierung 2
M Jump 'n' Run Game - Blöcke? Spiele- und Multimedia-Programmierung 7
J Verständnissfragen zur Game-Loop Spiele- und Multimedia-Programmierung 2
N Game GUI Programmieren Spiele- und Multimedia-Programmierung 16
Black_ixx ManaWar Action Game Spiele- und Multimedia-Programmierung 5
M Multiplayer-Game auf Website Spiele- und Multimedia-Programmierung 2
M Multiplayer Game mit Frontend auf HTML5 - ohne ständigen Client Request - Möglich?! Spiele- und Multimedia-Programmierung 12
P Mein Android Game Spiele- und Multimedia-Programmierung 3
N Animationen für ein 2D game Spiele- und Multimedia-Programmierung 6
S Problem mit Zeitsteuerung der Game Loop Spiele- und Multimedia-Programmierung 4
Kenan89 Kleines Game Spiele- und Multimedia-Programmierung 26
M Vektor Game Spiele- und Multimedia-Programmierung 13
F Bot updaten von einem Browser game Spiele- und Multimedia-Programmierung 7
Samake03 [Game]"Plumbo - Lost in Depth" Preview und Fragen Spiele- und Multimedia-Programmierung 18
K Game Engine für selbstprogrammiertes Spiel Spiele- und Multimedia-Programmierung 27
A Music für Android game Spiele- und Multimedia-Programmierung 3
A Wie wird die Person im Game animiert, dass sie ihre Körperteile bewegen? Spiele- und Multimedia-Programmierung 3
K 3D Game wie Minecraft Spiele- und Multimedia-Programmierung 3
T Torquemada´s erstes Game (Pong) Spiele- und Multimedia-Programmierung 5
X Möglichst komplette 2D Game Engine? Spiele- und Multimedia-Programmierung 12
Kr0e Red Dwarf Game Server Spiele- und Multimedia-Programmierung 5
M Euer erstes Game Spiele- und Multimedia-Programmierung 16
M Netzwerk-Game mit UDP Spiele- und Multimedia-Programmierung 8
ruerob Eure Meinung über Applet-game Spiele- und Multimedia-Programmierung 12
J das erste Game Spiele- und Multimedia-Programmierung 2
M Einen Hobby Game - / Grafik Designer zu finden (Screenshot vom Spiel) Spiele- und Multimedia-Programmierung 7
S Game Client für kleine Competition Spiele- und Multimedia-Programmierung 3
J 2D-Game-Engine? Spiele- und Multimedia-Programmierung 2
F Game mit LWJGL/JOGL in executable JAR packen, wie? Spiele- und Multimedia-Programmierung 6
P 2D Game - Alternative zur TileMap? Spiele- und Multimedia-Programmierung 2
W Memory Game Spiele- und Multimedia-Programmierung 4
Steev EGE - Easy Game Engine Spiele- und Multimedia-Programmierung 2
Developer_X X-Shooter Game Spiele- und Multimedia-Programmierung 21
C 2D Multiplayer Game Spiele- und Multimedia-Programmierung 5
O Mein erstes Game Spiele- und Multimedia-Programmierung 10
Developer_X PingPong-the Game by Developer-X Spiele- und Multimedia-Programmierung 170
K My First Game "ORB" vielen Dank Quaxli Spiele- und Multimedia-Programmierung 23
hdi Das java-forum.org 2D-Game Projekt/Tutorial Spiele- und Multimedia-Programmierung 6
hdi Quiclix : Game download Spiele- und Multimedia-Programmierung 5
A Java 2D Game Spiele- und Multimedia-Programmierung 4
K Game-Tutorial von Quaxli Fragen Spiele- und Multimedia-Programmierung 18
G Suche passende Game api Spiele- und Multimedia-Programmierung 9
K Java Game Programming Buch Spiele- und Multimedia-Programmierung 3
C Hilfe bei einfachen Game Spiele- und Multimedia-Programmierung 15
L Kleines RTS Game -> Netzwerkproblem Spiele- und Multimedia-Programmierung 5
P Suche Leute für ein Hobby-Projekt (Browser Game) Spiele- und Multimedia-Programmierung 4
Q online game programieren Spiele- und Multimedia-Programmierung 8
G Welche Game Api Spiele- und Multimedia-Programmierung 9
S 3d applet - online game Spiele- und Multimedia-Programmierung 4
C Open-Source Game Spiele- und Multimedia-Programmierung 2
sparrow 3D-Game-Engine Spiele- und Multimedia-Programmierung 20

Ähnliche Java Themen

Neue Themen


Oben