Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > General Coding
You last visited: Today at 03:56

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Counter zurücksetzen

Discussion on Counter zurücksetzen within the General Coding forum part of the Coders Den category.

Reply
 
Old   #1
 
Bombasticx3's Avatar
 
elite*gold: 0
The Black Market: 173/1/0
Join Date: Oct 2011
Posts: 4,608
Received Thanks: 675
Arrow Counter zurücksetzen

Moin Com,

hab folgendes Problem:
Code:
double x;
int sz = Integer.parseInt(jLabel3.getText());
sz = sz+1;
jLabel3.setText(""+sz);
x = Math.random();
if (x<=0.8){
JOptionPane.showMessageDialog(null,"Erfolg!","Erfolg!", JOptionPane.WARNING_MESSAGE);}
if (x>0.8){
JOptionPane.showMessageDialog(null,"Fehlgeschlagen!","Inane error", JOptionPane.ERROR_MESSAGE);}
Dadurch wird ja pro Klick +1 gerechnet, egal ob Erfolg oder Fehlschlag.
Hab daneben einfach einen Resetbutton und wenn Erfolg war muss man manuell da raufdrücken.

Würde es aber nun gerne so machen, wenn ein Fehlschlag war, dann +1 und nach dem nächsten Klick wieder +1. Sollte jedoch ein Erfolg sein, dann +1 und nach dem nächsten Klick steht dann "1" da.
Also Label=0 -> 0 Versuche, da noch nix gemacht.
Fehlschlag=1 -> 1. Versuch
Erfolg =2 -> 2. Versuch
Fehlschlag=1. -> 1. Versuch

Wäre dankbar für Hilfe
Bombasticx3 is offline  
Old 10/21/2014, 08:22   #2
 
XxharCs's Avatar
 
elite*gold: 34
Join Date: Apr 2011
Posts: 1,475
Received Thanks: 1,228
So wie ich dich verstanden hab, möchstest du das nur dann hochgezählt wird wenns ein Erfolg oder Fehlschlag ist oder?

Code:
sz += 1; // oder sz = sz + 1;
Dort hochzählen, wo du den Erfolg bzw. Fehlschlag hast. Laut dem Code wäre das in deiner if-Abfrage.


Edit:
Falls du meinst das wenn Erfolg zB. 3x war, ist dein Zähler bei 3, du dann aber dann 2x hintereinander Fehlschlag hast, der Counter auf 2 steht, dann kannst du entweder 2Counter bauen, einen für die Erfolge und den anderen für die Fehlschläger oder es so machen:
Code:
double x;
int sz = Integer.parseInt(jLabel3.getText());

jLabel3.setText(""+sz);
x = Math.random();
if (x<=0.8){
	sz += 1;
	JOptionPane.showMessageDialog(null,"Erfolg!","Erfolg!", JOptionPane.WARNING_MESSAGE);
}
if (x>0.8){
	sz = 0;
	sz += 1;
	JOptionPane.showMessageDialog(null,"Fehlgeschlagen!","Inane error", JOptionPane.ERROR_MESSAGE);
}
XxharCs is offline  
Thanks
1 User
Old 10/21/2014, 11:14   #3
 
Bombasticx3's Avatar
 
elite*gold: 0
The Black Market: 173/1/0
Join Date: Oct 2011
Posts: 4,608
Received Thanks: 675
Quote:
Originally Posted by XxharCs View Post
So wie ich dich verstanden hab, möchstest du das nur dann hochgezählt wird wenns ein Erfolg oder Fehlschlag ist oder?

Code:
sz += 1; // oder sz = sz + 1;
Dort hochzählen, wo du den Erfolg bzw. Fehlschlag hast. Laut dem Code wäre das in deiner if-Abfrage.


Edit:
Falls du meinst das wenn Erfolg zB. 3x war, ist dein Zähler bei 3, du dann aber dann 2x hintereinander Fehlschlag hast, der Counter auf 2 steht, dann kannst du entweder 2Counter bauen, einen für die Erfolge und den anderen für die Fehlschläger oder es so machen:
Code:
double x;
int sz = Integer.parseInt(jLabel3.getText());

jLabel3.setText(""+sz);
x = Math.random();
if (x<=0.8){
	sz += 1;
	JOptionPane.showMessageDialog(null,"Erfolg!","Erfolg!", JOptionPane.WARNING_MESSAGE);
}
if (x>0.8){
	sz = 0;
	sz += 1;
	JOptionPane.showMessageDialog(null,"Fehlgeschlagen!","Inane error", JOptionPane.ERROR_MESSAGE);
}
Danke, aber hilft mir (glaube) auch nicht weiter.
Wenn ich 8 Fehlschläge habe steht der Counter auf 8.
Wenn ich einen Erfolg habe steht der Couter danach auf 9.
Egal ob der nächste Versuch ein Erfolg oder Fehlschlag ist, soll dann "1" da stehen, für den ersten Verusch nach dem Erfolg.
Bombasticx3 is offline  
Old 10/21/2014, 12:15   #4
 
XxharCs's Avatar
 
elite*gold: 34
Join Date: Apr 2011
Posts: 1,475
Received Thanks: 1,228
Dann würd ich das so ca. machen(perfomance etc. nicht beachtet, einfach nur hingeschrieben )
Code:
double x;
int cErfolg = 0;
int cFehlschlag = 0;
int sz = 0;

x = Math.random();

if(cErfolg == 0) {
	sz = cFehlschlag;
}else if(cFehlschlag == 0) {
	sz = cErfolg;
}

jLabel3.setText(""+sz);

if (x<=0.8){
	cFehlschlag = 0;
	
	cErfolg += 1;
	JOptionPane.showMessageDialog(null,"Erfolg!","Erfolg!", JOptionPane.WARNING_MESSAGE);
}
if (x>0.8){
	cErfolg = 0;
	
	cFehlschlag += 1;
	JOptionPane.showMessageDialog(null,"Fehlgeschlagen!","Inane error", JOptionPane.ERROR_MESSAGE);
}
XxharCs is offline  
Thanks
1 User
Old 10/21/2014, 16:44   #5
 
Bombasticx3's Avatar
 
elite*gold: 0
The Black Market: 173/1/0
Join Date: Oct 2011
Posts: 4,608
Received Thanks: 675
Quote:
Originally Posted by XxharCs View Post
Dann würd ich das so ca. machen(perfomance etc. nicht beachtet, einfach nur hingeschrieben )
Code:
double x;
int cErfolg = 0;
int cFehlschlag = 0;
int sz = 0;

x = Math.random();

if(cErfolg == 0) {
	sz = cFehlschlag;
}else if(cFehlschlag == 0) {
	sz = cErfolg;
}

jLabel3.setText(""+sz);

if (x<=0.8){
	cFehlschlag = 0;
	
	cErfolg += 1;
	JOptionPane.showMessageDialog(null,"Erfolg!","Erfolg!", JOptionPane.WARNING_MESSAGE);
}
if (x>0.8){
	cErfolg = 0;
	
	cFehlschlag += 1;
	JOptionPane.showMessageDialog(null,"Fehlgeschlagen!","Inane error", JOptionPane.ERROR_MESSAGE);
}
"sz" ist bei deiner Variante immer 0.
Code:
if(cErfolg == 0) {
	sz = cFehlschlag;
}else if(cFehlschlag == 0) {
	sz = cErfolg;
}

jLabel3.setText(""+sz);
.

Da du cFehlschlag 0 setzt am Anfang und cErfolg ebenfalls, kann nix andres rauskommen.
Btw.:Bei dir hier wird ja nur einmal das Label beschrieben, was am Anfang auch rein gar nix nützt, da wie gesagt 0 rauskommt. Dieses Problem wird wohl ein Rätsel bleiben
Bombasticx3 is offline  
Old 10/21/2014, 17:39   #6
 
XxharCs's Avatar
 
elite*gold: 34
Join Date: Apr 2011
Posts: 1,475
Received Thanks: 1,228
Ich dachte du kannst daraus was herleiten, es ist klar das ich dir keinen ganz fehlerfreien Code gebe..

Und ich dachte das du schon weißt, wenn die Variablen innerhalb einer Methode initialisiert werden und diese Methode jedesmal aufgerufen wird, dass diese Variablen dann immer wieder neu initialisiert werden?.. Die Variablen sollten in dem/deinem Fall schon außerhalb der Methode deklariert und initialisiert werden..

Hier dann die komplette Lösung, da du ja nicht selbst draufkommen konntest
Code:
//Variablen deklarieren
double x;
int cErfolg;
int cFehlschlag;
int sz;

// Die Variablen evtl. im Konstruktor oder wo anders initialisieren wo sie nicht überschrieben werden durch neu Initialisierung
public Konstruktor() {

	cErfolg = 0;
	cFehlschlag = 0;
	sz = 0;
}

// In deinem Fall ist die Methode wahrscheinlich actionPerformed vom ActionHandler
public void Methode() {
	x = Math.random();

	if (x<=0.8){
		cFehlschlag = 0;

		cErfolg += 1;
		JOptionPane.showMessageDialog(null,"Erfolg!","Erfolg!", JOptionPane.WARNING_MESSAGE);
	}
	if (x>0.8){
		cErfolg = 0;

		cFehlschlag += 1;
		JOptionPane.showMessageDialog(null,"Fehlgeschlagen!","Inane error", JOptionPane.ERROR_MESSAGE);
	}

	if(cErfolg == 0) {
		sz = cFehlschlag;
	}else if(cFehlschlag == 0) {
		sz = cErfolg;
	}

	jLabel3.setText("" + sz);
}
XxharCs is offline  
Thanks
1 User
Old 10/21/2014, 18:13   #7
 
Bombasticx3's Avatar
 
elite*gold: 0
The Black Market: 173/1/0
Join Date: Oct 2011
Posts: 4,608
Received Thanks: 675
Ist mir klar, dass ich keine ganze kriege. Aber wie gesagt, auch nach diesem Ansatz ist und bleibt das Label bei 0 stehen. Ich hab bestimmt was falsch gemacht, aber mir egal, Thema abgehakt.
#edit jLabel hatte sich ja geändert bei mir.
Aber ist eben nicht so, wie ich wollte.
Ich arbeite mal weiter dranne.
Eig sollte er, wenn Erfolg, dann soll die Zahl da stehen bleiben und beim nächsten Klick wieder von vorne anfangen.
Dein Code zähl die Erfolge und sobald ein Feschlag kommt, setzt er den Code auf 1.
Haben wir dementsprechende aneinander vorbei geredet,
Danke trotzdem
Bombasticx3 is offline  
Reply




All times are GMT +1. The time now is 03:58.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.