[HILFE] Java "Nim-Spiel" funktioniert nicht

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

ich schätze mal du musst die while schleife auf

while(haufen>=0) ändern

haufen hat am Anfang 13, und daher wird die Schleife nicht durchlaufen und das Programm ist gleich fertig.

Warum funktionert mein Tascherecher in Java nicht??

das ist der Code ..

import java.util.Scanner;

public class Calc {

public static void main(String args []) {
    Scanner s = new Scanner (System.in) ;
    int w,x,y,z ; 
    System.out.println("Geben sie hre erste Zahl ein");
    w = s.nextInt();
    System.out.println("Nun Ihre zweite");
    x = s.nextInt();  
    System.out.println("Welche Rechenart wollen sie benutzen ?");
    System.out.println("1. Addition");
    System.out.println("2. Subtraktion");
    System.out.println("3. Multiplikation ");
    System.out.println("4. Division ");
    System.out.println("Geben Sie die zugehörige Zahl ein ");
    y= s.nextInt(); 
    
    if(y==1) {
        z = 1111;}
            else if (y==2)  { 
                z = 2222;}
                    else if (y==3)
                        {z = 3333;}  
                            else  if (y==4)
                                {z = 4444;}
                                else; 
                                    {z= 8888;}

    System.out.println("Hier ist ihr Ergebnis " + z);
        
}

} Das soll ein Taschenrechner sein Warum geht das nicht ?

...zur Frage

Wie findet ihr meinen Java Taschenrechner?

public static void main(String args []) {
  Scanner s = new Scanner (System.in);
  System.out.println("Hallo, dies ist ein Taschenrechner");
  Methode();
  System.out.println("Möchtest du nochmal rechnen?: j/n");
  String Nochmal = s.next();

  if (Nochmal.equals("j")) {
    Methode();
  }
  else
  {
    System.out.println("Vielen Dank und auf Wiedersehen!");
  }
}

public static void Methode() {
  Scanner s = new Scanner (System.in);
  boolean bool;
  System.out.println("Wähle eine Rechenoperation aus. Zur Auswhl stehen: +,-,/,");
  String Operationszeichen = s.next();

  do {
    if (Operationszeichen.equals("+")) {
      System.out.println("Eingabe bestätigt.");
      bool = true;
    }
    else if (Operationszeichen.equals("-")) {
      System.out.println("Eingabe bestätigt.");
      bool = true;
    }
    else if (Operationszeichen.equals("/")) {
      System.out.println("Eingabe bestätigt.");
      bool = true;
    }
    else if (Operationszeichen.equals("")) {
      System.out.println("Eingabe bestätigt.");
      bool = true;
    }
    else {
      bool = false;
      System.out.println("Eingabe nicht verstanden. Bitte wähle eine gültige Rechenoperation aus.");
      Operationszeichen = s.next();
    }
  }

  while(bool == false);

  System.out.println("Nun gib zwei Zahlen ein, mit denen gerechnet werden soll");
  double a = s.nextInt();
  double b = s.nextInt();
  double c;

  if (Operationszeichen.equals("+")) {
    c = a + b;
  }
  else if (Operationszeichen.equals("-")) {
    c = a - b;
  }
  else if (Operationszeichen.equals("/")) {
    c = a / b;
  }
  else {
    c = a * b;
  }

  System.out.println("Das ergebnis lautet: " + c);
}
...zur Frage

Wiso funktioniert das bluej schnick schnack schnuck programm nicht

habe diesen quellcode erstellt:

import java.util.Random; public class STEIN { private int schere; private int stein; private int papier; private int j; private int i; private int S1; private int S2;

public STEIN()
{

    i=0;
    j=0;
    schere=1;
    papier=2;
    stein=3;
}


public void SPIEl()
{
  Random zufall= new Random();

  while (S1==S2)
  {
   int S1= zufall.nextInt(3);
     int S2= zufall.nextInt(3);
  }


  while ( S1!=S2||i<3 ||j<3)
   {
     int S1= zufall.nextInt(3);
     int S2= zufall.nextInt(3);


     if(S1==2)
      {
          if(S2==3)
        {i=i+1;
        }
        else 
        {j=j+1;
        }
    }
        if(S1==3)
        {if (S2==2)
            {j=j+1;
            }
            else 
            { i=i+1;
            }
        }
     else 
     {if (S2==2)
         {i=i+1;
            }
     else 
     j=j+1;
    }

    }
    if (i==3)
     {System.out.println("Spieler 1 gewinnt");
     }
    else if (j==3)
    {System.out.println("Spieler 2 gewinnt");
    }

    } 
}
...zur Frage

Warum kommt es bei dem Ausführen des Programmes zu einem Fehler?

package pr2;

import javax.swing.JOptionPane;

public class prrrr {
  static int frage = 1;
  static int ende = 1;
  static double durchschnitt = 0;
  static int bstNote = 0;
  static double summe = 0;
  static int i = 0;
  static int schNote = 0;
  static int zahl = 0;
  static int []anzahl;
  ;

  public static void main(String[] args) {
    double noten[] = new double[100];
    double min = Double.MAX_VALUE;
    double max = Double.MIN_VALUE;

    while(frage == 1){
      String zahl2 = JOptionPane.showInputDialog("Welche Noten hast du bekommen?(Wenn du fertig bist gib q ein)");

      if(zahl2.equals("q"))
      {
        frage = 0;
      }
      else
      {
        int zahli = Integer.parseInt(zahl2);
        noten[i] = zahli;
        //System.out.println(noten[i]);

        summe = (noten[i] + summe);
        i++;
        int anzahl[] = new int[i];
      }

      if (frage == 0)
      {
        durchschnitt = summe / i;
        
        //Beste Note

        //Schlechteste Note

        for (int a = 0; a < i; a++) {
          if (noten[a] < min)
          {
            min = noten[a];
            //System.out.println(noten[a] + " + " + min);
          }
        }
        for (int a = 0; a < noten.length; a++) {
          if (noten[a] > max)
          {
            max = noten[a];
            //System.out.println("max: " + max);
          }
        }
        for(int zahl = 0; zahl < 16; zahl++)
          for(int r = 0; r<noten.length + 1; r++)
          {
            if(noten[r] == zahl)
            {
              anzahl[zahl] = anzahl[zahl] + 1;
            }
          }
        System.out.println("Schlechteteste Note: " + (int)min + "\nBeste Note: " + (int)max);
        System.out.println("Der Durchschnit beträgt: " + durchschnitt);
        System.out.println("-------Notenspiegel-------");
        System.out.println("0" + anzahl[0] + "\n");
        System.out.println("1" + anzahl[1] + "\n");
        System.out.println("2" + anzahl[2] + "\n");
        System.out.println("3" + anzahl[3] + "\n");
        System.out.println("4" + anzahl[4] + "\n");
        System.out.println("5" + anzahl[5] + "\n");
        System.out.println("6" + anzahl[6] + "\n");
        System.out.println("7" + anzahl[7] + "\n");
        System.out.println("8" + anzahl[8] + "\n");
        System.out.println("9" + anzahl[9] + "\n");
        System.out.println("10" + anzahl[10] + "\n");
        System.out.println("11" + anzahl[11] + "\n");
        System.out.println("12" + anzahl[12] + "\n");
        System.out.println("13" + anzahl[13] + "\n");
        System.out.println("14" + anzahl[14] + "\n");
        System.out.println("15" + anzahl[15] + "\n");
      }
    }
  }
}

Fehlercode:

Exception in thread "main" java.lang.NullPointerException
at pr2.prrrr.main(prrrr.java:68)

Der Fehler ensteht, nachdem ich alle Notenpunkte eingegeben habe.

...zur Frage

Obejekt orienetiertes Programmieren... wäre das so richtig?

Hallo,

ich weiss das in dem Programmstück das jetzt kommt bestimmt viele fehler sein werden aber ich weiss nur nicht was die fehler sind. Ich arbeite mit Eclipse und es zeigt mir wo die Fehler sind nur weiss ich nicht wie ich diese beheben soll.... Ich hoffe man kann mir helfen. Bin gerade dabei OOP zu lernen und naja... Hier das Programmstück

import java.io.*;

public class Mensakarte { double guthaben; String besitzer; boolean gesperrt;

public Mensakarte(){ guthaben = 0.0; besitzer = "Helene"; gesperrt = true; } public static void main(String args[]) throws IOException {

BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
int choice = 0;
boolean erfolg;

do {
  
  System.out.println();
  System.out.println("Bitte waehlen:");
  System.out.println("(1) Karte aufladen");
  System.out.println("(2) Guthaben anzeigen");
  System.out.println("(3) Kaffee abbuchen");
  System.out.println("(4) Essen abbuchen");
  System.out.println("(5) Verbleibende Kaffees anzeigen");
  System.out.println("(6) Sperre toggeln");
  System.out.println("(0) Ende");
  choice = Integer.parseInt(in.readLine());
  System.out.println();
  
  switch (choice) {
    
    case 1:
    System.out.print("Aufladebetrag? ");
    double betrag = Double.parseDouble(in.readLine());
       aufladen(betrag);
    break;
    
    case 2:
       guthaben();
    break;
    
    case 3:
       kaffe_abbuchen();
    break;
    
    case 4:
    System.out.print("Essenspreis? ");
    double preis = Double.parseDouble(in.readLine());
       essen_abbuchen (guthaben);
    break;
    
    case 5:
      anzahl();
    break;
    
    case 6:
      toggeln();
    break;
    
  }
  
} while (choice!=0);

} public static double aufladen(double plus){ if (plus >=0) {

    guthaben = guthaben + plus;
return guthaben;
}

}
public double guthaben(){
double guthaben=guthaben; return guthaben; }
public boolean kaffe_abbuchen(){ if (guthaben>= 1.20) { guthaben = guthaben - 1.20;

  return true;
}
else {
  return false; 
}

} public boolean essen_abbuchen(double preis){ if (guthaben>=preis) { guthaben = guthaben - preis;

  return true;
}
else {
  return false;
}

} public int anzahl(){ int zahl; zahl = guthaben/1.20;

return guthaben;

}
public boolean toggeln(){ boolean gesperrt;

if (gesperrt=true) {
  return false;
    
  } 
  else {
   return true;   
  }

} }

...zur Frage

Was möchtest Du wissen?