Hallöchen.
Ich bin Anfänger, habe aber schon einige Programme geschrieben.
Nun stellt sich für mich die Frage, ob ich auch wirklich "richtig" programmiere, also mit einem nahe zu normalen Programmierstil.
Hier ist ein Programm von mir (Schere-Stein-Papier) :
tester.java
game.java
Was sollte ich am besten anders machen?
Besten Dank!
lg ehlr
Ich bin Anfänger, habe aber schon einige Programme geschrieben.
Nun stellt sich für mich die Frage, ob ich auch wirklich "richtig" programmiere, also mit einem nahe zu normalen Programmierstil.
Hier ist ein Programm von mir (Schere-Stein-Papier) :
tester.java
Java:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.WindowConstants;
public class tester extends JFrame {
int playerchoose = 0;
int pcchoose = 0;
static int wins = 0;
static int loses = 0;
static int score = 0;
private static final long serialVersionUID = 689925824694774327L;
public static void main(String[] args) {
tester gui = new tester(); //objekt von gui wird erzeugt
gui.setVisible(true); //Frame wird visible
gui.setBounds(750,100,360,375); //Größe setzen
gui.setTitle("Stein-Schere-Papier"); //Titel geben
gui.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); //Prozess beenden, wenn X
gui.setResizable( false ); //Nicht vergrößerbar
}//ende main method
JLabel lblchoosen, lbltext1, lblpcchoosen;
JLabel lbltext2;
JLabel lblregel;
JLabel lbltext3, lblwins, lblloses, lblscore;
static JLabel lblgewinner;
JButton button_stein, button_schere, button_papier;
public tester() {
this.getContentPane().setLayout(null);
this.initWindow();
}//ende public gui
protected void initWindow() {
button_stein = new JButton("Stein");
button_schere = new JButton("Schere");
button_papier = new JButton("Papier");
lblchoosen = new JLabel("Bereit");
lbltext1 = new JLabel("Ausgewählt :");
lblpcchoosen = new JLabel("Bereit");
lbltext2 = new JLabel("PC wählt :");
lblregel = new JLabel("<HTML><BODY>Schere schlägt Papier, Papier schlägt Stein,<BR>Stein schlägt Schere<BR><BR>Gewonnen : 10 Punkte<BR>Verloren : -8 Punkte<BR>Unentschieden : 2 Punkte</BODY></HTML>");
lbltext3 = new JLabel("Gewinner :");
lblgewinner = new JLabel("Noch nichts gewählt!");
lblwins = new JLabel("Gewonnen : 0");
lblloses = new JLabel("Verloren : 0");
lblscore = new JLabel("Punktestand : 0");
button_stein.setBounds(10,150,100,25);
button_schere.setBounds(120,150,100,25);
button_papier.setBounds(230,150,100,25);
lblchoosen.setBounds(100,195,150,25);
lbltext1.setBounds(10,195,100,25);
lblpcchoosen.setBounds(100,210,150,25);
lbltext2.setBounds(10,210,100,25);
lblregel.setBounds(10,10,300,100);
lbltext3.setBounds(10,250,90,25);
lblgewinner.setBounds(100,250,150,25);
lblwins.setBounds(10,295,100,25);
lblloses.setBounds(130,295,100,25);
lblscore.setBounds(10,315,150,25);
this.getContentPane().add(button_stein);
this.getContentPane().add(button_schere);
this.getContentPane().add(button_papier);
this.getContentPane().add(lblchoosen);
this.getContentPane().add(lbltext1);
this.getContentPane().add(lblpcchoosen);
this.getContentPane().add(lbltext2);
this.getContentPane().add(lblregel);
this.getContentPane().add(lbltext3);
this.getContentPane().add(lblgewinner);
this.getContentPane().add(lblwins);
this.getContentPane().add(lblloses);
this.getContentPane().add(lblscore);
this.pack();
button_stein.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
game game = new game();
// Player nimmt Stein (1)
int playerchoose = 1;
// Zug des PCs ermitteln
int pcchoose = (int)((Math.random()) * 3 + 1);
// Zahl in Stein,Schere oder Papier wandeln
String ausgabe_player = game.wahl(playerchoose) ;
String ausgabe_pc = game.wahl(pcchoose);
// ausgewählte anzeigen
lblchoosen.setText(ausgabe_player);
lblpcchoosen.setText(ausgabe_pc);
// Gewinner ermitteln
String gewinner = game.prüfe(playerchoose, pcchoose);
lblgewinner.setText(gewinner);
// Score
lblwins.setText("Gewonnen : " + wins);
lblloses.setText("Verloren : " + loses);
lblscore.setText("Punktestand : " + score);
}
});//ende actionlistener
button_schere.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
game game = new game();
// Player nimmt Papier (2)
int playerchoose = 2;
// Zug des PCs ermitteln
int pcchoose = (int)((Math.random()) * 3 + 1);
// Zahl in Stein,Schere oder Papier wandeln
String ausgabe_player = game.wahl(playerchoose) ;
String ausgabe_pc = game.wahl(pcchoose);
// ausgewählte anzeigen
lblchoosen.setText(ausgabe_player);
lblpcchoosen.setText(ausgabe_pc);
// Gewinner ermitteln
String gewinner = game.prüfe(playerchoose, pcchoose);
lblgewinner.setText(gewinner);
// Score
lblwins.setText("Gewonnen : " + wins);
lblloses.setText("Verloren : " + loses);
lblscore.setText("Punktestand : " + score);
}
});//ende actionlistener
button_papier.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
game game = new game();
// Player nimmt Schere (3)
int playerchoose = 3;
// Zug des PCs ermitteln
int pcchoose = (int)((Math.random()) * 3 + 1);
// Zahl in Stein,Schere oder Papier wandeln
String ausgabe_player = game.wahl(playerchoose) ;
String ausgabe_pc = game.wahl(pcchoose);
// ausgewählte anzeigen
lblchoosen.setText(ausgabe_player);
lblpcchoosen.setText(ausgabe_pc);
// Gewinner ermitteln
String gewinner = game.prüfe(playerchoose, pcchoose);
lblgewinner.setText(gewinner);
// Score
lblwins.setText("Gewonnen : " + wins);
lblloses.setText("Verloren : " + loses);
lblscore.setText("Punktestand : " + score);
}
});//ende actionlistener
}//ende initwindow
}//ende class gui
game.java
Java:
import java.awt.Color;
public class game {
public String wahl(int a) {
String ausgabe = null;
// 1 -> Stein
if (a == 1) {
ausgabe = "Stein";
}
// 2 -> Schere
if (a == 2) {
ausgabe = "Schere";
}
// 3 -> Papier
if (a == 3) {
ausgabe = "Papier";
}
return ausgabe;
}// ende methode
public String prüfe(int a, int b) {
String ausgabe = null;
if(a == 1 & b == 1) {
ausgabe = "Unentschieden!";
tester.lblgewinner.setForeground(new Color(0,0,0));
tester.score = tester.score + 2;
}
if(a == 1 & b == 2) {
ausgabe = "Du gewinnst!";
tester.lblgewinner.setForeground(new Color(0,255,0));
tester.wins++;
tester.score = tester.score + 10;
}
if(a == 1 & b == 3) {
ausgabe = "Du verlierst!";
tester.lblgewinner.setForeground(new Color(255,0,0));
tester.loses++;
tester.score = tester.score -8;
}
if(a == 2 & b == 1) {
ausgabe = "Du verlierst!";
tester.lblgewinner.setForeground(new Color(255,0,0));
tester.loses++;
tester.score = tester.score -8;
}
if(a == 2 & b == 3) {
ausgabe = "Du gewinnst!";
tester.lblgewinner.setForeground(new Color(0,255,0));
tester.wins++;
tester.score = tester.score + 10;
}
if(a == 2 & b == 2) {
ausgabe = "Unentschieden!";
tester.lblgewinner.setForeground(new Color(0,0,0));
tester.score = tester.score + 2;
}
if(a == 3 & b == 1) {
ausgabe = "Du gewinnst!";
tester.lblgewinner.setForeground(new Color(0,255,0));
tester.wins++;
tester.score = tester.score + 10;
}
if(a == 3 & b == 2) {
ausgabe = "Du verlierst!";
tester.lblgewinner.setForeground(new Color(255,0,0));
tester.loses++;
tester.score = tester.score - 8;
}
if(a == 3 & b == 3) {
ausgabe = "Unentschieden!";
tester.lblgewinner.setForeground(new Color(0,0,0));
tester.score = tester.score + 2;
}
return ausgabe;
}// ende methode
}// ende class
Was sollte ich am besten anders machen?
Besten Dank!
lg ehlr