Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Also, ich weiß es ist zwar noch unfertig, aber einiges sollte ja schon laufen, es handelt sich hierbei um die programmierung einer lottoziehung...aber jedesmal wenn ich auf ziehung klicke...steht da nur:

Sie haben getippt:Ziehung läuft ........

Exception in thread "main" java.lang.NullPointerException

at grundschema.Lottospiel_1.ziehen(Lottospiel_1.java:124)

at grundschema.Lottospiel_1.eineZiehung(Lottospiel_1.java:67)

at grundschema.Lottospiel_1.fuehreAus(Lottospiel_1.java:97)

at grundschema.Start_Lottospiel_1.main(Start_Lottospiel_1.java:9)

und leider bin ich total ratlos was ich da falschgemacht haben soll.:

package grundschema;

import basis.*;

public class Lottospiel_1 {

private Fenster fen;

private Knopf abK, ziehK, ergK, endK;

private BeschriftungsFeld bfTitel;

private BeschriftungsFeld[] bfZahl;

private ZahlenFeld[] zFeld;

private boolean[] tipp;

private boolean[] ziehung; // 2 Mal boolean !!!

// private int anzahlRichtige;

private int[] tippko; // um tipp kompakt zu speichern

private int[] tippgez; //um gezogene Zahlen kompakt zu speichern

public Lottospiel_1() {

fen = new Fenster("Lotto", 500, 400);

abK = new Knopf("Ab!", 30, 150, 70, 40);

ziehK = new Knopf("Zieh!", 130, 150, 70, 40);

ergK = new Knopf("Und?", 230, 150, 70, 40);

endK = new Knopf("Ende", 330, 150, 70, 40);

ziehK.setzeBenutzbar(false);

bfTitel = new BeschriftungsFeld(" Lotto 5 aus 16", 100, 40, 150, 30);

bfTitel.setzeSchriftGroesse(20);

/*------------------------------------------*/

bfZahl = new BeschriftungsFeld[6];

for (int i = 1; i <= 5; i++) {

bfZahl = new BeschriftungsFeld("Zahl " + i, 25 + i*50, 100,40,15);

}

zFeld = new ZahlenFeld[6];

for (int i = 1; i <= 5; i++) {

zFeld = new ZahlenFeld(25 + i * 50, 120, 40, 20);

}

/*------------------------------------------*/

tipp = new boolean[17];

ziehung = new boolean[17];

tippko = new int[6];

}

private void init() {

for (int nr = 1; nr <= 16; nr++) {

tipp[nr] = false;

ziehung[nr] = false;

}

}

private void tippUebernehmen() {

int zahl;

this.init();

for (int i = 1; i <= 5; i++) {

zahl = zFeld .ganzZahl ();

tippko[1] = zahl;

}

this.umspeichern();

System.out.print("Sie haben getippt:");

this.anzeigen(tipp);

ziehK.setzeBenutzbar(true);

}

private void eineZiehung() {

System.out.println("Ziehung läuft ........");

Hilfe.warte(1000);

this.ziehen();

System.out.print("Gezogen wurden: ");

this.anzeigen(ziehung);

ziehK.setzeBenutzbar(false);

}

public void ergebnisseZeigen() {

int anzahlR = 0;

//...........

System.out.println(" Sie haben " + anzahlR + " Richtige !");

System.out.println(" Ihr Gewinn beträgt " +"???" + " EURO !");

}

public void fuehreAus() {

System.out.println(" 5 Zahlen tippen, dann <Ab!>");

for (int i=1; i<= 5;i++)

{

zFeld.setzeZahl(i);

}

zFeld[1].setzeFokus(); zFeld[1].markiereAlles();

this.gewinnQuotenAnzeigen();

while (!endK.wurdeGedrueckt()) {

if (abK.wurdeGedrueckt()) {

this.tippUebernehmen();

}

if (ziehK.wurdeGedrueckt()) {

this.eineZiehung();

}

if (ergK.wurdeGedrueckt()) {

}

Hilfe.kurzePause();

}

fen.gibFrei();

}// /fuehreAus

/******************************************************************************/

private void ziehen() {

int gezogen, anzahl = 1;

while ( anzahl < 5 ) {

gezogen = Hilfe.zufall( 1, 16);

if ( ziehung[gezogen] == false ) {

ziehung[gezogen] = true;

tippgez[anzahl] = gezogen;

anzahl++;

}

}

// else { /* ? */ }

}

private void umspeichern() {

/* vvv speziell vvv */ /* vvv allgemein vvv */

tipp[11] = true; tipp[tippko[0]] = true;

tipp[2] = true; tipp[tippko[1]] = true;

tipp[7] = true; tipp[tippko[2]] = true;

tipp[13] = true; tipp[tippko[3]] = true;

tipp[8] = true; tipp[tippko[4]] = true;

}

private void gewinnQuotenAnzeigen() {

System.out.println("2 Richtige: EURO: " + "10");

System.out.println("3 Richtige: EURO: " + "30");

System.out.println("4 Richtige: EURO: " + "400");

System.out.println("5 Richtige: EURO: " + "1000");

}

private int gewinn(int aR) { // Parametername ist egal

int prod;

if (aR < 2)

prod = 0;

else

prod = 5;

for (int i = 2; i <= aR; i++) {

prod = prod * 10;

}

return prod;

}// /gewinn

private int anzahlRichtige() {

int anzri = 0;

for (int i = 1; i <= 16; i++) {

//.........

}

return anzri;

}// /richtige

private void anzeigen(boolean[] zettel) {

// zettel kann tipp oder ziehung sein;

for (int i = 1; i <= 16; i++) {

//...

}

}

private void tippzeigen() {

//..............

}

private void ziehungzeigen() {

//..............

}

private void wasIstDas() { //?

// int zahl;

tippko = new int[6];

tippko[1] = zFeld[1].ganzzahl();

tippko[2] = zFeld[2].ganzzahl();

tippko[3] = zFeld[3].ganzzahl();

tippko[4] = zFeld[4].ganzzahl();

tippko[5] = zFeld[5].ganzzahl();

}//

}

wäre nett wenn mir jmd sagen würde was und wo der fehler denn ist....und was das mit dem exception da bedeuetet:confused:

Geschrieben

Wenn Du eine NullPointerException nicht interpretieren kannst oder willst, ist die Programmierung nichts für Dich.

Les Dir an, was null ist, überprüfe, ob an der gezeigten Stelle etwas null sein kann und ändere es.

Die Fehler anderer Leute, die leicht zu fixen sind, wird hier keiner übernehmen.

Peter

Geschrieben
Wenn Du eine NullPointerException nicht interpretieren kannst oder willst, ist die Programmierung nichts für Dich.

Les Dir an, was null ist, überprüfe, ob an der gezeigten Stelle etwas null sein kann und ändere es.

Die Fehler anderer Leute, die leicht zu fixen sind, wird hier keiner übernehmen.

Peter

Liest du eigentlich manchmal was du so schreibst? Finde es schon ziemlich anmaßend jemandem zu sagen, dass nur weil er etwas nicht versteht, programmieren nichts für ihn ist.

Jeder lernt halt anders und auch verschieden schnell. Gab mit sicherheit auch genug dämliche Fragen die du gestellt hast, also hilf anständig oder überspring den Thread. Danke.

Geschrieben
Gab mit sicherheit auch genug dämliche Fragen die du gestellt hast, also hilf anständig oder überspring den Thread. Danke.

Das finde ich sehr anmaßend, ich stelle keine dämlichen Fragen und hab auch noch keine gestellt. :)

Nein im Ernst, wenn jemand exakt die Zeile aus der Fehlermeldung in Verbindung mit einem Link zu einer Ressource, wo ihm diese Art von Fehlermeldungen erklärt wird, erhält, und sich anhand dieser Informationen nicht das benötigte Wissen erarbeiten kann, um das Problem zu lösen, ist er in meinen Augen wirklich nicht für die Softwareentwicklung geeignet. Was passiert, wenn der Fehler mal ein bisschen exotischer ist (IO-Fehler, XML-Schema-Fehler, usw.)?

Und welche Threads ich überspringe, wirst Du mir überlassen müssen. Danke.

Das wars übrigens von meiner Seite mit OT (BTW wo ist Deine Erklärung und Hilfe für den OP? :) )

Peter

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...