4gewinnt oberfläche

Status
Nicht offen für weitere Antworten.
M

mk

Gast
hab mein programmcode vom spiel 4 gewinnt jetzt fertig.
mein spielfeld besteht aber z.Z. nur aus nullen, einsen und zweien....

kann mir einer von euch sagen wie ich diese variablen nun durch grafische spielsteine ersetzten kann?

also eigentlich mein ganzes spielfeld? ^^
ich hoffe ihr habt verstanden wo mein problem liegt und könnt mir helfen.

mfg mk
 
M

mk

Gast
hab leider keine zeit das ganz durchzuarbeiten. mein prog muss morgen fertig sein.

trotzdem danke
 

mic_checker

Top Contributor
dann such dir doch eigene Icons aus, also welche für Spielstein gesetzt für dich, für Computer etc. pp. da du ja das ganze über Labels umsetzt.

Ansonsten hättest du das ganze wohl etwas früher posten können ;) Kannst ja trotzdem mal deinen neuen Code posten.
 
M

mk

Gast
du meinst ich soll meine spielsteine nicht mit java zeichnen lassen sondern schon vorgefertigte nur einfügen?

wenn ja... wie mach ich das? :>
 

Wildcard

Top Contributor
Du kannst zb ImageIcons benutzen und die auf Labels setzen.
Wenn du aber keine Ahnung von GUI programmierung hast wirst du das bis morgen nicht schaffen...
 

Dreezard

Bekanntes Mitglied
Du nimmst vorgefertigte Spielsteine die du mit Java zeichnest ^^
Auf ein JComponent (würd ich empfehlen).
Wenn du vorher noch nie eine GUI geschrieben hast... wirds schwer.
Zeig uns doch mal wie das Programm aussieht, sprich Quelltext
 
M

mk

Gast
Code:
import java.awt.*;
import java.awt.event.*;

public class test extends Frame {
  // Anfang Variablen
  static int j=0,i=0,z1=0,z2=0,x=0,g=0,s=1,r=1,u1=0,u2=0,u3=0,u4=0,u5=0,u6=0,u7=0,u8=0;
  static int[][] a = new int[8][6];
  private Button stop = new Button("Spiel beenden :(");
  private Panel pa = new Panel();
  private Label l1 = new Label();
  static Label[][] labelFeld = new Label[8][6];
  private Panel spielfeld = new Panel();


  private Button bu1 = new Button();
  private Button bu2 = new Button();
  private Button bu3 = new Button();
  private Button bu4 = new Button();
  private Button bu5 = new Button();
  private Button bu6 = new Button();
  private Button bu7 = new Button();
  private Button bu8 = new Button();

// Ende Variablen

 //--------------------- SPIELER  CHECKS  --------------------------------- //

   // Feldcheck
   
   public  void feldcheck(  ) {
    if(a[j][i]==1){

         z1++;
         if (z1==4) {
            g=1;
         }

       }
       else {
           z1=0;

        }

       if (a[j][i]==2){

         z2++;
         if (z2==4) {
            g=2;
         }

       }
       else {
           z2=0;

        }
   }

 public  void check(  ) {

//check nach oben

   for(j=0;j<8;j++){

     for (i=0;i<6;i++){
      feldcheck();
        if(i==5){
           z1=0;
           z2=0;
         }
      }
    }

 // Check nach rechts!!!!!
       for(i=0;i<6;i++) {


         for (j=0;j<8;j++){
         feldcheck();
         if(j==7){
           z1=0;
           z2=0;
         }
        }
     }
 
 // Check nach rechtsoben !!!!!

    for (i=0;i<3;i++){

      for (j=0;j<5;j++){
      
    
       for (x=0;x<6;x++){
        i=i+x;
        j=j+x;

        if (i>5) {
         i=5;

        }
        if (j>7) {
         j=7;

        }

          feldcheck();

       }

      }
    }

  //Ende check

  // Check nach rechtsunten 

    for(i=5;i>=0;i--){

      for(j=0;j<5;j++){

        for(x=0;x<6;x++){
        i=i-x;
        j=j+x;
          if (i<0) {
         i=0;
         x=10;
         z1=0;
         z2=0;

         }
         if (j>7) {
         j=7;
         x=10;
         z1=0;
         z2=0;

         }

         feldcheck();
        }

       }

     }

 }
 //Ende check


   // ----------------------------Ende checks ------------------------------//

  public void spaltefuellen(  ) {
     for (i=0;i<6;i++) {
        if (a[j][i]==0){
         a[j][i]=s;
         i=8;
        }
      }

   }
   
  public  void feldschreiben(  ) {
    spielfeld.setLayout(new GridLayout(7,8,10,10));

       for (i=5;i>=0;i--){
          for(j=0;j<8;j++){

          labelFeld[j][i].setAlignment(Label.CENTER);
          labelFeld[j][i].setText(String.valueOf(a[j][i]));
          spielfeld.add(labelFeld[j][i]);


          }
       }
          spielfeld.add(bu1);
          spielfeld.add(bu2);
          spielfeld.add(bu3);
          spielfeld.add(bu4);
          spielfeld.add(bu5);
          spielfeld.add(bu6);
          spielfeld.add(bu7);
          spielfeld.add(bu8);

          add(spielfeld);

  }

  public test(final String title) {
    // Frame-Initialisierung
    super(title);
    addWindowListener(new WindowAdapter() {
      public void windowClosing(final WindowEvent evt) { System.exit(0); } });
    final int frameWidth = 600;
    final int frameHeight = 400;
    setSize(frameWidth, frameHeight);
    setLayout(new BorderLayout());

    // Anfang Komponenten

    
    l1.setText("Let's play !!! 4 Gewinnt !!!");
    l1.setBackground(Color.orange);
    l1.setAlignment(Label.CENTER);
    add(BorderLayout.NORTH, l1);


      for (i=5;i>=0;i--){
        for(j=0;j<8;j++){


         labelFeld[j][i] = new Label();

        }
     }
     feldschreiben();

    
    stop.addActionListener(new ActionListener() {
    public void actionPerformed(final ActionEvent evt) {
    stopActionPerformed(evt); } });

    pa.add(stop);

        pa.setBackground(Color.red);
        add(BorderLayout.SOUTH,pa);


     bu1.setLabel("go !");
     bu2.setLabel("go !");
     bu3.setLabel("go !");
     bu4.setLabel("go !");
     bu5.setLabel("go !");
     bu6.setLabel("go !");
     bu7.setLabel("go !");
     bu8.setLabel("go !");

     
    bu1.addActionListener(new ActionListener() {
      public void actionPerformed(final ActionEvent evt) {
      bu1ActionPerformed(evt); } });
        


    bu2.addActionListener(new ActionListener() {
      public void actionPerformed(final ActionEvent evt) {
        bu2ActionPerformed(evt); } });


    bu3.addActionListener(new ActionListener() {
      public void actionPerformed(final ActionEvent evt) {
        bu3ActionPerformed(evt); } });



    bu4.addActionListener(new ActionListener() {
      public void actionPerformed(final ActionEvent evt) {
        bu4ActionPerformed(evt); } });


    bu5.addActionListener(new ActionListener() {
      public void actionPerformed(final ActionEvent evt) {
        bu5ActionPerformed(evt); } });


    bu6.addActionListener(new ActionListener() {
      public void actionPerformed(final ActionEvent evt) {
        bu6ActionPerformed(evt); } });

    bu7.addActionListener(new ActionListener() {
      public void actionPerformed(final ActionEvent evt) {
        bu7ActionPerformed(evt); } });



    bu8.addActionListener(new ActionListener() {
      public void actionPerformed(final ActionEvent evt) {
        bu8ActionPerformed(evt); } });


// Ende Komponenten

    setVisible(true);
  }

  // Anfang Ereignisprozeduren

  public void stopActionPerformed(final ActionEvent evt) {
   System.exit(0);
  }

  public void bu1ActionPerformed(final ActionEvent evt) {
   if(g!=0){
      bu1.setEnabled(false);
   }
   else
   {

      if(u1<6) {

           j=0;
          spaltefuellen();
          feldschreiben();
           check();

        if(g!=0) {
        l1.setText("Spieler " + g + " hat gewonnen !!!");

        }

          s=s+r;
          r=r*-1;
      }
        u1++;
    }

  }
  public void bu2ActionPerformed(final ActionEvent evt) {
   if(g!=0){
      bu2.setEnabled(false);
   }
   else{



       if(u2<6){

          j=1;
         spaltefuellen();
         feldschreiben();
         check();

        if(g!=0) {
          l1.setText("Spieler " + g + " hat gewonnen !!!");

        }

        s=s+r;
         r=r*-1;
       }
           u2++;
    }
  }
  public void bu3ActionPerformed(final ActionEvent evt) {
    if(g!=0){
      bu3.setEnabled(false);
   }
   else{
       if(u3<6){

            j=2;
        spaltefuellen();
        feldschreiben();
        check();

         if(g!=0) {
         l1.setText("Spieler " + g + " hat gewonnen !!!");

         }

           s=s+r;
          r=r*-1;
       }
     u3++;
   }
  }
  public void bu4ActionPerformed(final ActionEvent evt) {
   if(g!=0){
      bu4.setEnabled(false);
   }
   else{
        if(u4<6){


           j=3;
           spaltefuellen();
           feldschreiben();
           check();

               if(g!=0) {
                 l1.setText("Spieler " + g + " hat gewonnen !!!");

                }

             s=s+r;
                r=r*-1;
        }
          u4++;
    }

  }
  public void bu5ActionPerformed(final ActionEvent evt) {
   if(g!=0){
      bu5.setEnabled(false);
   }
   else{


          if(u5<6){
            j=4;
          spaltefuellen();
           feldschreiben();
            check();

           if(g!=0) {
            l1.setText("Spieler " + g + " hat gewonnen !!!");


           }

             s=s+r;
            r=r*-1;
         }
          u5++;
    }
  }
    public void bu6ActionPerformed(final ActionEvent evt) {

     if(g!=0){
      bu6.setEnabled(false);
     }
   else{

        if(u8<6){
              j=5;
           spaltefuellen();
           feldschreiben();
           check();

             if(g!=0) {
              l1.setText("Spieler " + g + " hat gewonnen !!!");

             }

                s=s+r;
               r=r*-1;
        }
        u8++;
    }
  }
  public void bu7ActionPerformed(final ActionEvent evt) {
     if(g!=0){
      bu7.setEnabled(false);
   }
   else{

         if(u6<6){
            j=6;
         spaltefuellen();
         feldschreiben();
         check();

             if(g!=0) {
              l1.setText("Spieler " + g + " hat gewonnen !!!");

             }

          s=s+r;
         r=r*-1;
         }
         u6++;
     }
  }
  public void bu8ActionPerformed(final ActionEvent evt) {

    if(g!=0){
      bu8.setEnabled(false);
   }
   else{


             if(u7<6){
                    j=7;
                 spaltefuellen();
                 feldschreiben();
                 check();

                 if(g!=0) {
                  l1.setText("Spieler " + g + " hat gewonnen !!!");

                 }

              s=s+r;
             r=r*-1;
             }
             u7++;
    }
  }

// Ende Ereignisprozeduren

  public static void main(final String[] args) {
    new test("test");
  }
}


der check nach rechtsoben und rechtsunten klappt noch nicht..........!"!"!§!41uoragh
find aber den fehler nicht.
vllt. kann einer von euch mir weiterhelfen.

und das spielfeld würd ich gern noch grafisch darstellen, wie schon gesagt.
ich hab kein GUI oder wie das heist programmiert.. kann ichs dann vergessen? :'(
 

Dreezard

Bekanntes Mitglied
Ich guck mir das ma an...
Aber nur mal so nebenbei: Das IST eine GUI.
GUI = Graphical User Interface
 

mic_checker

Top Contributor
wie gesagt, du könntest JLabel verwenden und diesem ein entsprechendes Icon übergeben, allerdings müsstest du dann auf Swing umstellen.

was für weitere probleme gibt es mit dem programm?
 
M

mk

Gast
wie gesagt noch die queren checks nach rechts oben und rechts unten.

das und die grafik... dann wäre es spielbar.. denk ich
 
M

mk

Gast
ok die checks nach rechts oben und rechts unten hab ich zum laufen gebracht....
wenn mir jetzt noch einer von euch anfängergerecht erklären könnte, wie ichs grafisch darstell... wäre das schon richtig geil.

mfg mk
 

mic_checker

Top Contributor
Dann poste wenigstens deine lösung , falls jemand das gleiche Problem hat....

wie gesagt, dem Konstruktor von JLabel kannst du ein Icon übergeben, guck doch einfach in die API.
 
M

mk

Gast
Code:
 // Check nach rechtsoben 

    for (i2=0;i2<3;i2++){

      for (j2=0;j2<5;j2++){
      
       i=i2;
       j=j2;
       for (x=0;x<6;x++){
        i=i2+x;
        j=j2+x;

        if (i<6) {
          if (j<8){

              feldcheck();
          }
        }
          else
          {
            z1=0;
            z2=0;
          }
       }

      }
    }

es wurden anfangs einfach die falschen felder gecheckt....

und zu den jlabels und icon zuweisen und so... tut mir ja leid wenn ich nerve.. aber vor dir sitzt ein blutiger anfänger....
ich schau mal im api nach aber das is so.. voll... o_0
 
M

mk

Gast
also das spiel ansich ist jetzt ja ok. funktioniert so wie's soll.

gibts nicht irgendein befehl oder so, das wenn die variabble

a[j] = 0 ist, das dann der spielstein 1 angezeigt wird,

bei
a[j]=1 , der 2. stielstein
und bei
a[j]=2 , der 3. spielstein?

ich mein die spielsteine kann ich ja als jpg oder so in nem paintprogramm oder so erstellen...

das muss doch irgendwie gehn oder nicht?
 
M

mk

Gast
was immernoch einige fragen offen lässt. (für mich zumindest ^^)

1. soll ich mein labelfeld also einfach in ein Jlabelfeld umändern?
bedeutet bei der deklaration und füllung einfach nen J davor?
oder muss ich ein neues erstellen? und wenn ja wie füg ich das hinzu?

2. wie sag ich ihm das er alle variablen die 0 (1,2) sind durch die bestimmen icons ersetzt?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
H 4gewinnt Allgemeine Java-Themen 5
Londi Metro UI Oberfläche Allgemeine Java-Themen 1
M interaktive grafische Oberfläche - wie mach ich das am Besten Allgemeine Java-Themen 4
M Wie Java Programm mit grafischen Oberfläche versehen Allgemeine Java-Themen 2
D Grafische Oberfläche Allgemeine Java-Themen 3
B Execption auf Oberfläche werfen, try-catch-Block Allgemeine Java-Themen 6
M Applet Oberfläche aktualisieren Allgemeine Java-Themen 5
S Design Oberfläche Allgemeine Java-Themen 2
A Ereignisse ohne Oberfläche Allgemeine Java-Themen 3
GilbertGrape Jetty-Dienst startet keine Programme mit Oberfläche Allgemeine Java-Themen 2
E einfache grafische Oberfläche wie in MS C#? Allgemeine Java-Themen 6
S Random funktion in einer Grafischen Oberfläche Allgemeine Java-Themen 10
V Welche Oberfläche empfehlt ihr mir? Allgemeine Java-Themen 19
O Oberfläche und "richtige" Programmierung Allgemeine Java-Themen 8
D SAP Oberfläche Allgemeine Java-Themen 11
O "Bonbon-Oberfläche" Allgemeine Java-Themen 3
J Aktualisieren einer Oberfläche Allgemeine Java-Themen 2
S grafische Oberfläche-> auslagern innerer klassen Allgemeine Java-Themen 5
N Graphische Oberfläche dynamisch erweitern möglich? Allgemeine Java-Themen 4
B Grafische Oberfläche - Welche Komponenten? Allgemeine Java-Themen 5
thE_29 Java Applikation ohne grafische Oberfläche Allgemeine Java-Themen 24

Ähnliche Java Themen

Neue Themen


Oben