Java Ameisen programmieren und veränder?

Und zwar muss ich für die Uni ein Programm in InteliJ(Java) so verändern das ich 50 Ameisen habe, welche sich Random drehen und dann dementsprechend in die Richtung einen Schritt laufen kann in die Sie grade guckt. Sie sollen in einem Border sein und wenn eine Ameise den rechten Rand berührt soll sie verschwinden und eine neue soll im Punkt(100/100) neu Spawnen.

Bis jetzt habe ich nur eine for loop Programmiert, welcher auf funktionert. Problem ist da bei doSimulationStep nur "ant" definiert ist im moment, bewegt sich auch nur eine Ameise während der rest auf dem Platz steht.

Falls mir jemand irgendwie weiter helfen kann ist das super, gerne eigentlich nur konkrete und gut beschriebene beispiele und nicht einfach die Lösung schicken, da ich mich im Moment noch sehr schwer tue mit dem Programmieren.

Class Ant:

/**
 * Mit der Klasse {@link Ant} werden Ameisen in der Simulation funktional
 * abgebildet. Ameisen definieren ihre Position und Rotation (in Grad).
 *
 * @see AntModelGraphic
 */
public class Ant {
    private final AntModelGraphic graphic;
    private String antText;
    private double x, y, rotation, degree;
    private final Random random = new Random();
public Ant(double x, double y, double rotation) {
    this.x = x;
    this.y = y;
    this.rotation = rotation;
    this.antText = "";
    graphic = new AntModelGraphic();


}

/**
 * Führt einen Simulationsschritt durch und lässt die Ameise jeweils einen
 * Schritt nach rechts machen.
 */
public void doSimulationStep() {x++;
}

public double getRotation() { return rotation; }

public double getX() { return x; }

public double getY() { return y; }

Class Simulation:

/**
 * Dies Klasse bildet das zentrale Element der Simulation. Sie koordiniert die
 * Bewegungen, das Erscheinen und Verschwinden der Simulationsteilnehmer. Die
 * Methode {@link Simulation#doSimulationStep()} wird vom Taktgeber der
 * grafischen Oberfläche in regelmäßigen Abständen aufgerufen.
 *
 * @see AntApplication#SIMULATION_FRAME_LENGTH
 */
public class Simulation {
    private Ant ant;
/** Fügt 50 Ameisen hinzu am Punkt (x/y)
 *  Added eine Ameise, wenn es unter 50 Ameisen sind
 * @param uiManager
 */

public Simulation(UiManager uiManager) {
    for (int i = 0; i < 50; i++) {

        ant = new Ant(450, 300, 0);

        uiManager.add(ant);
        }
    }



/**
 * Führt einen Simulationsschritt durch.
 */
public void doSimulationStep() {

    ant.doSimulationStep();

}

}

Computer, programmieren, Java, Informatik, Spiele und Gaming
Fehler tritt auf obwohl er nicht auftreten kann - Java - Exception in thread "AWT-EventQueue-0" java.lang.Error:?

Hallo ich habe bei folgendem abschnitt:

JLabel lbl_verstärken = new JLabel("");
		lbl_verstärken.setIcon(new ImageIcon("C:\\Users\\49157\\eclipse-workspace\\Risiko (by_Christoph&Leander)\\src\\pack1\\Bilder\\kisspng-american-football-helmets-climbing-computer-icons-military-5abf62bc1c4074.5071788615224920921157.png"));
		lbl_verstärken.setBounds(1143, 1112, 48, 50);
		contentPane.add(lbl_verstärken);
    lbl_kampf = new JLabel("");
    lbl_kampf.setIcon(new ImageIcon("C:\\Users\\49157\\eclipse-workspace\\Risiko (by_Christoph&Leander)\\src\\pack1\\Bilder\\kampf.png"));
    lbl_kampf.setBounds(1253, 1112, 41, 44);
    contentPane.add(lbl_kampf);
    
    lbl_befästigen = new JLabel("");
    lbl_befästigen.setEnabled(false);
    lbl_befästigen.setIcon(new ImageIcon("C:\\Users\\49157\\eclipse-workspace\\Risiko (by_Christoph&Leander)\\src\\pack1\\Bilder\\umbenenen.png"));
    lbl_befästigen.setBounds(1361, 1112, 48, 44);
    contentPane.add(lbl_befästigen);
    lbl_hintergrund = new JLabel("Hintergrund");
    lbl_hintergrund.setIcon(new ImageIcon("C:\\Users\\49157\\eclipse-workspace\\Risiko (by_Christoph&Leander)\\src\\pack1\\Bilder\\hintergrundrisiko.png"));
    
    lbl_hintergrund.setBounds(0,-1, 1598, 1169);
    contentPane.add(lbl_hintergrund);


Folgenden Fehler erhalten:

Exception in thread "AWT-EventQueue-0" java.lang.Error: Unresolved compilation problem: 
	Invalid escape sequence (valid ones are  \b  \t  \n  \f  \r  \"  \'  \ )
at pack1.GUI_Hauptanwendung.<init>(GUI_Hauptanwendung.java:324) at pack1.GUI_Hauptanwendung$1.run(GUI_Hauptanwendung.java:75) at java.awt.event.InvocationEvent.dispatch(Unknown Source) at java.awt.EventQueue.dispatchEventImpl(Unknown Source) at java.awt.EventQueue.access$500(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source)


Ich wollte grade die Absoluten Pfarde durch relative zu ersetzen war auch soweit Fertig funktionierte aber nicht. Nun habe ich alles rückgängig gemacht doch erhalte halt diesen Fehler.

Was muss ich umändern?

p.s.:

lbl_hintergrund.setIcon(new ImageIcon("C:\Users\49157\eclipse-workspace\Risiko (by_Christoph&Leander)\src\pack1\Bilder\hintergrundrisiko.png"));

ist line 324 und

GUI_Hauptanwendung frame = new GUI_Hauptanwendung();

ist line 75

Fehler, programmieren, Java, Informatik, Fehlermeldung
Hat jemand Verbesserungsvorschläge für dieses Programm?

Hallo, ich versuche gerade ein Programm zu schreiben (in Java Eclipse), das folgende Aufgabenstellung hat:

Das Programm soll alle Fibonacci-Zahlen in einem geschlossenen Intervall [a, b] als kommagetrennte Liste ausgeben. Ausnahme: die Zahlen, die durch 3 teilbar sind, sollen durch ";" separiert sein. Die natürlichen Zahlen a und b müssen vom Benutzer eingegeben werden.

Beispiel 1 (blau = Benutzereingabe):

a: 3
b: 100
Fibonacci=3;5,8,13,21;34,55,89

Beispiel 2:

a: 12
b: 800
Fibonacci=13,21;34,55,89,144;233,377,610

UND Teil 2

Das Programm soll noch eine Liste mit den ungeraden Fibonacci-Zahlen und den Intervallenden a und b ausgeben. Auch hier gilt, dass alle Zahlen, die durch 3 teilbar sind, durch einen folgenden Strichpunkt zu kennzeichnen sind. Eine Zahl darf nicht doppelt in der Ausgabe vorkommen. 

Für obige Eingabe sollte also zusätzlich folgende Zeile ausgegeben werden:

Beispiel 1

ungerade Fibonacci=[3;5,13,21;55,89,100]

Beispiel 2

ungerade Fibonacci=[12;13,21;55,89,233,377,800]

Soviel zur Aufgabenstellung.
Bis jetzt habe ich folgendes ( siehe Bild) geschafft. Meine Problem: wenn der Benutzer zum Beispiel für a 10 und für b 20 eingibt, dann zeigt das Programm die zehnte bis zwanzigste Zahl, aber es sollte eigentlich nur 13 anzeigen. Des Weiteren weis ich nicht, was ich machen sollte, damit nach jeder ungeraden Zahl ein ; steht. und Teil 2 der Aufgabe ist mir auch nicht klar, aber ich wäre schon glücklich genug, wenn mir jemand bei Teil 1 helfen könnte!

Danke und liebe Grüße!

Bild zum Beitrag
Computer, Programmierer, programmieren, Java, Informatik, Informatiker
Wo ist der Fehler bei der Java Instalation?

Ich möchte Java installieren, aber irgendwie geht es alles nicht. Habe dann alles gelöscht und möchte es von Vorne neu installieren. Ich habe dann dafür über die Oracle Seite die "Java SE Development Kit 13" .exe heruntergeladen und ausgeführt. Dann habe ich in den Umgebungsvariablen für den Benutzer eine neue Variable erstellt mit den Namen "JAVA_HOME" und für den Wert den Instalationspfad eingegeben. (D:\Programme\Java) Als nächstes bin ich die "Path" Variable gegangen und habe einen neuen Eintrag gesetzt, der so heißt: "%JAVA_HOME%\bin". (Ich habe eine Instalationsanleitung von der Uni bekommen und so ausgeführt, wie sie es gesagt haben) Möchte ich jetzt ein selbstgeschriebenes Java Programm im CMD ausführen (das Programm habe ich in der UNI an einem anderen PC geschrieben), dann kommt folgender Fehler:

Error: opening registry key 'Software\JavaSoft\Java Runtime Environment'

Error: could not find java.dll

Error: Could not find Java SE Runtime Environment.

Das passende JRE soll aber angeblich im Installtionsordner drinnen sein. Als ich das JDK installiert habe stand da auch:"[...] including a private JRE and src.zip[...]"

Auch wenn ich im CMD eingebe: "java -version" kommt der gleiche Fehler. Lade ich aber dann von Oracle dann die neuste JRE (Version 8 Update 231, Releasedatum 15.10.19) kommt dann ein neuer Fehler, dass das JRE zu alt sei. Das kann aber nicht sein! Der Fehler lautet dann:

error: A JNI error has occurred, please check your installation and try again

Exception in thread "main" java.lang.UnsupportedClassVersionError: Hello has been compiled by a more recent version of the Java Runtime (class file version 57.0), this version of the Java Runtime only recognizes class file versions up to 52.0

Was kann ich tun?

Computer, Technik, Fehler, programmieren, Java, Technologie, JDK, JRE, Spiele und Gaming
Mitarbeiterlist erstellen?

Hallo allerseits,

ich habe veruscht, ein Programm zu programmieren, bei welchen ich Mitarbeiter erstelle, denen automatisch eine Nummer gebe und diese über die Konsole ausgeben lasse. (Alle Aufgaben seht ihr auf dem BIld)

Mein Code dafür ist:

public class Mitarbeiter {
  private int Id;
  private String Name;
  
  public int getId(){
    int number=1;
    number++;
    Id=number;
    return Id;
  }
  
  public String getName(){
    return Name;
  }   
  
  public String toString(){
    return Name;
    return Id;
  }
}

public class MitarbeiterVerwaltung{
  
  public String mitarbeiterListe(){
    String[] mitarbeiterListe = {"Franz Hubert", "Joseph Maier", "Werner Müller"};
    return mitarbeiterListe;
  }
    
    private String addMitarbeiter(){
      String name = Mitarbeiter.getName();
      int Id = Mitarbeiter.getId();
    }
    
    public String listMitarbeiter(){
      for (String mitarbeiterListe;mitarbeiterListe<mitarbeiterListe.length ;mitarbeiterListe++ ){
      }
      return Name;
      for (int Id;Id<Id.length ;Id++ ) {
      } 
      return Id; 
    }
  }
  
  public class MitarbeiterDemo{
    public static void main (String[] args){
      System.out.println(MitarbeiterVerwaltung.listMitarbeiter());
    }
  }   

Meine Frage ist jetzt: Wo habe ich was falsch gemacht?

Bitte auch mit Erklärung, was daran falsch ist :)

Danke schonmal im Vorraus ;)   

Bild zum Beitrag
Computer, programmieren, Java
Was genau bedeutet <identifier> expected?

Hallo, ich bin leider noch ein ziemlicher Anfänger in Java und kann mir bei diesem Problem nicht helfen, obwohl ich schon versucht habe, das Problem im Internet zu finden. Ich hoffe, mir kann jemand helfen.

public class monster extends lebewesen
{
   private int[] posY = new int[8];
   private int[] posX = new int[8];
   protected int centerX;
   protected int centerY;
   protected int a;
   public monster(int x, int y)
   {
       super(x, y);
       centerX = x;
       centerX = y;
       a = 2;
   }
   public void bewegen(){
       Random rn = new Random();
       double z = rn.nextDouble();
       for(int i = 0 ; i < 3 ; i++)
       {
           posX[i] = centerX - 1;
           posY[i] = centerY + 1 - i ;
       }
       posX[4] = centerX;
       posY[4] = centerY - 1;
       posX[5] = centerX + 1;
       posY[4] = centerY - 1;
       posX[6] = centerX + 1;
       posY[6] = centerY;
       posX[7] = centerX+1;
       posY[7] = centerY+1;
       posX[8] = centerX;
       posY[8] = centerY+1;
       if (z<0.5) {
           a = a++;
       } else {
           a = a--;  
       }
       for(int i = 0 ; i < monster.monsterList.size(); i++)
       {
               int x = posX[a];
               int y = posY[a];
               spiel.monsterList.setpos(i).(x, y); | Fehler: <identifier> expected
       }
   }
}
(In der Klasse spiel habe ich noch folgende Zeilen:
public class spiel
{ 
public static LinkedList<monster> monsterList = new LinkedList();
private char pos(int x, int y) {
       if (pos[x][y] == 0) {
           return ' ';
       } else {
           return pos[x][y];
       }
   }
}
)

Danke schon einmal im Voraus!

programmieren, Java, Fehlermeldung
Minecraft 3D Block modden?

Hey Leute,

ich suche momentan nach einer Methode bzw. Code bzw. Tutorial wie man denn einen 3D Block in Minecraft erstellt, da ich gerade an meinem eigenem Mod rumbastle.
Der Name 3D Block ist etwas unpassend gewählt, da jeder Block dreidimensional (also 3D) ist.
Ich suche jedoch nach nicht nur Blöcken mit Overlays, z.B. rock sondern nach der Methode, Blöcke dreidimensional zu bearbeiten, d.h., dass sie z.B wie der cauldron innen drin leer sind und einen andere bzw. "innere" Textur haben.

Ich habe mir schon verschiedene Vorlagen angeschaut, wie z.B. die .json des cauldrons unter assets\minecraft\models\block\

Den Code habe ich auch gescreenshottet und hier nach einem bisschen Schneiden als Bilder eingefügt.

Meine Vermutung lautet, dass from und to im dreidimensionalen Raum die Parameter von 0 0 0 bis 16 16 16 Pixel (?) angeben.
Also x y z Koordinaten.
Mit diesen wird angegeben, von wo bis wo jetzt faces deklariert (?) werden.
faces gibt jetzt irgendwie die Textur drinnen an, aber dies war nicht klar herauszufiltern und somit auch überhaupt nicht nützlich (oder nutzbar?) um einen eigenen Block zu erstellen, der verschiedene Eigenschaften wie quaderförmige Löcher oder ähnliches besitzt.

Ich würde mich deswegen sehr freuen, wenn mir einer von euch ein gutes Tutorial dazu verlinken könnte (hab nach langer Recherche keine richtigen gefunden :c ), also auch wirklich Tutorials die hilfreich sind und keine zwei minütige grobe Recherche.
Natürlich wäre ich auch über eine gute und hilfreiche Erklärung glücklich.

Bitte schreibt vernünftige und richtige Antworten und keinen Kommentar Quatsch.

Danke für das Lesen und die Hilfe im voraus,
LG Xydru

PS:

Ich programmiere natürlich mit Java :)
Das einzige wofür ich Hilfe brauche ist diese (und vielleicht auch andere, weiß es ja noch nicht) .json Datei und möglicherweise den Code der ja vielleicht anders ist wenn man GameRegistry... und Minecraft.getMinecraft()... nutzt.

Bild zum Beitrag
Computer, IT, Java, Minecraft, Informatik, Minecraft Mods
Wie kann ich den Fehler beheben(Java/ Programmieren)?

Quellcode: https://pastebin.com/n67nqKiB


Fehler: Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
	at de.georgy.GUI.DrawChoois.paintComponent(DrawChoois.java:21)
	at java.desktop/javax.swing.JComponent.paint(JComponent.java:1074)
	at java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:907)
	at java.desktop/javax.swing.JComponent.paint(JComponent.java:1083)
	at java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:907)
	at java.desktop/javax.swing.JComponent.paint(JComponent.java:1083)
	at java.desktop/javax.swing.JLayeredPane.paint(JLayeredPane.java:590)
	at java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:907)
	at java.desktop/javax.swing.JComponent.paintToOffscreen(JComponent.java:5262)
	at java.desktop/javax.swing.RepaintManager$PaintManager.paintDoubleBufferedImpl(RepaintManager.java:1643)
	at java.desktop/javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(RepaintManager.java:1618)
	at java.desktop/javax.swing.RepaintManager$PaintManager.paint(RepaintManager.java:1556)
	at java.desktop/javax.swing.RepaintManager.paint(RepaintManager.java:1323)
	at java.desktop/javax.swing.JComponent.paint(JComponent.java:1060)
	at java.desktop/java.awt.GraphicsCallback$PaintCallback.run(GraphicsCallback.java:39)
	at java.desktop/sun.awt.SunGraphicsCallback.runOneComponent(SunGraphicsCallback.java:75)
	at java.desktop/sun.awt.SunGraphicsCallback.runComponents(SunGraphicsCallback.java:112)
	at java.desktop/java.awt.Container.paint(Container.java:2002)
	at java.desktop/java.awt.Window.paint(Window.java:3926)
	at java.desktop/javax.swing.RepaintManager$4.run(RepaintManager.java:876)
	at java.desktop/javax.swing.RepaintManager$4.run(RepaintManager.java:848)

Computer, programmieren, Java
[Spigot] InventoryClickEvent Fehler?

Hallo Community!

Ich programmiere gerade ein LobbySystem und bin gerade dabei einen Navigator zu programmieren. Mit Rechtsklick auf Item in der Hotbar öffnet sich ein Inventar sobald ich aber auf ein Item im Inventar klicke welches in einem Listener registriert ist passiert nichts.

Hier der Code:

Die Class in dem die Items angelegt werden:

public class NavigatorInventory {

public static void openNavigatorInventory(Player player) {

  Inventory NavigatorInv = Bukkit.createInventory(null, 9*1, "§6§lNavigator");
  
  ItemStack placeholder = new ItemAPI("§e", Material.STAINED_GLASS_PANE, (byte)15, 1).build();
  
  NavigatorInv.setItem(0, placeholder);
  NavigatorInv.setItem(1, placeholder);
  NavigatorInv.setItem(2, placeholder);
  NavigatorInv.setItem(3, placeholder);
  NavigatorInv.setItem(4, new ItemAPI("§aCityBuild", Material.STONE_AXE, (byte)0, 1, "§7Spiele CityBuild", "§7Klicke um zu connecten.").build());
  NavigatorInv.setItem(5, placeholder);
  NavigatorInv.setItem(6, new ItemAPI("§3Testitem", Material.ENDER_STONE, (byte)0, 1).build());
  NavigatorInv.setItem(7, placeholder);
  NavigatorInv.setItem(8, placeholder);
  
  player.openInventory(NavigatorInv);
  

}

}

public class NavigatorInventoryListener implements Listener {
private Main main;

public NavigatorInventoryListener(Main main) {
    this.main = main;
    Bukkit.getPluginManager().registerEvents(this, main);
}

@EventHandler
public void onClick(InventoryClickEvent e) {
    Player player = (Player) e.getWhoClicked();
    player.sendMessage("l");
    if(!main.canBuild.contains(player)) {
        e.setCancelled(true);
    }
    if(e.getInventory().getName().equals("§6§lNavigator")){
        if(e.getCurrentItem().getItemMeta().getDisplayName().equals("§aCityBuild")) {
            player.sendMessage("§3CityBuildTest");
        }
       else if (e.getCurrentItem().getItemMeta().getDisplayName().equals("§3Testitem")) {
            player.sendMessage("§3TestItemTest");
        }



    }

}

}

Jetzt sollten eigentlich die Testnachrichten ausgegeben werden (später ein Inventory) Aber als Ausgabe bekomme ich keine Errors keine Nachricht etc

Alle Class Dateien sind in der Main registriert.

Kann mir jemand helfen?

Mit Freundlichen Grüßen

programmieren, Java, Minecraft, Spigot

Meistgelesene Beiträge zum Thema Java