/**
*@author Widy,Schlachter
*@version 1.0a
*/
import javax.swing.*;
import java.applet.*;
import java.awt.*;
import javax.swing.event.*;
import java.awt.event.*;
import javax.swing.JEditorPane;
import java.util.Random;
public class JLayout extends JApplet implements ActionListener{
int semester=0;
private JButton jahr = new JButton("Schritt");
private JButton einzel = new JButton("Semester");
private JButton alles = new JButton("Alles");
//private ButtonGroup darstellung = new ButtonGroup();
//private ButtonGroup anzeige = new ButtonGroup();
//private ButtonGroup sitzplan = new ButtonGroup();
private JPanel norden1 = new JPanel();
private JPanel norden = new JPanel();
private JPanel sueden = new JPanel();
private JPanel westen = new JPanel();
private JPanel osten = new JPanel();
private JPanel mitte = new JPanel();
JToggleButton button1;
int reihe=0;
int sitzePR=0;
JSchueler schueler[][];
String[] nameWeiblich = {"Anna","Berta","Helga","Stefanie","Marianne","Hildegard","Antonia","Monika","Sarah","Lena","Maggie",
"Anna","Berta","Helga","Stefanie","Marianne","Hildegard","Antonia","Monika","Sarah","Lena","Maggie"};
String[] nameMaennlich = {"Hermann","Anton","Willi","Hannes","Peppi","Jürgen","Wolfgang","Andreas","Fabian","Felix","Franz",
"Georg","Mario","Peter","Simon","Benjamin","Johannes","Kevin","Karl","Gerald","Jürgen","Wolfgang",
"Hermann","Anton","Willi","Hannes","Peppi","Jürgen","Wolfgang","Andreas","Fabian","Felix","Franz",
"Georg","Mario","Peter","Simon","Benjamin","Johannes","Kevin","Karl","Gerald","Jürgen","Wolfgang"};
Container c=getContentPane();
private JLabel reiheL;
private JLabel anzahlJeReiheL;
private JTextField reiheT;
private JTextField anzahlJeReiheT;
private JPanel panel1;
public void init(){
c.setLayout(new BorderLayout());
setSize(1200,600);
//setExtendedState(JFrame.MAXIMIZED_BOTH);
button1 = new JToggleButton("OK");
reiheL = new JLabel("Reihenanzahl eingeben: ");
anzahlJeReiheL = new JLabel("Anzahl der Schüler pro Reihe: ");
reiheT = new JTextField();
anzahlJeReiheT = new JTextField();
panel1 = new JPanel();
panel1.setLayout(new GridLayout(10,10));
panel1.add(reiheL);
panel1.add(anzahlJeReiheL);
panel1.add(reiheT);
panel1.add(anzahlJeReiheT);
c.add(panel1,BorderLayout.CENTER);
c.add(button1,BorderLayout.EAST);
button1.addActionListener(this);
// listens to Buttons
jahr.addActionListener(this);
alles.addActionListener(this);
einzel.addActionListener(this);
}
public void erstelleKlasse(){
schueler = new JSchueler[reihe][sitzePR];
for(int i=0; i<reihe; i++)
for(int j=0; j<sitzePR; j++)
schueler[i][j] = new JSchueler();
for(int i=0; i<reihe; i++)
for(int j=0; j<sitzePR; j++){
do{
schueler[i][j].erzeugeEigenschaften();
Random r = new Random();
int a;
if(schueler[i][j].getGeschlecht() == 1){
a = r.nextInt(nameMaennlich.length);
if(nameMaennlich[a] == null){}
schueler[i][j].setName(nameMaennlich[a]);
nameMaennlich[a] = null;
}
else{
a = r.nextInt(nameWeiblich.length);
if(nameWeiblich[a] == null){}
schueler[i][j].setName(nameWeiblich[a]);
nameWeiblich[a] = null;
}
}while(schueler[i][j].getName() == null);
}
}
public void start(){}
public void paint(){}
public void berechneSchritt(){
double a;
// do{ i++;
System.out.println("BLA");
for(int i=0; i<reihe; i++)
for(int j=0; j<sitzePR; j++){
if(schueler[i][j]==null){}
else{
double zaehler=0;
zaehler += schueler[i][j].getVerhalten()+schueler[i][j].getSchummeln()+schueler[i][j].getMitarbeit()+
schueler[i][j].getFleiss()+schueler[i][j].getIntelligenz();
zaehler = zaehler/10;
System.out.println(zaehler);
if(zaehler>1.5)
schueler[i][j].setNoten(schueler[i][j].getNoten()+2*zaehler);
else
schueler[i][j].setNoten(schueler[i][j].getNoten()+zaehler/2);
// schueler[i][j].setNoten(zaehler);
if(schueler[i][j].getNoten()<=1.6)
schueler[i][j].setNoten(1);
if(schueler[i][j].getNoten()<=2.6)
schueler[i][j].setNoten(2);
if(schueler[i][j].getNoten()<=3.6)
schueler[i][j].setNoten(3);
if(schueler[i][j].getNoten()<=4.2)
schueler[i][j].setNoten(4);
else
schueler[i][j].setNoten(5);
// if(schueler[i][j].getNoten()<1.1)
// schueler[i][j].setNoten(1);
// if(schueler[i][j].getNoten()>4.9)
// schueler[i][j].setNoten(5);
}
}
//System.out.println(schueler[j][k].getNoten());
// try{Thread.currentThread().sleep(5000);
// }catch(InterruptedException e){}
System.out.println("fertig");
// }while(i<5);
}
public void berechneSemester(){
boolean rand=false;
//links hinten
for(int i=0; i<reihe; i++)
for(int j=0; j<sitzePR; j++){
System.out.println("blabla...");
if(i==0||j==0){rand=true;}
if(rand==true){rand=false;}
else{
if(schueler[i][j]==null||schueler[i-1][j-1]==null){}
else{
if(schueler[i-1][j-1].getVerhalten()<3)
schueler[i][j].setVerhalten(schueler[i][j].getVerhalten()+0.1);
else
schueler[i][j].setVerhalten(schueler[i][j].getVerhalten()-0.1);
if(schueler[i-1][j-1].getSchummeln()<3)
schueler[i][j].setSchummeln(schueler[i][j].getSchummeln()+0.1);
else
schueler[i][j].setSchummeln(schueler[i][j].getSchummeln()-0.1);
if(schueler[i-1][j-1].getMitarbeit()<3)
schueler[i][j].setMitarbeit(schueler[i][j].getMitarbeit()+0.1);
else
schueler[i][j].setMitarbeit(schueler[i][j].getMitarbeit()-0.1);
if(schueler[i-1][j-1].getFleiss()<3)
schueler[i][j].setFleiss(schueler[i][j].getFleiss()+0.1);
else
schueler[i][j].setFleiss(schueler[i][j].getFleiss()-0.1);
if(schueler[i-1][j-1].getIntelligenz()<3)
schueler[i][j].setIntelligenz(schueler[i][j].getIntelligenz()+0.1);
else
schueler[i][j].setIntelligenz(schueler[i][j].getIntelligenz()-0.1);
}
}
}
//hinten
for(int i=0; i<reihe; i++)
for(int j=0; j<sitzePR; j++){
System.out.println("blabla...");
if(i==0){rand=true;}
if(rand==true){rand=false;}
else{
if(schueler[i][j]==null||schueler[i-1][j]==null){}
else{
if(schueler[i-1][j].getVerhalten()<3)
schueler[i][j].setVerhalten(schueler[i][j].getVerhalten()+0.1);
else
schueler[i][j].setVerhalten(schueler[i][j].getVerhalten()-0.1);
if(schueler[i-1][j].getSchummeln()<3)
schueler[i][j].setSchummeln(schueler[i][j].getSchummeln()+0.1);
else
schueler[i][j].setSchummeln(schueler[i][j].getSchummeln()-0.1);
if(schueler[i-1][j].getMitarbeit()<3)
schueler[i][j].setMitarbeit(schueler[i][j].getMitarbeit()+0.1);
else
schueler[i][j].setMitarbeit(schueler[i][j].getMitarbeit()-0.1);
if(schueler[i-1][j].getFleiss()<3)
schueler[i][j].setFleiss(schueler[i][j].getFleiss()+0.1);
else
schueler[i][j].setFleiss(schueler[i][j].getFleiss()-0.1);
if(schueler[i-1][j].getIntelligenz()<3)
schueler[i][j].setIntelligenz(schueler[i][j].getIntelligenz()+0.1);
else
schueler[i][j].setIntelligenz(schueler[i][j].getIntelligenz()-0.1);
}
}
}
//rechts hinten
for(int i=0; i<reihe; i++)
for(int j=0; j<sitzePR; j++){
System.out.println("blabla...");
if(i==0||j==sitzePR-1){rand=true;}
if(rand==true){rand=false;}
else{
if(schueler[i][j]==null||schueler[i-1][j+1]==null){}
else{
if(schueler[i-1][j+1].getVerhalten()<3)
schueler[i][j].setVerhalten(schueler[i][j].getVerhalten()+0.1);
else
schueler[i][j].setVerhalten(schueler[i][j].getVerhalten()-0.1);
if(schueler[i-1][j+1].getSchummeln()<3)
schueler[i][j].setSchummeln(schueler[i][j].getSchummeln()+0.1);
else
schueler[i][j].setSchummeln(schueler[i][j].getSchummeln()-0.1);
if(schueler[i-1][j+1].getMitarbeit()<3)
schueler[i][j].setMitarbeit(schueler[i][j].getMitarbeit()+0.1);
else
schueler[i][j].setMitarbeit(schueler[i][j].getMitarbeit()-0.1);
if(schueler[i-1][j+1].getFleiss()<3)
schueler[i][j].setFleiss(schueler[i][j].getFleiss()+0.1);
else
schueler[i][j].setFleiss(schueler[i][j].getFleiss()-0.1);
if(schueler[i-1][j+1].getIntelligenz()<3)
schueler[i][j].setIntelligenz(schueler[i][j].getIntelligenz()+0.1);
else
schueler[i][j].setIntelligenz(schueler[i][j].getIntelligenz()-0.1);
}
}
}
//rechts
for(int i=0; i<reihe; i++)
for(int j=0; j<sitzePR; j++){
System.out.println("blabla...");
if(j==sitzePR-1){rand=true;}
if(rand==true){rand=false;}
else{
if(schueler[i][j]==null||schueler[i][j+1]==null){}
else{
if(schueler[i][j+1].getVerhalten()<3)
schueler[i][j].setVerhalten(schueler[i][j].getVerhalten()+0.1);
else
schueler[i][j].setVerhalten(schueler[i][j].getVerhalten()-0.1);
if(schueler[i][j+1].getSchummeln()<3)
schueler[i][j].setSchummeln(schueler[i][j].getSchummeln()+0.1);
else
schueler[i][j].setSchummeln(schueler[i][j].getSchummeln()-0.1);
if(schueler[i][j+1].getMitarbeit()<3)
schueler[i][j].setMitarbeit(schueler[i][j].getMitarbeit()+0.1);
else
schueler[i][j].setMitarbeit(schueler[i][j].getMitarbeit()-0.1);
if(schueler[i][j+1].getFleiss()<3)
schueler[i][j].setFleiss(schueler[i][j].getFleiss()+0.1);
else
schueler[i][j].setFleiss(schueler[i][j].getFleiss()-0.1);
if(schueler[i][j+1].getIntelligenz()<3)
schueler[i][j].setIntelligenz(schueler[i][j].getIntelligenz()+0.1);
else
schueler[i][j].setIntelligenz(schueler[i][j].getIntelligenz()-0.1);
}
}
}
//rechts vorne
for(int i=0; i<reihe; i++)
for(int j=0; j<sitzePR; j++){
System.out.println("blabla...");
if(i==reihe-1||j==sitzePR-1){rand=true;}
if(rand==true){rand=false;}
else{
if(schueler[i][j]==null||schueler[i+1][j+1]==null){}
else{
if(schueler[i+1][j+1].getVerhalten()<3)
schueler[i][j].setVerhalten(schueler[i][j].getVerhalten()+0.1);
else
schueler[i][j].setVerhalten(schueler[i][j].getVerhalten()-0.1);
if(schueler[i+1][j+1].getSchummeln()<3)
schueler[i][j].setSchummeln(schueler[i][j].getSchummeln()+0.1);
else
schueler[i][j].setSchummeln(schueler[i][j].getSchummeln()-0.1);
if(schueler[i+1][j+1].getMitarbeit()<3)
schueler[i][j].setMitarbeit(schueler[i][j].getMitarbeit()+0.1);
else
schueler[i][j].setMitarbeit(schueler[i][j].getMitarbeit()-0.1);
if(schueler[i+1][j+1].getFleiss()<3)
schueler[i][j].setFleiss(schueler[i][j].getFleiss()+0.1);
else
schueler[i][j].setFleiss(schueler[i][j].getFleiss()-0.1);
if(schueler[i+1][j+1].getIntelligenz()<3)
schueler[i][j].setIntelligenz(schueler[i][j].getIntelligenz()+0.1);
else
schueler[i][j].setIntelligenz(schueler[i][j].getIntelligenz()-0.1);
}
}
}
//vorne
for(int i=0; i<reihe; i++)
for(int j=0; j<sitzePR; j++){
System.out.println("blabla...");
if(i==reihe-1==true){rand=true;}
if(rand==true){rand=false;}
else{
if(schueler[i][j]==null||schueler[i+1][j]==null){}
else{
if(schueler[i+1][j].getVerhalten()<3)
schueler[i][j].setVerhalten(schueler[i][j].getVerhalten()+0.1);
else
schueler[i][j].setVerhalten(schueler[i][j].getVerhalten()-0.1);
if(schueler[i+1][j].getSchummeln()<3)
schueler[i][j].setSchummeln(schueler[i][j].getSchummeln()+0.1);
else
schueler[i][j].setSchummeln(schueler[i][j].getSchummeln()-0.1);
if(schueler[i+1][j].getMitarbeit()<3)
schueler[i][j].setMitarbeit(schueler[i][j].getMitarbeit()+0.1);
else
schueler[i][j].setMitarbeit(schueler[i][j].getMitarbeit()-0.1);
if(schueler[i+1][j].getFleiss()<3)
schueler[i][j].setFleiss(schueler[i][j].getFleiss()+0.1);
else
schueler[i][j].setFleiss(schueler[i][j].getFleiss()-0.1);
if(schueler[i+1][j].getIntelligenz()<3)
schueler[i][j].setIntelligenz(schueler[i][j].getIntelligenz()+0.1);
else
schueler[i][j].setIntelligenz(schueler[i][j].getIntelligenz()-0.1);
}
}
}
//links vorne
for(int i=0; i<reihe; i++)
for(int j=0; j<sitzePR; j++){
System.out.println("blabla...");
if(i==reihe-1||j==0){rand=true;}
if(rand==true){rand=false;}
else{
if(schueler[i][j]==null||schueler[i+1][j-1]==null){}
else{
if(schueler[i+1][j-1].getVerhalten()<3)
schueler[i][j].setVerhalten(schueler[i][j].getVerhalten()+0.1);
else
schueler[i][j].setVerhalten(schueler[i][j].getVerhalten()-0.1);
if(schueler[i+1][j-1].getSchummeln()<3)
schueler[i][j].setSchummeln(schueler[i][j].getSchummeln()+0.1);
else
schueler[i][j].setSchummeln(schueler[i][j].getSchummeln()-0.1);
if(schueler[i+1][j-1].getMitarbeit()<3)
schueler[i][j].setMitarbeit(schueler[i][j].getMitarbeit()+0.1);
else
schueler[i][j].setMitarbeit(schueler[i][j].getMitarbeit()-0.1);
if(schueler[i+1][j-1].getFleiss()<3)
schueler[i][j].setFleiss(schueler[i][j].getFleiss()+0.1);
else
schueler[i][j].setFleiss(schueler[i][j].getFleiss()-0.1);
if(schueler[i+1][j-1].getIntelligenz()<3)
schueler[i][j].setIntelligenz(schueler[i][j].getIntelligenz()+0.1);
else
schueler[i][j].setIntelligenz(schueler[i][j].getIntelligenz()-0.1);
}
}
}
//links
for(int i=0; i<reihe; i++)
for(int j=0; j<sitzePR; j++){
System.out.println("blabla...");
if(j==0){rand=true;}
if(rand==true){rand=false;}
else{
if(schueler[i][j]==null||schueler[i][j-1]==null){}
else{
if(schueler[i][j-1].getVerhalten()<3)
schueler[i][j].setVerhalten(schueler[i][j].getVerhalten()+0.1);
else
schueler[i][j].setVerhalten(schueler[i][j].getVerhalten()-0.1);
if(schueler[i][j-1].getSchummeln()<3)
schueler[i][j].setSchummeln(schueler[i][j].getSchummeln()+0.1);
else
schueler[i][j].setSchummeln(schueler[i][j].getSchummeln()-0.1);
if(schueler[i][j-1].getMitarbeit()<3)
schueler[i][j].setMitarbeit(schueler[i][j].getMitarbeit()+0.1);
else
schueler[i][j].setMitarbeit(schueler[i][j].getMitarbeit()-0.1);
if(schueler[i][j-1].getFleiss()<3)
schueler[i][j].setFleiss(schueler[i][j].getFleiss()+0.1);
else
schueler[i][j].setFleiss(schueler[i][j].getFleiss()-0.1);
if(schueler[i][j-1].getIntelligenz()<3)
schueler[i][j].setIntelligenz(schueler[i][j].getIntelligenz()+0.1);
else
schueler[i][j].setIntelligenz(schueler[i][j].getIntelligenz()-0.1);
}
}
}
//Extreme vermeiden
for(int i=0;i<reihe;i++)
for(int j=0;j<sitzePR; j++){
if(schueler[i][j]==null){}
else{
if(schueler[i][j].getVerhalten()<1.1)
schueler[i][j].setVerhalten(1);
if(schueler[i][j].getVerhalten()>4.9)
schueler[i][j].setVerhalten(5);
if(schueler[i][j].getSchummeln()<1.1)
schueler[i][j].setSchummeln(1);
if(schueler[i][j].getSchummeln()>4.9)
schueler[i][j].setSchummeln(5);
if(schueler[i][j].getMitarbeit()<1.1)
schueler[i][j].setMitarbeit(1);
if(schueler[i][j].getMitarbeit()>4.9)
schueler[i][j].setMitarbeit(5);
if(schueler[i][j].getFleiss()<1.1)
schueler[i][j].setFleiss(1);
if(schueler[i][j].getFleiss()>4.9)
schueler[i][j].setFleiss(5);
if(schueler[i][j].getIntelligenz()<1.1)
schueler[i][j].setIntelligenz(1);
if(schueler[i][j].getIntelligenz()>4.9)
schueler[i][j].setIntelligenz(5);
}
}
}
public void actionPerformed(ActionEvent e){
if(e.getSource()==jahr){
berechneSchritt();
aktualisiereSpiel();
}
if(e.getSource() == button1){
try{
reihe=Integer.parseInt(reiheT.getText());
sitzePR=Integer.parseInt(anzahlJeReiheT.getText());
if(reihe*sitzePR>30){
JOptionPane.showMessageDialog(c,"Höchstanzahl 30 Schüler");
repaint();
}
else{
remove(panel1);
remove(button1);
erstelleKlasse();
setAnfang();
aktualisiereSpiel();
}
}catch(NumberFormatException e1){}
}
for(int i=0; i<reihe; i++)
for(int j=0; j<sitzePR; j++)
if(e.getSource() == schueler[i][j].Schueler())
System.out.println("juhu");
if(e.getSource() == einzel){
semester=semester+1;
berechneSemester();
aktualisiereSpiel();
JOptionPane.showMessageDialog(c,semester+".tes Semester vorbei");
if(semester==2||semester==4||semester==6||semester==8||semester==10){
berechneSchritt();
aktualisiereSpiel();
durchsucheNachNegativenSchueler();
}
}
}//actionPerformed
public double notendurchschnittDerKlasse(){
double zaehler=0;
double anzahl=reihe*sitzePR;
for(int i=0; i<reihe; i++)
for(int j=0; j<sitzePR; j++)
if(schueler[i][j]==null)
anzahl = anzahl-1;
else
zaehler += schueler[i][j].getNoten();
return zaehler/anzahl;
}
public void setAnfang(){
//norden
norden.add(new JLabel(new ImageIcon(getImage(getClass().getResource("Life Game2.gif")))));
// süden
//darstellung.add(alles);
//darstellung.add(einzel);
sueden.setLayout(new FlowLayout(FlowLayout.RIGHT));
sueden.add(jahr);
sueden.add(alles);
sueden.add(einzel);
//East
osten.add(new JLabel(new ImageIcon(getImage(getClass().getResource("Anzeige.gif")))));
//Westen
westen.add(new JLabel(new ImageIcon(getImage(getClass().getResource("lehrer.gif")))));
}
public boolean nachpruefungPositiv(){
Random r = new Random();
int g = r.nextInt(100)+1;
if(g<60)
return true;
else
return false;
}
public void durchsucheNachNegativenSchueler(){
for(int i=0; i<reihe; i++)
for(int j=0; j<sitzePR; j++){
if(schueler[i][j]==null){}
else{
if(schueler[i][j].getNoten()==5){
JLabel negativ = new JLabel("hat eine Negative Note");
JPanel schuelerP = new JPanel();
schuelerP=schueler[i][j].Schueler();
schuelerP.add(negativ);
JOptionPane.showMessageDialog(c,schuelerP);
if(nachpruefungPositiv()==true){
JLabel geschafft = new JLabel("hat die Nachprüfung geschafft");
JPanel schuelerGeschafft = new JPanel();
schuelerGeschafft=schueler[i][j].Schueler();
schuelerGeschafft.add(geschafft);
JOptionPane.showMessageDialog(c,schuelerGeschafft);
}
else{
JLabel durchgefallen = new JLabel("hat die Nachprüfung nicht geschafft");
JPanel schuelerDurchgefallen = new JPanel();
schuelerDurchgefallen=schueler[i][j].Schueler();
schuelerDurchgefallen.add(durchgefallen);
JOptionPane.showMessageDialog(c,schuelerDurchgefallen);
schueler[i][j]=null;
aktualisiereSpiel();
}
}
}
}
}
public void aktualisiereSpiel(){
remove(mitte);
remove(sueden);
remove(osten);
// alles ins Layout
c.setLayout(new BorderLayout(30,30));
c.add(norden, BorderLayout.NORTH);
c.add(sueden, BorderLayout.SOUTH);
c.add(westen, BorderLayout.WEST);
//Osten
osten=aktualisiereAnzeige();
c.add(osten, BorderLayout.EAST);
//Mitte
mitte=aktualisiereSitzplan();
// for(int i=0; i<reihe; i++)
// for(int j=0; j<sitzePR; j++)
// mitte.add(schueler[i][j].Schueler());
c.add(mitte, BorderLayout.CENTER);
validate();
repaint();
}
public JPanel aktualisiereAnzeige(){
JPanel anzeige = new JPanel();
anzeige.setLayout(new GridLayout(2,1));
anzeige.add(new JLabel(new ImageIcon(getImage(getClass().getResource("Anzeige.gif")))));
anzeige.add(new JLabel(""+notendurchschnittDerKlasse()));
return anzeige;
}
public JPanel aktualisiereSitzplan(){
JPanel sitzplan = new JPanel();
sitzplan.setLayout(new GridLayout(reihe,sitzePR));
for(int i=0; i<reihe; i++)
for(int j=0; j<sitzePR; j++)
if(schueler[i][j]==null)
sitzplan.add(new JLabel());
else
sitzplan.add(schueler[i][j].Schueler());
return sitzplan;
}
//keine besonderen Aktionen
public void stop(){}
public void versetze(int i, int j, int x, int y){
JSchueler hilf = new JSchueler();
hilf = schueler[i][j];
schueler[i][j] = schueler[x][y];
schueler[x][y] = hilf;
aktualisiereSpiel();
}
}//end class