Java – die besten Beiträge

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

Wie genau funktionieren Load- und Save-Methoden in Java?

Ich habe folgende Klassen gegeben:

class Person {
  private String firstname;

  private String lastname;

  private String sortname;

  public Person() {
  }

  public Person(String firstname, String lastname) {
    this.firstname = firstname;
    this.lastname = lastname;
    updateSortname();
  }

  public String getFirstname() {
    return firstname;
  }

  public void setFirstname(String firstname) {
    this.firstname = firstname;
    updateSortname();
  }

  public String getLastname() {
    return lastname;
  }

  public void setLastname(String lastname) {
    this.lastname = lastname;
    updateSortname();
  }

  public String getSortname() {
    return sortname;
  }

  public void updateSortname() {
    sortname = lastname + firstname;
  }

  @Override
  public String toString() {
    return firstname + " " + lastname + " (" + sortname + ")";
  }

  public static List<Person> load(String filename) throws IOException {
    return null;
  }

  public static Person load(DataInputStream in) throws IOException {
    return null;
  }

  public static void save(String filename, List<Person> list) throws IOException {
  }

  public static void save(DataOutputStream out, Person person) throws IOException {
  }

  public static List<Person> unserialize(String filename) throws IOException, ClassNotFoundException {
    return null;
  }

  public static void serialize(String filename, List<Person> persons) throws IOException {
  }
}

public class PersonTest {
  public static void main(String[] args) throws IOException, ClassNotFoundException {
    List<Person> persons = new ArrayList<>();
    persons.add(new Person("Willy", "Wonka"));
    persons.add(new Person("Charlie", "Bucket"));
    persons.add(new Person("Grandpa", "Joe"));
    System.out.println(persons);

    Person.save("persons.sav", persons);
    persons = Person.load("persons.sav");
    System.out.println(persons);

    Person.serialize("persons.ser", persons);
    persons = Person.unserialize("persons.ser");
    System.out.println(persons);
  }
}

Mein Problem:

Ich soll für dieses Programm die Methoden load, save, unserialize und serialize definieren. Ich habe bisher nur Beispiele dazu gesehen, mit einzelnen Klassenobjekten, wie z.B. einer Klasse Domino. Wie man dabei mit Arrays arbeitet, ist mir nicht klar und ich würde mich freuen, wenn mir jemand das Thema I/O genauer erklären könnte.

programmieren, Java

Minecraft Plugin programmieren Item verschieben oder droppen verbieten?

Minecraft Plugin programmieren Item verschieben oder droppen verbieten? Dies ist mein Sourcecode:
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;

public class RankUpCommand implements CommandExecutor {

@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
    Player p = (Player) sender;
    if(p.hasPermission("rankup.open")) {
        if((sender instanceof Player)) {
            if(args.length == 0) {
                Inventory inventory = Bukkit.createInventory(null, 9*3, "§6§lRank-Up");
                p.openInventory(inventory);
                p.sendMessage("§7Du hast das Rank-Up Menü geöffnet!");
                
                ItemStack diamond = new ItemStack(Material.DIAMOND);
                ItemMeta itemMeta = diamond.getItemMeta();
                itemMeta.setDisplayName("§b§lDiamond Rang");
                diamond.setItemMeta(itemMeta);


                inventory.setItem(11, diamond);
                
                ItemStack ultra = new ItemStack(Material.BEACON);
                ItemMeta ItemMeta = ultra.getItemMeta();
                ItemMeta.setDisplayName("§b§lUltra Rang");
                ultra.setItemMeta(ItemMeta);
                
                inventory.setItem(13, ultra);
                
                ItemStack supreme = new ItemStack(Material.REDSTONE_BLOCK);
                ItemMeta iTemMeta = supreme.getItemMeta();
                iTemMeta.setDisplayName("§4§lSupreme Rang");
                supreme.setItemMeta(iTemMeta);
                
                inventory.setItem(15, supreme);
                
                ItemStack glass = new ItemStack(Material.STAINED_GLASS_PANE);
                ItemMeta itemmeta = glass.getItemMeta();
                itemmeta.setDisplayName("");
                supreme.setItemMeta(itemmeta);
                
                inventory.setItem(0, glass);
                inventory.setItem(1, glass);
                inventory.setItem(2, glass);
                inventory.setItem(3, glass);
                inventory.setItem(4, glass);
                inventory.setItem(5, glass);
                inventory.setItem(6, glass);
                inventory.setItem(7, glass);
                inventory.setItem(8, glass);
                inventory.setItem(9, glass);
                inventory.setItem(10, glass);
                inventory.setItem(12, glass);
                inventory.setItem(14, glass);
                inventory.setItem(16, glass);
                inventory.setItem(17, glass);
                inventory.setItem(18, glass);
                inventory.setItem(19, glass);
                inventory.setItem(20, glass);
                inventory.setItem(21, glass);
                inventory.setItem(22, glass);
                inventory.setItem(23, glass);
                inventory.setItem(24, glass);
                inventory.setItem(25, glass);
                inventory.setItem(26, glass);
                inventory.setItem(27, glass);
                inventory.setItem(28, glass); {
            
                
            }
            
        }
                }
            }
        
    
    return false;
}


}

Bitte hilft mir!

programmieren, Java, Minecraft, Informatik, Minecraft Server, Minecraft Plugin, Plugin Programmieren

Meistgelesene Beiträge zum Thema Java