Kleine Simulation programmieren, denkanstöße erbeten

CT9288

Mitglied
Hallo liebe Community. Ich habe folgendes Anliegen: ich würde gerne ein kleines programm erstellen, dass im Grunde aus drei Parametern bestehen soll, die überdies voneinander abhängig sein sollen. Sagen wir mal „pflanzen“ ,“hasen“ und „füchse“. Pflanzen sollen stets generieren, hasen pflanzen verzehren und sich dann vermehren, füchse hasen verzehren und sich vermehren.
Die frage: wie setze ich dass am besten um? Ich weiß wenig über programmiersprachen, glaube aber, dass so ein kleines programm auch für einen neuling mit etwas übung nicht unmöglich sein sollte. Ich hätte dieses programm gerne in java geschrieben, das finde ich nämlich sehr interessant. Die frage ist jetzt aber: ist java für sowas direkt die richtige wahl? Gibt es sinnvollere Programmiersprachen um diese idee zu verwirklichen? Könnt ihr mir stichwörter nennen die mir hierbei hilfreich sein könnten, oder ein gutes tutorial in dieser richtung empfehlen?
Ansonsten, ist netbeans gut oder empfehlt ihr eine andere kostenfreie entwicklungsumgebung?
Achja, ist screeps eigentlich gut um java zu lernen und zu üben, oder tatsächlich nur für leute gedacht, die bereits programmieren können? Gruß.
 
Solch eine Simulation braucht tatsächlich nicht viel, Java ist dafür genauso geeignet wie (fast) alles andere.

In Screeps arbeiten die nur mit Javascript, soweit ich das verstanden habe. Java ist etwas anderes als Javascript. Für dein Vorhaben sollte beides taugen, aber wenn du es mit Screeps umsetzen willst, brauchst du eben eher Javascript als Java.

Bei Entwicklungsumgebungen wird dir jeder etwas anderes erzählen, da kann man dir nur raten, einfach mal eine zu verwenden und zu wechseln, wenn dir die nicht taugt. Ich benutz Eclipse, aber nicht weil das so mega ist, sondern weil ich ein fauler Hund bin, der sich ungern in ständig neue IDEs einarbeitet. Die großen Drei sind Netbeans, IntelliJ und Eclipse, Java geht bei kleinen Projekten aber auch per Kommandozeile gut.
 

L0oNY

Bekanntes Mitglied
Hi,

das was du vorhast klingt sehr nach Agentenbasierter Modelierung. Wenn du programmieren lernen willst, dann beherzige die anderen Ratschläge. Wenn es dir jedoch um die tatsächliche Simulation geht, dann kannst du fertige Tools wie z.B.: NetLogo (http://ccl.northwestern.edu/netlogo/) benutzen.
Das ist eine Anwendung, die dafür gedacht ist, solche Probleme zu modellieren. Innerhalb der Anwendung musst du immernoch programmieren, die Komplexität ist aber recht gering und mit Java nicht zu vergleichen.
 

CT9288

Mitglied
Erstmal vielen Dank für eure zahlreichen Antworten =)
Oje wie peinlich. Jetzt stehe ich da wie die Anfänger, die den Unterschied zwischen Java und Javascript nicht kennen ^^" nein nein, der Unterschied ist mir schon geläufig =) Screeps brachte ich nur zur Sprache, weil ich gemeint hatte, es arbeite mit Java. Das war wohl ein Irrtum.

AliasAlreadyTaken schrieb "Java ist etwas anderes als Javascript. Für dein Vorhaben sollte beides taugen"
Soll heißen, Javascript kann soetwas auch? Ich habe mich nie mit Javascript befasst, da ich es immer so ein bisschen in die Sorte HTML mit einsortiert hatte und mir eher so vorkam, als sei es nutzlos.

Und ja, natürlich interessiere ich mich für Spiele, aber dieses Forum hätte nun nicht noch einen Beitrag gebraucht à la "Yo ich will ne mega geile SpieleApp programmieren, was brauch ich dafür?"
 

httpdigest

Top Contributor
Die Spanne dessen, was man "Simulation" nennen kann, geht natürlich weit auseinander, insbesondere, wenn keine Aussage über die folgenden Aspekte getroffen wird:
- mit User-Interaktion oder ohne?
- mit simpler Konsolenausgabe oder grafischer Ausgabe?
- wie ausgereift soll die grafische Ausgabe sein? (einfach AWT/Swing, Java2D oder OpenGL)
- mit Sound?
Eine Simulation kann dann bereits schon sowas sein:
Java:
public class Simulation {
    public static void main(String[] args) throws Exception {
        int pflanzen = 10;
        int hasen = 5;
        int fuechse = 2;
        java.util.Random rnd = new java.util.Random();
        float pPflanzeGeneriert = 0.1f;
        float pHaseFrisstPflanze = 0.1f;
        float pFuchsFrisstHase = 0.1f;
        while (true) {
            if (rnd.nextFloat() < pPflanzeGeneriert)
                pflanzen++;
            if (pflanzen > 0 && rnd.nextFloat() < pHaseFrisstPflanze) {
                pflanzen--;
                hasen++;
            }
            if (hasen > 0 && rnd.nextFloat() < pFuchsFrisstHase) {
                hasen--;
                fuechse++;
            }
            Thread.sleep(1000 / 10); // 10Hz
            System.out.println(
                String.format("Pflanzen: %3d, Hasen: %3d, Fuechse: %3d", pflanzen, hasen, fuechse));
        }
    }
}
 

CT9288

Mitglied
Wow, hast du das aus dem FF heraus mal eben geschrieben? Ja tatsächlich soll es nix kompliziertes sein, eine einfache ausgabe als kommandozeile genügt. Ich werde mir mal eclipse ansehen, netbeans kenne ich bereits, und dann werde ich das beispiel von dir benutzen, verändern, und mich daran etwas erproben =)
Java ist toll, aber ich hab echt immer probleme, am Ball zu bleiben -.-
 

CT9288

Mitglied
ich hätte noch eine frage, jetzt da ich mich etwas in java eingelesen habe. ich hätte gerne eine kleine android app programmiert und mir nun android studio geholt. ich habe jetzt aber das gefühl, dass android studio alles unnötig verkompliziert. kann man eine android app auch freihand programmieren, oder nimmt google die app dann nicht an? oder würdet ihr sagen, wenn android studio mir alles verkompliziert, dann mache ich etwas falsch?
 

Robat

Top Contributor
Du kannst theoretisch Apps auch mit jeder anderen IDE + Android SDK programmieren. Android Studio macht allerdings mEn schon vieles richtig und unterstützt einen bei der App-Entwicklung sehr gut.
Ich muss dir allerdings Recht geben, dass es am Anfang etwas verwirrend sein kann, sich mit AS anzufreunden. Das kommt aber mit der Zeit.
 

Javinner

Top Contributor
...ich habe jetzt aber das gefühl, dass android studio alles unnötig verkompliziert...
AndroidStudio bietet einen richtig guten Support, was die Einführung in das System anbetrifft. Es ist meiner Meinung nach sehr durchdacht, was da angeboten wird. Falls du dich mit Android ausführlich beschäftigen möchtest, lege ich dir ans Herz, dich hier einzulesen, aber auch hier vorbeizuschauen. Alles sehr umfangreich, jedoch sehr lehrreich ;)
 

CT9288

Mitglied
So Ihr lieben. Ich habe noch nicht aufgegeben. Bin nun kein blutiger Anfänger mehr sondern....Anfänger :confused:
Ich bräuchte wieder eure Hilfe, ich finde es partout nirgends heraus:

Ich habe eine method() laufen, in derer eine Eingabe erfolgt, und diese soll dann den userName returnen.
Das funktioniert auch gut soweit. Jetzt versuche ich aber verzweifelt in einer anderen class diesen userName zu erhalten, aber dabei geht ständig wieder die method() los und will wieder eine Eingabe haben. Kann ich den String irgendwie erhalten, ohne dass die method() wieder läuft?
kurze Visualisierung:

public String Intro(){
userName = eingabe.next(); //das ist mein Scanner
return userName;
}

da ist noch mehr Code, aber nur System.out.printlns die hier weniger relevant sind.
Wie komme ich an den userName ohne dass ich wieder um eine Eingabe gebeten wurde? Und ja, an der Stelle, an der ich den userName aufrufen möchte, wurde die Intro() bereits gerufen und eine Eingabe ist erfolgt. Der String existiert also auch.

Programmieren ist sau anstrengend...aber mega interessant =D
ich hoffe ihr könnt mir helfen. Ich sitz hier nicht umsonst um 02.30 Uhr am PC :oops::confused:
 

mihe7

Top Contributor
Wie komme ich an den userName ohne dass ich wieder um eine Eingabe gebeten wurde?
Du musst Dir das Ergebnis einfach an anderer Stelle merken.

Ein ungetestetes Beispiel:
Java:
public class Test {
    private String username;

    public void askForUsername() {
        System.out.print("Username: ");
        try(Scanner s = new Scanner(System.in)) {
            username = s.nextLine();
        }
    }

    public String getUsername() {
        return username;
    }

    public static void main(String[] args) {
        Test t = new Test();
        t.askForUsername();
        System.out.println(t.getUsername());
        System.out.println(t.getUsername());
        System.out.println(t.getUsername());
    }
}
 
Zuletzt bearbeitet:

CT9288

Mitglied
So ihr lieben, nächste Frage. Ich habe jetzt ein kleines, wirklich kleines Projekt fertiggestellt (soweit zumindest) und wollte fragen, ob es hier im Forum die Möglichkeit gibt, *.jar Dateien hochzuladen, dass jemand, der Lust hätte, mal drüber gucken könnte, und mir noch ein paar Fragen zu beantworten und mir generell mal mitteilen könnte, ob das so gut aussieht.
 

Javinner

Top Contributor
@CT9288
Ich würde an deiner Stelle ein neuen Thread in "Codeschnipsel und Projekte" eröffnen und dort alle Klassen in Code-Tags posten, die Main-Klasse nicht vergessen. Wenn es einiges zu posten gibt, dann benutze die Spoiler-Tags, so wird es gleich viel übersichtlicher. Eine .jar ist umständlich, wie ich finde
 

mrBrown

Super-Moderator
Mitarbeiter
Wobei sich bei größeren Projekten durchaus eine Jar (mit .java, nicht class-Dateien) anbietet. Ich zumindest guck mir sowas sowieso in meiner IDE an, direkt die Dateien zu haben macht's da einfacher ;)
 

CT9288

Mitglied
So. Es scheint, als würde ich nicht mal die Basics hinbekommen. Ich weiß auch nicht wirklich, wie ich genau nach diesem Problem googlen soll, also muss ich hier erneut fragen:
Nehmen wir an, ich habe drei *.java dateien. Spieler.java, A.java und B.java. Nehmen wir an, in Spieler.java ist int SpielerLeben gespeichert. Vielleicht SpielerLeben = 100, oder ähnlich. Wenn ich jetzt von A.java auf Spieler.java zugreife, um z.B. für einen Levelup das SpielerLeben zu erhöhen, wie kann ich es schaffen, dass ich danach, mit B.java ebenfalls auf Spieler.java zugreifen kann, um das neue SpielerLeben abzufragen, und ggf. ebenfalls zu verändern. Ich meine, ich schaffe es, von A.java auf Spieler.java zuzugreifen, aber nur durch rufen eines neuen Objektes von Spieler.java. Wie kann ich denn innerhalb von Spieler.java diese Variable dauerhaft ändern? oder kann ich von B.java das in A.java erschaffene Objekt irgendwie auch aufrufen? Dieses Thema lässt mich nicht los, und ich ärgere mich dermaßen, dass ich es nicht begreife. Ich schaffe es, in Spieler.java getter und setter einzurichten, die mir die Manipulation von variablen ermöglichen. Aber die Variablen so zu ändern, dass sie für alle *.java dateien dauerhaft zugreifbar sind, das begreife ich nicht. Geht denn das überhaupt? Oder muss man mit dem klarkommen, was ich beschrieben habe, und geschickt genug programmieren können? Vielen dank im Voraus...

edit: muss ich dafür die Variablen irgendwie public machen oder so?
 

mihe7

Top Contributor
Vergiss mal die verschiedenen .java-Dateien, die haben damit nicht zu tun.

Du hast Objekte, die miteinander kommunizieren. Damit ein Objekt a einem anderen Objekt b etwas mitteilen kann, muss das Objekt a das Objekt b kennen.

Woher? Entweder Objekt a erzeugt das Objekt b selbst oder aber dem Objekt a wurde das Objekt b irgendwie mitgeteilt.

Code:
String name = "CT9288";
System.out.println(name);

Hier haben wir zwei Objekte:
1. ein Objekt vom Typ String, gespeichert in einer Variablen name
2. ein Objekt vom Typ PrintWriter, gespeichert in einer Variablen System.out.

In dem Code (der ja auch in irgendeiner Klasse steht) wird jetzt eine Nachricht an das PrintWriter-Objekt geschickt. Diese Nachricht besteht einerseits aus dem Namen der Methode (println) und andererseits aus einem Parameter, dem String-Objekt (name). Erst damit kennt das PrintWriter-Objekt das String-Objekt.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Scanner-If/else kleine Abhebungs-Simulation Java Basics - Anfänger-Themen 3
H Suche jemanden für kleine Uni-Abgabe/ mit Vergütung Java Basics - Anfänger-Themen 1
P eine kleine Aufgabe mit Audio Java Basics - Anfänger-Themen 1
F Java Programm, das kleine Buchstaben in einem String zählen soll und bei großen Buchstaben oder Sonderzeichen abbrechen soll. Java Basics - Anfänger-Themen 5
J Kleine Frage zu OOP Java Basics - Anfänger-Themen 371
L Kleine Hilfe beim Schreiben eines Programmes benötigt :D Java Basics - Anfänger-Themen 40
M Welches Framework für kleine WebApp nutzen? Java Basics - Anfänger-Themen 6
D Kleine Probleme mit Split-Befehlen Java Basics - Anfänger-Themen 5
O Datei in mehrere kleine Dateien umwandeln Java Basics - Anfänger-Themen 47
CptK Interface Kleine Kreise in großem Kreis anordnen Java Basics - Anfänger-Themen 3
S Kleine Frage zu Threads Java Basics - Anfänger-Themen 3
T Klassen Kleine Übung zum Thema Klassen Java Basics - Anfänger-Themen 3
O Kleine Frage zu Iterator und Iterable Java Basics - Anfänger-Themen 6
O Kleine Frage zu cast Java Basics - Anfänger-Themen 3
U DOM Parser, kleine Frage Java Basics - Anfänger-Themen 29
N BierSpiel von "Kopf bis Fuss" eigener Code...kleine Problemstellung. Java Basics - Anfänger-Themen 11
Anfänger2011 2 kleine Fragen zu ArrayListen Java Basics - Anfänger-Themen 5
TheSorm Kleine Speicher Klasse Java Basics - Anfänger-Themen 24
F Speicherlast mehrere GB durch kleine png files? Java Basics - Anfänger-Themen 1
T Kleine Anfängerfrage :) Java Basics - Anfänger-Themen 4
T Kleine Klausurfragen Java Basics - Anfänger-Themen 17
T viele "kleine" Fragen... Java Basics - Anfänger-Themen 3
Q Vererbung Kleine Hilfe bei einer aufgabe Java Basics - Anfänger-Themen 5
DStrohma Best Practice Hibernate für kleine Anwendung nutzen? Java Basics - Anfänger-Themen 4
O Konsole - Kleine Frage Java Basics - Anfänger-Themen 22
N kleine get-Methode anhand einer Aufgabenstellung Java Basics - Anfänger-Themen 13
D Kleine Rechenregel... ++a Java Basics - Anfänger-Themen 4
ScottGambler Kleine Frage Java Basics - Anfänger-Themen 13
M Erste Schritte 2 Kleine Programme Java Basics - Anfänger-Themen 27
T Kleine Frage Java Basics - Anfänger-Themen 2
B Kleine Erklärung zu einer Codezeile benötigt Java Basics - Anfänger-Themen 5
A Java Flächeninhaltsberechnung kleine Frage Java Basics - Anfänger-Themen 8
H Datei in kleine Stücke teilen und wieder erkennen Java Basics - Anfänger-Themen 10
P eigene kleine Datenverwaltung Java Basics - Anfänger-Themen 5
K Erste Schritte Kleine Verständnisfrage Java Basics - Anfänger-Themen 12
S Erste Schritte Zwei kleine Fragen zu [], int und Konstruktor Java Basics - Anfänger-Themen 3
S Erste Schritte Kleine Problem mit Ausgabe in eine Datei Java Basics - Anfänger-Themen 11
G Kleine Java Programme aus Main Java Programm starten..... Java Basics - Anfänger-Themen 3
R Sehr kleine doubles nicht in Exponentialdarstellung ausgeben Java Basics - Anfänger-Themen 3
H Datenbank suche in kleine Schritte Java Basics - Anfänger-Themen 6
O kleine SwingFrame Java Basics - Anfänger-Themen 3
T Kleine Frage zu Collections Java Basics - Anfänger-Themen 3
J BlueJ! 2 kleine Fragen zum Spiel. Java Basics - Anfänger-Themen 3
J Kleine Datenbank programmieren Java Basics - Anfänger-Themen 2
J Eigene kleine Datenbank programmieren Java Basics - Anfänger-Themen 2
H Warum funktioniert diese kleine Methode nicht? Java Basics - Anfänger-Themen 8
E Kleine Hilfe für einen Einsteiger Java Basics - Anfänger-Themen 18
Luk10 Dateipfad beim Laden einer Datei + Neue kleine Frage! Java Basics - Anfänger-Themen 11
U actionListener - eine Kleine Frage Java Basics - Anfänger-Themen 7
M kleine Verständisfrage zur Klassenhierarchie, speziel JMenuItem Java Basics - Anfänger-Themen 8
J Kleine Frage zu Methoden & OOP Java Basics - Anfänger-Themen 4
B Paar kleine Grundsatzfragen zu Java Java Basics - Anfänger-Themen 5
M kleine und einfache Verständnisfrage Java Basics - Anfänger-Themen 3
S 2 kleine Methoden negieren und print Java Basics - Anfänger-Themen 8
J if und kleine double Werte Java Basics - Anfänger-Themen 7
H kleine zwischenfrage string Java Basics - Anfänger-Themen 3
ModellbahnerTT Kleine Frage zu doppelten Arrays Java Basics - Anfänger-Themen 3
Y Kleine Verständnisfrage zum Thema dynamische Polymorphie Java Basics - Anfänger-Themen 3
M Kleine Konsole mit Threads + KeyAdapter Java Basics - Anfänger-Themen 6
hdi Kleine Design/Convention Frage zu Konstruktoren Java Basics - Anfänger-Themen 4
hdi kleine Verständnisfrage lokale + Member Variable Java Basics - Anfänger-Themen 10
R Kleine Frage zu Array Java Basics - Anfänger-Themen 2
B kleine Probleme beim auslesen einer m3u Datei Java Basics - Anfänger-Themen 3
G eine kleine verwaltung Java Basics - Anfänger-Themen 2
M Eine kleine Frage bzw kleine Theorie frage String[arg] Java Basics - Anfänger-Themen 6
Povlsen84 Initlialisierung, Vector, serialVersionUID . kleine Fragen Java Basics - Anfänger-Themen 4
M Kleine Anfängerfrage Java Basics - Anfänger-Themen 10
D kleine Passwortabfrage erstellen incl. Method zum verändern Java Basics - Anfänger-Themen 7
G jFTP - kleine Fragen Java Basics - Anfänger-Themen 2
P Eine kleine Frage. Java Basics - Anfänger-Themen 4
M kleine sql abfrage Frage Java Basics - Anfänger-Themen 5
K Kleine Fragen über Arrays Java Basics - Anfänger-Themen 8
Z kleine frage zu: Runtime.getRuntime().exec("cmd /c) Java Basics - Anfänger-Themen 3
M Zufallszahl - kleine Frage Java Basics - Anfänger-Themen 4
K Hallo, Ich suche kleine Java Program-Aufgaben zum üben ? Java Basics - Anfänger-Themen 4
S kleine suche Java Basics - Anfänger-Themen 9
D kleine spielerei mit swing Java Basics - Anfänger-Themen 5
A Kleine Tabelle . Java Basics - Anfänger-Themen 8
U kleine datenbank Java Basics - Anfänger-Themen 86
G kleine Frage Java Basics - Anfänger-Themen 4
Q Wie kann man eine kleine pause im Programm machen? Java Basics - Anfänger-Themen 13
J Kleine Connection Frage Java Basics - Anfänger-Themen 4
J kleine java aufgabe: ausgabe von sternchen Java Basics - Anfänger-Themen 20
P kleine db-aufgabe läuft nur suboptimal Java Basics - Anfänger-Themen 8
S ein paar kleine Fragen Java Basics - Anfänger-Themen 4
M Kleine Frage zu If-Bedingung Java Basics - Anfänger-Themen 4
X Kleine Frage: Split Java Basics - Anfänger-Themen 13
G sehr kleine Dezimalzahlen (BigDecimal) falsch angezeigt Java Basics - Anfänger-Themen 5
G Eigene kleine Sprache entwickeln Java Basics - Anfänger-Themen 6
T Kleine Verständnissfrage Java Basics - Anfänger-Themen 7
J Große *.Text Datei zum verschicken in viele kleine Java Basics - Anfänger-Themen 7
A Noch ne kleine Beanshell Frage Java Basics - Anfänger-Themen 7
B eine kleine leichte aufgabe mit einem stack programmieren Java Basics - Anfänger-Themen 2
A Kleine Anfängerfragen u.a.: Kann man Random "speichern& Java Basics - Anfänger-Themen 6
Robert_Klaus Hamster java Simulation Hilfe bei einer Aufgabe Java Basics - Anfänger-Themen 5
W Cache Simulation Java Basics - Anfänger-Themen 3
L Ampel-Simulation Java Basics - Anfänger-Themen 20
D Erste Schritte Jäger-Beute Simulation Java Basics - Anfänger-Themen 19
M Simulation - Algorithmus Java Basics - Anfänger-Themen 3
S Simulation auf Knopfdruck Java Basics - Anfänger-Themen 29

Ähnliche Java Themen

Neue Themen


Oben