Java Erste Spielereien und die damit verbundenen Probleme eines Anfängers

defniere das Informatikstudium
Informatik = Lehre von den Informationen

So erklär ich das zumindest einem Laien. Dass da komplizierte Mathematik dahintersteckt, die zu Algorithmen führt, theoretische Beweisführung, blablabla, schnallen wohl die wenigsten und is für die Erklärung des Begriffs imo auch nicht notwendig.

Informatik Lehre von den Programmiersprachen :!:

Dass man weiß, dass es in Java enums gibt, zählt sicher nicht zum Informatikstudium. Wer sagt, dass du in deinem Studium überhaupt Java über den Weg läufst? Bei uns an der Uni wirds im ersten Semester für die Algorithmik eingesetzt, aber ich würd nicht drauf wetten, dass das überall so is.


So, und jetzt bitte wieder back2topic. Das P0rn-Forum is wo anders - nicht hier ;)

An dieser Stelle ein Wort zu Java-Enumerations: Tolle Sache... bis man versucht, seine Java-Anwendung auf JavaME zu portieren :ugly: :-?
 
An dieser Stelle ein Wort zu Java-Enumerations: Tolle Sache... bis man versucht, seine Java-Anwendung auf JavaME zu portieren :ugly: :-?

J2ME ist eine Ausgeburt der Hölle :evil:
eine abgespecke Java 1.2 Version und nichtmal Fließkommazahlen im damaligen Standard? Das wurde erst mit MIDP 2.1 behoben.
Und dann die tausenden Implementierungsfehler auf den Handys, da hat echt jede Produktreihe andere Fehler und besonders schlimm die Motorolas und Samsungs.
Habe es daher wieder sein lassen, das macht doch keinen Spaß
 
Koennen wir bitte auf das Thema des Kartenspiels zurueckkommen?

Das mit den einzelnen Klassen ist sicherlich eine gute Idee wenn man die Sachen spaeter nochmal wiederverwenden will.

Ansonste implementier das Deck einfach als List<String>, randomisier das (findest sicherlich code dafuer online) und zieh dann immer davon ab.

Ob man Karten selber als Klasse implementiert finde ich eine persoenliche Vorliebe, es geht natuerlich auch sehr simpel wenn man wirklich nur eine quick&dirty Loesung will.
 
Ich hab nochmal etwas gebastelt. Das ganze soll ne Verbrauchstabelle darstellen. Ich hab dafür das erste mal Arrays genutzt. Allerdings konnte ich keine int Arrays erstellen, weiß nur leider nicht genau warum.

PHP:
private ArrayList<int> Kilometer;
// (...)
Kilometer = new ArrayList<int>();

Fehler: unexpected Typ


Stimmt die Formatierung so jetzt ? Mit den "{" direkt hinter dem Methodenkopf komm ich noch nicht ganz klar, das verwirrt mich momentan noch etwas 8)


PHP:
import java.util.ArrayList;

public class Spritverbrauch2
{
    private ArrayList<String> Kilometer;
    private ArrayList<String> Strecke;
    private ArrayList<String> Tankmenge;
    private ArrayList<String> Verbrauch;
    private int zeile = 1;
    private double Strecke2;
    private double Verbrauch2;
    private double Tankmenge2;
    private double Berechnungslänge =1;
    private double i;
    private double j; 
       
    public Spritverbrauch2(String neueStartkilometer)
    {        
        Kilometer = new ArrayList<String>();
        Kilometer.add(neueStartkilometer);
        Strecke = new ArrayList<String>();
        Strecke.add("leer");
        Tankmenge = new ArrayList<String>(); 
        Tankmenge.add("leer");
        Verbrauch = new ArrayList<String>(); 
        Verbrauch.add("leer");       
    }
    
    public void neueDaten(String neueKilometer, String Tankmenge2)
    {
        Kilometer.add(neueKilometer);
        Tankmenge.add(Tankmenge2);
        Berechnungslänge++;
        Berechnung();
        GebeTabelle();
    }    

    private void Berechnung()
    {
        double i = Double.valueOf(Kilometer.get(zeile));
        double j = Double.valueOf(Kilometer.get(zeile-1));
        Strecke2 = i - j ;
        Strecke.add(""+Strecke2);
        Tankmenge2 = Double.valueOf(Tankmenge.get(zeile));
        Verbrauch2 = Tankmenge2 / Strecke2 /100;
        Verbrauch.add(""+Verbrauch2);     
        i = 0;
        j = 0;
        zeile++;
    }

    private void GebeTabelle()
    {
        System.out.print("Kilometer      ");   
        System.out.print("Strecke      ");   
        System.out.print("Tankmenge      ");   
        System.out.print("Verbrauch         ");   
        System.out.println("");  

        for (int a = 1 ; a < Berechnungslänge ; a++)
        {
            System.out.print(Kilometer.get(a)+"          ");   
            System.out.print(Strecke.get(a)+"         ");   
            System.out.print(Tankmenge.get(a)+"           ");   
            System.out.print(Verbrauch.get(a)+"       ");   
            System.out.println("");   
        }
    }
}
 
Du musst im Generic eine Klasse angeben. int oder double sind Element-Datentypen, keine Klassen. Verwende Int oder Double, dann gehts.
PHP:
private ArrayList<Int> Kilometer;
// (...)
Kilometer = new ArrayList<Int>();
 
"Cannot find symbol - class int"

Hatte ich schon versucht.


edit: *Kopf an Wand klatsch* es muss "Integer" heißen, Int reicht nicht.
edit2: Nochmal 10 Sekunden langsamer als ihr. So konnte ich wenigstens die String -> Int Funktion entdecken :p
 
Zuletzt bearbeitet:
Integer :!:
du kannst dann ganz normal ints da reinspeichern, durch das Autoboxing bzw. Autounboxing können aus den primitiven Datentypen bei Bedarf Objekte werden.
 
Hab ich absichtlich falsch gesagt, damit man auch mal n Blick ins Manual wirft :liar:
 
Naja, zumindest die Erklärungen in deutsch würden es einiges leichter für mich machen. Dann muss ich wohl oder übel aber mit dem englischen leben, klappt ja im Endeffekt auch :D
 
Seit wann programmiert man bitte in Deutsch? 8O
Nein. JavaDoc wird direkt aus dem Quellcode erzeugt und der is nun mal immer in englischer Sprache.

Wieso faellt mir grad die eine oder andere Programmierspache ein in der man Chinesische Symbole und Umlaute in Variablennamen benutzen darf :ugly:

Fast so sinnlos wie umlaut domains, die man eh nur mit der richtigen Tastatur ansteuern kann :D
 
Wieso faellt mir grad die eine oder andere Programmierspache ein in der man Chinesische Symbole und Umlaute in Variablennamen benutzen darf :ugly:
Weil die eine (ne andere? :think:) Programmiersprache eben alles in UTF8 macht und deswegen auch 쫎쩍索❹❷ als Variablenname erlaubt.

... du solltest es aber dennoch nicht tun. Und ich hab bis jetzt keinen einzigen Code in dieser besagten Programmiersprache gesehen, wo auch nur ein Umlaut im Codebereich stand.
 
Den JavaDoc in Englisch zu verfassen ist zwar Best-Practice, es spricht aber nicht dagegen die Doku auch in Deutsch zu machen.
Mach ich auch relativ oft, wenn ich es für eine deutsche Firma baue, oder nur für mich, muss es nicht englisch sein.

Aber auf keinen Fall deutsche Variablen-, Klassen- oder Methodennamen, denn das geht wirklich nicht :LOL:
 
Hab nochmal was gebastelt, dieses mal ein Quiz :p

Habe da aber ein kleines Problem:

fehler.jpg


Quelltext:

PHP:
import java.util.ArrayList;

public class Quiz
{
    private ArrayList<String> Question;
    private ArrayList<String> Answer1;
    private ArrayList<String> Answer2;
    private ArrayList<String> Answer3;
    private ArrayList<String> Answer4;
    private ArrayList<String> RightAnswer;  
    private ArrayList<String> LevelList; 
    private int Level = 1;
    
    private boolean Status = true;
    private int NumberOfQuestions = 5;
    private int RightAnswers;
    private int FalseAnswers;    
    public int QuestionNumber=0;
    
    public Quiz()
    {
        LevelList = new ArrayList<String>();
        LevelList.add("0"); LevelList.add("50"); LevelList.add("100"); LevelList.add("200"); LevelList.add("300"); LevelList.add("500");
        LevelList.add("1.000"); LevelList.add("2.000"); LevelList.add("4.000"); LevelList.add("8.000"); LevelList.add("16.000");
        LevelList.add("32.000"); LevelList.add("64.000"); LevelList.add("125.000"); LevelList.add("500.000"); LevelList.add("1.000.000");
        
        Question = new ArrayList<String>();
        Answer1 = new ArrayList<String>();
        Answer2 = new ArrayList<String>();
        Answer3 = new ArrayList<String>();
        Answer4 = new ArrayList<String>();
        RightAnswer = new ArrayList<String>();
        AddQuestion("Was ist blau?", "Blauer Ball", "Rote Rakete", "Grüner Baum", "Deine Dusche", "a");
        AddQuestion("1+1=_?", "1", "2", "3", "4", "b");
        AddQuestion("2+2=_?", "1", "2", "3", "4", "d");
        AddQuestion("4-2=_?", "1", "2", "3", "4", "b");
        AddQuestion("1+2=_?", "1", "2", "3", "4", "c");
    }  
    
    private void AddQuestion (String q, String a1, String a2, String a3, String a4, String ra)    
    {
        Question.add(q);
        Answer1.add(a1);
        Answer2.add(a2);
        Answer3.add(a3);
        Answer4.add(a4);
        RightAnswer.add(ra);
    }      
    private void chooseQuestion ()

    {
        QuestionNumber = 0;    
        double x= 0;
        x = Math.random()*NumberOfQuestions;   
        QuestionNumber =(int)x;
    }    
    private void getQuestion()
    {
         chooseQuestion();
         System.out.println("");
         System.out.println("");
         System.out.println("Die Frage lautet: "+Question.get(QuestionNumber));
    }    
    private void getAnswers()
    {
        System.out.println("");
        System.out.println("Antwortmöglichkeiten:) ");
        System.out.print(" A) "+Answer1.get(QuestionNumber));
        System.out.println("    B) "+Answer2.get(QuestionNumber));
        System.out.print(" C) "+Answer3.get(QuestionNumber));
        System.out.print("    D) "+Answer4.get(QuestionNumber));
    }       
    private void giveAnswer(String Answer)
    {
        if (Answer.equals (RightAnswer.get(QuestionNumber)))
        {
            System.out.println("");
            System.out.println("");
            System.out.print("Die Frage Wurde richtig beantwortet");
            Level++;
        }
        else
        {
            System.out.println("");
            System.out.println("");
            System.out.print("Die Frage Wurde falsch beantwortet");
            Status = false;
        }                
     }    
     private void giveLevellist()
     {
         System.out.print("");
     }
     public void StartQuiz()   
     {
         while (Level <= 15 && Status == true)
            {
                getQuestion();
                getAnswers();
                giveAnswer();
            }    
      }                              
}

https://pastebin.com/3hpfhFW5

Damit es funktioiert müsste ich jetzt z.b "c" reinschreiben. Dann könnte man aber nicht mehr antworten. Ich möchte, dass man jedes, wenn die Methode "StartQuiz" intern die Methode "giveAnswer" aufruft einen neuen String eingeben muss...
 
Dann bau irgendeine Eingabe ein aber ist doch klar, dass du ne Funktion mit Parametern nicht ohne selbige aufrufen kannst ;)
 
Genau da liegt mein Problem. Entweder bin ich nicht fähig die richtigen Suchbegriffe einzugeben (schöne Grüße an Google...) oder ich find nicht den richtigen Punkt in der Dokumentation.

Fragestelleung Wie genau kann ich innerhalb einer Methode eine Eingabe (String) erzwingen?