Automaten Spiel

mmo

Mitglied
Hallo,

muss für Informatik ein Spiel programmieren. Habe ein Automaten Spiel gewählt, welches bei z.b. 4 gleichen paaren (ass) von karten 100 punkte ausgeben soll, jedoch klappt es nicht mit der punkteverteilung, nachdem man den sogenannten automaten gestoppt hat.
das spiel soll bei z.b. jedem paar punkte geben, jedoch je höher der kartenwert desto mehr punkte bei paaren.
heir ist mal das Spiel zum downloaden: File-Upload.net - Karten_Projekt.zip

ich hoffe ihr könnt mir helfen, das spiel fertig zu programmieren, da ich kein plan habe, wie ichs so programmieren könnte, damit es punkte gibt.
danke für die hilfe!
 

Robokopp

Bekanntes Mitglied
Hab mir zwar nicht angeschaut, aber du kannst im Prinzip eine variable Punkte deklarieren,und an der stelle wo die "gewinn-bedingung"erfüllt ist 100 Punkte dazu addieren
 

mmo

Mitglied
hab ich mir auch gedacht, aber es ist viel schwieriger als du denkst. die variable ist das problem.
noch was, wir programmieren die spiele mit dem java-editor, der ist da am ´besten.
 

Robokopp

Bekanntes Mitglied
und was ist da das problem? du kannst der Variable doch Punkte dazuaddieren, die du bspw. mit standartpunkte*punktemodifier oder standartpunkte+modifier festlegst. den modifier kannst du dir aus den kartenwerten generieren.

Ach und vlt nützt es was, wenn du hier den unkompilierten Sourcecode hochlädst. Ich weiß nichts mit class Dateien anzufangen und hab keine Lust mich mit Reverse Engineering zu befassen falls das dafür notwendig ist
 

mmo

Mitglied
Hier die Class-Datei:

Java:
import java.awt.*;

class Karten extends Object implements Runnable {
    Panel leinwand;
    Image[] bilder;

   public Karten(Image[] pictures, Panel show_pan){
       leinwand = show_pan;
       bilder=pictures;
   }

   private boolean stop;

   public void run(){
     pausedavor();
     while (!stop) {
      Graphics bildmalstift;
      Image anzeigebild;
      int anzahl;
      bildmalstift= leinwand.getGraphics();
      anzahl=bilder.length;
        for (int i=0;i<=anzahl-1;i++) {
        anzeigebild= bilder[i];
        bildmalstift.drawImage(anzeigebild,0,0,leinwand.getSize().width,leinwand.getSize().height,null);
        pausenow();

      }
     }


   }
   
   public void anhalten(){
     stop=true;
   }
   
   private void pausedavor(){
     int millisec;
     try {
       millisec= 500;
       Thread.sleep(millisec);
     } catch (InterruptedException e) {}
   }
   
   private void pausenow(){
     int millisec;
     try {
       millisec= 50;
       Thread.sleep(millisec);
     } catch (InterruptedException e) {}
   }
   
}


hier der Code für das Applet:
Java:
import java.awt.*;
import java.awt.event.*;
import java.applet.Applet;

/**
  *
  * Beschreibung
  *
  * @version 1.0 vom 18.04.2012
  * @author
  */

public class Karten_Appl extends Applet {
  //////////////////////////////
  int anzahlbilder=8;
  // Anfang Attribute
  Panel cp = new Panel(null);
  private Panel panLeinwand1 = new Panel(null);
  private Panel panLeinwand2 = new Panel(null);
  private Button playbut1 = new Button();
  private Button clearbut = new Button();
  private Panel panLeinwand3 = new Panel(null);
  private Button butstop1 = new Button();
  private Button butstop2 = new Button();
  private Button butstop3 = new Button();
  
  /////////////////////////////
  
  MediaTracker mein_Mt = new MediaTracker(this);
  MediaTracker dein_Mt = new MediaTracker(this);
  MediaTracker sein_Mt = new MediaTracker(this);
  MediaTracker euer_Mt = new MediaTracker(this);
  Image[] bildFeld1 = new Image[anzahlbilder];   //ARRAY um Bilder aufzunehmen
  Image[] bildFeld2 = new Image[anzahlbilder];
  Image[] bildFeld3 = new Image[anzahlbilder];
  Image[] bildFeld4 = new Image[anzahlbilder];
  
  Thread t1, t2, t3, t4;
  Karten k1,k2, k3, k4;
  
  /////////////////////////////

  private Panel panLeinwand4 = new Panel(null);
  private Button butstop4 = new Button();
  private Button playbut2 = new Button();
  private Button playbut3 = new Button();
  private Button playbut4 = new Button();
  private Button playbut = new Button();

  private Label label5 = new Label();
  private Label label6 = new Label();
  private Label label7 = new Label();
  private TextField tf1 = new TextField();
  private TextField tf2 = new TextField();
  private TextField tfhighscore = new TextField();
  private TextField tfplus = new TextField();
  private Label label8 = new Label();
  private Label label9 = new Label();
  private Button butcheck = new Button();
  // Ende Attribute

  public void init() {
    cp.setBounds(0, 0, 898, 588);
    add(cp);
    // Anfang Komponenten

      /////////////////////////////
     for (int i=0;i<anzahlbilder;i++){
     bildFeld1[i]= this.getImage(this.getDocumentBase(),"decka"+(i)+".jpg");
     bildFeld2[i]= this.getImage(this.getDocumentBase(),"deckb"+(i)+".jpg");
     bildFeld3[i]= this.getImage(this.getDocumentBase(),"deckc"+(i)+".jpg");
     bildFeld4[i]= this.getImage(this.getDocumentBase(),"deckd"+(i)+".jpg");
     mein_Mt.addImage(bildFeld1[i],i);
     dein_Mt.addImage(bildFeld2[i],i);
     sein_Mt.addImage(bildFeld3[i],i);
     euer_Mt.addImage(bildFeld4[i],i);

       try {
           mein_Mt.waitForAll();
           dein_Mt.waitForAll();
           sein_Mt.waitForAll();
           euer_Mt.waitForAll();
       } catch(InterruptedException e) { }
    }  // Ende von for-schleife
    
      /////////////////////////////

    panLeinwand1.setBounds(15, 23, 185, 241);
    cp.add(panLeinwand1);
    panLeinwand2.setBounds(229, 24, 185, 241);
    cp.add(panLeinwand2);
    playbut1.setBounds(54, 279, 105, 33);
    playbut1.setLabel("Spielen!!!");
    playbut1.addActionListener(new ActionListener() { 
      public void actionPerformed(ActionEvent evt) { 
        playbut1_ActionPerformed(evt);
      }
    });
    cp.add(playbut1);
    clearbut.setBounds(375, 388, 179, 25);
    clearbut.setLabel("Spiel neustarten (Clear All)");
    clearbut.addActionListener(new ActionListener() { 
      public void actionPerformed(ActionEvent evt) { 
        clearbut_ActionPerformed(evt);
      }
    });
    cp.add(clearbut);
    panLeinwand3.setBounds(450, 16, 185, 241);
    cp.add(panLeinwand3);
    butstop1.setBounds(56, 323, 105, 33);
    butstop1.setLabel("Stop!");
    butstop1.addActionListener(new ActionListener() { 
      public void actionPerformed(ActionEvent evt) { 
        butstop1_ActionPerformed(evt);
      }
    });
    cp.add(butstop1);
    butstop2.setBounds(243, 323, 121, 33);
    butstop2.setLabel("Stop!");
    butstop2.addActionListener(new ActionListener() { 
      public void actionPerformed(ActionEvent evt) { 
        butstop2_ActionPerformed(evt);
      }
    });
    cp.add(butstop2);
    butstop3.setBounds(478, 320, 121, 33);
    butstop3.setLabel("Stop!");
    butstop3.addActionListener(new ActionListener() { 
      public void actionPerformed(ActionEvent evt) { 
        butstop3_ActionPerformed(evt);
      }
    });
    cp.add(butstop3);
    panLeinwand4.setBounds(679, 10, 185, 241);
    cp.add(panLeinwand4);
    butstop4.setBounds(705, 317, 105, 33);
    butstop4.setLabel("Stop!");
    butstop4.addActionListener(new ActionListener() { 
      public void actionPerformed(ActionEvent evt) { 
        butstop4_ActionPerformed(evt);
      }
    });
    cp.add(butstop4);
    playbut2.setBounds(245, 281, 121, 33);
    playbut2.setLabel("Spielen!!!");
    playbut2.addActionListener(new ActionListener() { 
      public void actionPerformed(ActionEvent evt) { 
        playbut2_ActionPerformed(evt);
      }
    });
    cp.add(playbut2);
    playbut3.setBounds(479, 279, 121, 33);
    playbut3.setLabel("Spielen!!!");
    playbut3.addActionListener(new ActionListener() { 
      public void actionPerformed(ActionEvent evt) { 
        playbut3_ActionPerformed(evt);
      }
    });
    cp.add(playbut3);
    playbut4.setBounds(706, 275, 105, 33);
    playbut4.setLabel("Spielen!!!");
    playbut4.addActionListener(new ActionListener() { 
      public void actionPerformed(ActionEvent evt) { 
        playbut4_ActionPerformed(evt);
      }
    });
    cp.add(playbut4);
    playbut.setBounds(138, 372, 209, 41);
    playbut.setLabel("Jetzt Spielen!!!");
    playbut.addActionListener(new ActionListener() { 
      public void actionPerformed(ActionEvent evt) { 
        playbut_ActionPerformed(evt);
      }
    });
    cp.add(playbut);
    label5.setBounds(95, 488, 63, 25);
    label5.setText("Versuche: ");
    cp.add(label5);
    label6.setBounds(67, 452, 50, 25);
    label6.setText("Punkte: ");
    cp.add(label6);
    label7.setBounds(519, 432, 83, 33);
    label7.setText("Ihr Highscore");
    cp.add(label7);
    tf1.setBounds(122, 453, 137, 25);
    tf1.setText("10");
    tf1.setFont(new Font("Dialog", Font.PLAIN, 14));
    cp.add(tf1);
    tf2.setBounds(160, 488, 49, 25);
    tf2.setText("14");
    tf2.setFont(new Font("Dialog", Font.PLAIN, 14));
    cp.add(tf2);
    tfhighscore.setBounds(411, 467, 281, 33);
    tfhighscore.setForeground(Color.BLACK);
    tfhighscore.setBackground(Color.GREEN);
    tfhighscore.setFont(new Font("Dialog", Font.PLAIN, 20));
    cp.add(tfhighscore);
    tfplus.setBounds(307, 456, 65, 25);
    cp.add(tfplus);
    label8.setBounds(293, 454, 19, 27);
    label8.setText("+");
    label8.setFont(new Font("Dialog", Font.PLAIN, 16));
    cp.add(label8);
    label9.setBounds(308, 427, 59, 25);
    label9.setText("Gewinn: ");
    cp.add(label9);
    butcheck.setBounds(640, 392, 105, 33);
    butcheck.setLabel("button1");
    butcheck.addActionListener(new ActionListener() { 
      public void actionPerformed(ActionEvent evt) { 
        butcheck_ActionPerformed(evt);
      }
    });
    cp.add(butcheck);
    // Ende Komponenten

  }
  
    /////////////////////////////
  // Anfang Methoden
  public void playbut1_ActionPerformed(ActionEvent evt) {
    k1=new Karten(bildFeld1, panLeinwand1);
    t1= new Thread(k1);
    t1.start();

  }
  
    public void playbut2_ActionPerformed(ActionEvent evt) {
    k2=new Karten(bildFeld2, panLeinwand2);
    t2= new Thread(k2);
    t2.start();
  }

  public void playbut3_ActionPerformed(ActionEvent evt) {
    k3=new Karten(bildFeld3, panLeinwand3);
    t3= new Thread(k3);
    t3.start();
  }

  public void playbut4_ActionPerformed(ActionEvent evt) {
    k4=new Karten(bildFeld4, panLeinwand4);
    t4= new Thread(k4);
    t4.start();
  }

  public void clearbut_ActionPerformed(ActionEvent evt) {
    tf1.setText("10");
    tf2.setText("14");
    tfhighscore.setText("");
    tfplus.setText("");
  }

  public void butstop1_ActionPerformed(ActionEvent evt) {
    t1.stop();

  }

  public void butstop2_ActionPerformed(ActionEvent evt) {
    t2.stop();
  }

  public void butstop3_ActionPerformed(ActionEvent evt) {
    t3.stop();
  }

  public void butstop4_ActionPerformed(ActionEvent evt) {
    int versuche;
    versuche= Integer.valueOf(tf2.getText());

    t4.stop();
    versuche= versuche-1;
    tf2.setText(String.valueOf(versuche));

  }



  public void playbut_ActionPerformed(ActionEvent evt) {
    k1=new Karten(bildFeld1, panLeinwand1);
    t1= new Thread(k1);
    t1.start();
    
    k2=new Karten(bildFeld2, panLeinwand2);
    t2= new Thread(k2);
    t2.start();
    
    k3=new Karten(bildFeld3, panLeinwand3);
    t3= new Thread(k3);
    t3.start();
    
    k4=new Karten(bildFeld4, panLeinwand4);
    t4= new Thread(k4);
    t4.start();

    tfplus.setText("");
  }

  public void butcheck_ActionPerformed(ActionEvent evt) {
    int punkte, erg;
        punkte= Integer.valueOf(tf1.getText());
    if () {
       erg= punkte*100;
      tf1.setText(String.valueOf(erg));
      tfplus.setText(String.valueOf(erg-punkte));
    }
  }

  // Ende Methoden

}


das problem liegt darin, dass ich nicht weiß, wie ich einer variable den wert der gestoppten karte zuweisen kann, wie des funktioniert, wie ich des reinschreiben soll im Applet. Das Spiel soll eben als Thread laufen, deswegen auch die Class-Datei.
 

timbeau

Gesperrter Benutzer
Urgs ist das fies.

anstatt überall setBounds würde ich mal ein vernünftiges Layout benutzen. Dann mal die Logik und die Grafik trennen.

Dann ist das mit den Punkten auch viel einfacher.

Du würfelst 4x. Bei Gewinn liest du die Zahl aus, nimmst die passende Karte und lässt zeichnen. Dazu berechnest du einfach anhand des Ergebnisses den Gewinn.

Array oder Liste mit Punkten [10, 20,50,100]

int wurf = Random.nextInt(4)

Punkte = Array[wurf]


Fertig

Ps: Mit Aussagen "der ist am Besten" wäre ich vorsichtig ;)
 

mmo

Mitglied
als erstes habe ich setBounds nicht eingefügt. es hat sich automatisch eingefügt durch den java editor. bekomms trotzdem nicht hin und außerdem gibt es da keinen würfel sondern wenn man das spiel startet dann tauchen 4 karten auf, die sich ständig ändern in einer endlos schleife, wobei man sie nur mit dem stop button stoppen kann und sich dann daraus der wert herauslesen sollte.
könntest du am besten den fertiggeschriebenen code reinstellen?
 

timbeau

Gesperrter Benutzer
als erstes habe ich setBounds nicht eingefügt. es hat sich automatisch eingefügt durch den java editor. bekomms trotzdem nicht hin und außerdem gibt es da keinen würfel sondern wenn man das spiel startet dann tauchen 4 karten auf, die sich ständig ändern in einer endlos schleife, wobei man sie nur mit dem stop button stoppen kann und sich dann daraus der wert herauslesen sollte.

Das heißt, du hast die sich drehenden Karten nicht selbst programmiert?

könntest du am besten den fertiggeschriebenen code reinstellen?

Was zahlst du?
 

mmo

Mitglied
Das heißt, du hast die sich drehenden Karten nicht selbst programmiert?

doch hab ich, bloß weiß ich nicht, wie ich des mit der variable hinbekomme. meine güte. es sind keine drehenden karten, sondern karten die sich tauschen, sprich eine karte erscheint auf einer leinwand (panLeinwand) und dann erscheint ne andere und immer weiter so.
am besten wäre, wenn man den java-editor hat und des mal startet und anschaut wie des funzt.
 
Zuletzt bearbeitet:

andre111

Bekanntes Mitglied
Ich will jetzt nicht unfreundlich werden, aber wenn du möchtest, dass dir jemand dein Spiel fertig programmiert, dann erstell einen Thread unter Jobbörse und mach dort dein Angebot, wie viel du bereit wärst zu zahlen.
Ansonsten solltest du dir erst mal die Grundlagen aneignen und sicher beherrschen, bevor du dich an Applets, GUIs und Spiele ranwagst.
 

timbeau

Gesperrter Benutzer
doch hab ich, bloß weiß ich nicht, wie ich des mit der variable hinbekomme. meine güte. es sind keine drehenden karten, sondern karten die sich tauschen, sprich eine karte erscheint auf einer leinwand (panLeinwand) und dann erscheint ne andere und immer weiter so.
am besten wäre, wenn man den java-editor hat und des mal startet und anschaut wie des funzt.

Ich bin schon in der Lage diesen Code zu entziffern. Nur du scheinst es nicht zu verstehen, weil du nur mit dem Gui-Builder rumspielst ohne die Grundlagen zu kennen.

Wenn du also bei diesem Code bleiben willst, erstelle pro Kartenbild eine Punktzahl.

Fertiger Java-Code:

Java:
int [] punkte = {10,20,50,100};

Frag nachdem du Stop gedrückt hast jedes KArtenobjekt, welches Bild gerade gezeigt wird.

Java:
private int index;

Java:
 for (int i=0;i<=anzahl-1;i++) {
        anzeigebild= bilder[i];
        bildmalstift.drawImage(anzeigebild,0,0,leinwand.getSize().width,leinwand.getSize().height,null);
        pausenow();
index = i;
 
      }

Java:
private int getIndex(){
return index;
}

Jetzt hast du 4 Werte pro Karte und dein Array.

Wenn der Index überall gleich ist, z.B. 3, dann gibts 100Punkte. Natürlich noch das Array anpassen.
 

mmo

Mitglied
den code, denn du da reingestellt hast, habe ich in die class-datei eingefügt und klappt auch,a ber wie mach ich des jetzt im applet rein? wo und was soll ich da reinschreiben?
 

mmo

Mitglied
hab des jetzt so im Applet:
Java:
  public void butstop1_ActionPerformed(ActionEvent evt) {
    int x1;
    t1.stop();
    k1=new Karten(bildFeld1, panLeinwand1);
    t1= new Thread(k1);
    k1.getIndex();
  }

und so würde ichs bei den andern drei stopbuttons machen und beim vierten mit if-bedingung beginnen. stimmt des so? liest des dann von den andern stopbuttons die werte ab?
 

timbeau

Gesperrter Benutzer
Ob das stimmt kannst du doch testen. Gib aus was für ein Kartenobjekt erstellt wird und vergleiche mit dem angezeigten Bild.

Testweise kannst du auch mal feste Bilder anzeigen lassen, z.B. 4 Asse.
 

mmo

Mitglied
habs fast geschafft, jedoch macht es bei mir bei egal welchem paar +100 punkte, also des erste, was ich da reinprogrammiert habe. ich glaube i-wie liest es den kartenwert nicht ab.
heir mein code:
Java:
public void butstop1_ActionPerformed(ActionEvent evt) {
    t1.stop();

    k1=new Karten(bildFeld1, panLeinwand1);
    x1= Integer.valueOf(k1.getIndex());
  }

  public void butstop2_ActionPerformed(ActionEvent evt) {
    t2.stop();

    k2=new Karten(bildFeld2, panLeinwand2);
    x2= Integer.valueOf(k2.getIndex());
  }

  public void butstop3_ActionPerformed(ActionEvent evt) {
    t3.stop();
    k3=new Karten(bildFeld3, panLeinwand3);
    x3= Integer.valueOf(k3.getIndex());
  }

  public void butstop4_ActionPerformed(ActionEvent evt) {
    int versuche;
    versuche= Integer.valueOf(labversuche.getText());
    t4.stop();
    versuche= versuche-1;
    labversuche.setText(String.valueOf(versuche));
    int punkte, erg;
    punkte= Integer.valueOf(labpunkte.getText());
    k4=new Karten(bildFeld4, panLeinwand4);
    x4= Integer.valueOf(k4.getIndex());
    if (x1==x2) {
      erg= punkte+100;
      labpunkte.setText(String.valueOf(erg));
      labplus.setText(String.valueOf(erg-punkte));
    }
    if (x1==x3) {
      erg= punkte+100;
      labpunkte.setText(String.valueOf(erg));
      labplus.setText(String.valueOf(erg-punkte));
    }

  }
 

mmo

Mitglied
hatte da en fehler, ich mein des hier, aber trotzdem klappts net:

Java:
public void butstop1_ActionPerformed(ActionEvent evt) {
    t1.stop();

    k1=new Karten(bildFeld1, panLeinwand1);
    x1= Integer.valueOf(k1.getIndex());
  }

  public void butstop2_ActionPerformed(ActionEvent evt) {
    t2.stop();

    k2=new Karten(bildFeld2, panLeinwand2);
    x2= Integer.valueOf(k2.getIndex());
  }

  public void butstop3_ActionPerformed(ActionEvent evt) {
    t3.stop();
    k3=new Karten(bildFeld3, panLeinwand3);
    x3= Integer.valueOf(k3.getIndex());
  }

  public void butstop4_ActionPerformed(ActionEvent evt) {
    int versuche;
    versuche= Integer.valueOf(labversuche.getText());
    t4.stop();
    versuche= versuche-1;
    labversuche.setText(String.valueOf(versuche));
    int punkte, erg;
    punkte= Integer.valueOf(labpunkte.getText());
    k4=new Karten(bildFeld4, panLeinwand4);
    x4= Integer.valueOf(k4.getIndex());
    if (x1==x2) {
      erg= punkte+100;
      labpunkte.setText(String.valueOf(erg));
      labplus.setText(String.valueOf(erg-punkte));
    } else {
      if (x1==x3) {
       erg= punkte+50;
       labpunkte.setText(String.valueOf(erg));
       labplus.setText(String.valueOf(erg-punkte));
      } else {
         if (x1==x4) {
            erg= punkte+25;
            labpunkte.setText(String.valueOf(erg));
            labplus.setText(String.valueOf(erg-punkte));
         } else {
            erg= punkte+0;
            labpunkte.setText(String.valueOf(erg));
            labplus.setText(String.valueOf(erg-punkte));
         }
      }
    }

  }
 

timbeau

Gesperrter Benutzer
Dann check mal die Index Methode.

Nimm mal den Debugger, bei so einem Projekt kann man die Übersicht verlieren aber die Probleme muss man eingrenzen können. Ist der Index auch gesetzt wenn die Karte erstellt wird? Du machst ein neues Kartenobjekt aber wie setzt du den Index?
 

mmo

Mitglied
also dies ist die class-datei mit der index-methode, hab deinen ratschlag befolgt, jedoch weiß ich nicht, wo ich die "int [] punkte = {10,20,50,100};" einfügen soll, bzw. was ich weiter damit machen soll.
class-datei:
Java:
 int [] punkte = {10,20,50,100};

   private int index;

   private boolean stop;

   public void run(){
     pausedavor();
     while (!stop) {
      Graphics bildmalstift;
      Image anzeigebild;
      int anzahl;
      bildmalstift= leinwand.getGraphics();
      anzahl=bilder.length;
        for (int i=0;i<=anzahl-1;i++) {
        anzeigebild= bilder[i];
        bildmalstift.drawImage(anzeigebild,0,0,leinwand.getSize().width,leinwand.getSize().height,null);
        pausenow();
        index = i;
      }
     }


   }
   
   public int getIndex(){
     return index;
   }
   
   public void anhalten(){
     stop=true;
   }



hier die applet datei:
Java:
public class Karten_Appl extends Applet {
  //////////////////////////////
  int anzahlbilder=8;
  int x1, x2, x3, x4;

MediaTracker mein_Mt = new MediaTracker(this);
  MediaTracker dein_Mt = new MediaTracker(this);
  MediaTracker sein_Mt = new MediaTracker(this);
  MediaTracker euer_Mt = new MediaTracker(this);
  Image[] bildFeld1 = new Image[anzahlbilder];   //ARRAY um Bilder aufzunehmen
  Image[] bildFeld2 = new Image[anzahlbilder];
  Image[] bildFeld3 = new Image[anzahlbilder];
  Image[] bildFeld4 = new Image[anzahlbilder];
  
  Thread t1, t2, t3, t4;
  Karten k1,k2, k3, k4;
  
  /////////////////////////////




 public void init() {
    cp.setBounds(0, 0, 898, 588);
    add(cp);
    // Anfang Komponenten

      /////////////////////////////
     for (int i=0;i<anzahlbilder;i++){
     bildFeld1[i]= this.getImage(this.getDocumentBase(),"decka"+(i)+".jpg");
     bildFeld2[i]= this.getImage(this.getDocumentBase(),"deckb"+(i)+".jpg");
     bildFeld3[i]= this.getImage(this.getDocumentBase(),"deckc"+(i)+".jpg");
     bildFeld4[i]= this.getImage(this.getDocumentBase(),"deckd"+(i)+".jpg");
     mein_Mt.addImage(bildFeld1[i],i);
     dein_Mt.addImage(bildFeld2[i],i);
     sein_Mt.addImage(bildFeld3[i],i);
     euer_Mt.addImage(bildFeld4[i],i);

       try {
           mein_Mt.waitForAll();
           dein_Mt.waitForAll();
           sein_Mt.waitForAll();
           euer_Mt.waitForAll();
       } catch(InterruptedException e) { }
    }  // Ende von for-schleife
    
      /////////////////////////////



// Anfang Methoden
  public void clearbut_ActionPerformed(ActionEvent evt) {
    labpunkte.setText("10");
    labversuche.setText("14");
    labhighscore.setText("");
    labplus.setText("");
  }

  public void butstop1_ActionPerformed(ActionEvent evt) {
    t1.stop();

    k1=new Karten(bildFeld1, panLeinwand1);
    x1= Integer.valueOf(k1.getIndex());
  }

  public void butstop2_ActionPerformed(ActionEvent evt) {
    t2.stop();

    k2=new Karten(bildFeld2, panLeinwand2);
    x2= Integer.valueOf(k2.getIndex());
  }

  public void butstop3_ActionPerformed(ActionEvent evt) {
    t3.stop();
    
    k3=new Karten(bildFeld3, panLeinwand3);
    x3= Integer.valueOf(k3.getIndex());
  }

  public void butstop4_ActionPerformed(ActionEvent evt) {
    int versuche;
    versuche= Integer.valueOf(labversuche.getText());
    t4.stop();
    versuche= versuche-1;
    labversuche.setText(String.valueOf(versuche));
    int punkte, erg;
    punkte= Integer.valueOf(labpunkte.getText());
    k4=new Karten(bildFeld4, panLeinwand4);
    x4= Integer.valueOf(k4.getIndex());
    if (x1==x2) {
      erg= punkte+100;
      labpunkte.setText(String.valueOf(erg));
      labplus.setText(String.valueOf(erg-punkte));
    } else {
      if (x1==x3) {
       erg= punkte+50;
       labpunkte.setText(String.valueOf(erg));
       labplus.setText(String.valueOf(erg-punkte));
      } else {
         if (x1==x4) {
            erg= punkte+25;
            labpunkte.setText(String.valueOf(erg));
            labplus.setText(String.valueOf(erg-punkte));
         } else {
            erg= punkte+0;
            labpunkte.setText(String.valueOf(erg));
            labplus.setText(String.valueOf(erg-punkte));
         }
      }
    }

  }



  public void playbut_ActionPerformed(ActionEvent evt) {
    k1=new Karten(bildFeld1, panLeinwand1);
    t1= new Thread(k1);
    t1.start();
    
    k2=new Karten(bildFeld2, panLeinwand2);
    t2= new Thread(k2);
    t2.start();
    
    k3=new Karten(bildFeld3, panLeinwand3);
    t3= new Thread(k3);
    t3.start();
    
    k4=new Karten(bildFeld4, panLeinwand4);
    t4= new Thread(k4);
    t4.start();

    labplus.setText("");
  }

  // Ende Methoden

des ist so des wichtigste.
 

timbeau

Gesperrter Benutzer
Ich sehe da leider noch keinen roten Faden in deinen Bemühungen. Was schonmal gut ist, ist das Auslesen, welche Karte gezogen wurde. Hast du das überprüft? Passen die x?-Werte zu den richtigen Karten? Sysouts oder debuggen.

Dann setzt du den Index in deiner Klasse (nicht class-Datei, die class-Datei ist deine kompilierte Java-Datei ;) ) einfach auf 4.

Java:
for (int i=0;i<=anzahl-1;i++) {
        ...
        index = i;
      }

Was soll das bringen? Der Index ist abhängig von der gezogenen Karte. Du musst in deiner Klasse eine Methode schreiben, die dir einen Wert aus dem Punkte-Array zurück gibt.

Java:
public int returnPoints(int index) {
return punkte[index] //keine Fehlerbehandlung
}

Und in deinem Applet machst du sowas wie

Java:
if(x1==x2 && x2 == x3 && x3 == x4) {
System.out.println("4x die gleiche Karte!";
int punkte = klasse.returnPoints(x1);
System.out.println("Das bring " + punkte  + " Punkte!");
 

mmo

Mitglied
ja habs überprüft, klappt aber nicht. ich glaub ich hab des mit den x-werten falsch gemacht, denn es gibt ja 32 karten und dadurch 4 kartenstapel, die folgendermaßen heißen:
"decka"+(i)+".jpg"
"deckb"+(i)+".jpg"
"deckc"+(i)+".jpg"
"deckd"+(i)+".jpg"
in jedem kartenstapel gibts 8 karten (verschieden). wie gesagt ich gehe es flasch an, da oben es so angegeben ist:
Java:
bildFeld1[i]= this.getImage(this.getDocumentBase(),"decka"+(i)+".jpg");

aber ich weiß nicht, wie ich ne variable auf des beziehen könnte oder so. bei mir macht es immernoch +100 puntke, egal was für en paar kommt.

ich weiß ncoh immernicht, was des soll:
Java:
int [] punkte = {10,20,50,100};
Java:
public int returnPoints(int index) {
   return punkte[index]; //keine Fehlerbehandlung
  }

könntest du nicht vllt mal dir des programm anschaun mit dem java-editor oder mal des programm starten, wie des abfolgt, weil es ist schwer zu erklären, wenn mans net mal selber anschaut.
hier nochmal das programm bis zum heutigen zeitpunkt zum downloaden:
File-Upload.net - Karten_Projekt.zip
 

timbeau

Gesperrter Benutzer
Browserabsturz, deshlab kürzer.

Mit "hab ich falsch gemacht" kommen wir nicht weiter.

Java:
 public void run(){
     pausedavor();
     while (!stop) {
      Graphics bildmalstift;
      Image anzeigebild;
      int anzahl;
      bildmalstift= leinwand.getGraphics();
      anzahl=bilder.length;
        for (int i=0;i<=anzahl-1;i++) {
        anzeigebild= bilder[i];
        bildmalstift.drawImage(anzeigebild,0,0,leinwand.getSize().width,leinwand.getSize().height,null);
        pausenow();
        index = i;
      }
     }


   }

Hier wird pro Thread ausgewählt, welche deiner Karten gezeigt wird. Ob die Variablen stimmen musst DU rausfinden. Wenn du dein Programm in ein Java-Projekt packst schau ich mir das an, mit Applet-Kram hab ich grade keine Lust und es funktioniert auch nicht bei mir.

Zu den Punkten. Das ist nicht die perfekte Lösung aber wie würdest du einer Karte Punkte zuordnen wenn du das ganze auf Papier machen würdest???

Du schreibst die Punkte pro Karte hin und daneben die Karte selber.

Deine Schritte:
1. Du musst es jetzt endlich(!) mal hinkriegen eine Info über die gezogene Karte zu bekommen. Index sollte dir da helfen. Problem: Deine Karten sind bes****** benannt. decka0 = Herz-Ass, deckb0 = Kreuz-König, deckc0 = Pik9. Was soll das?
2. Mit diesem Index gehst du auf dein Punkte-Array. Das musst du anpassen. Siehe Tipp mit dem Papier. Wieviele Karten, wieviele Punktemöglichkeiten?
3. Die Variablen zusammen-tragen. Du brauchst ja alle 4 um zu sehen ob gewonnen wurde.

Hau mal rein, du kommst seit Tagen nicht vom Fleck hiermit.
 

mmo

Mitglied
jawohl, ich habe es endlich!!! :)
dank dir @timbeau hab ichs!! danke, danke!!
dank dieser idee mit dem index in der class-datei und dann später mit den if-else. hatte da en fehler im applet. durch zufall hab ichs entdeckt und jetzt klappts. danke nochmals!!
hier das fertige applet zum downlaoden:
File-Upload.net - Karten_Projekt.zip
 
Zuletzt bearbeitet:

timbeau

Gesperrter Benutzer
Hi, zum einen bringt dein Prog meinen Firefox zum Absturz, zum anderen wird ja immernoch nicht nach Karte unterschieden.
 

timbeau

Gesperrter Benutzer
Ich besitze keinen Internet-Explorer da ich kein Windows nutze und Java ist die neuste Version. Teste mal bei dir, so ein Spiel sollte auf verschiedenen Rechnern laufen ;)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
xFearofdarkness Feinde überlappen sich in Java Spiel Spiele- und Multimedia-Programmierung 3
ItundMathe1994 TicTacToe Spiel programmieren Spiele- und Multimedia-Programmierung 2
JEP1 Hilfe bei Spiel Spiele- und Multimedia-Programmierung 1
P Pokemon Spiel Funktioniert nicht ? Spiele- und Multimedia-Programmierung 3
Leon.tr3x Mein erstes Programm/Spiel Spiele- und Multimedia-Programmierung 10
O Texas Hold'em Poker als Online-Spiel mit Freunden Spiele- und Multimedia-Programmierung 5
Drachenbauer Speicher-Tool für ein Spiel schreiben Spiele- und Multimedia-Programmierung 13
M Spiel Mühle-Programmierung Java Spiele- und Multimedia-Programmierung 9
Excess Spiel abzugeben Spiele- und Multimedia-Programmierung 1
I Superhelden - Spiel Spiele- und Multimedia-Programmierung 14
E Hauptmenü und Spiel ???? Spiele- und Multimedia-Programmierung 2
L Sound in Java Spiel Spiele- und Multimedia-Programmierung 5
R Interaktives Spiel Spiele- und Multimedia-Programmierung 5
L Spiel im Editor testen Spiele- und Multimedia-Programmierung 4
Jackii dispatchUncaughtException in Quiz Spiel mit GUI Layout Spiele- und Multimedia-Programmierung 6
D Textbasiertes Spiel Spiele- und Multimedia-Programmierung 8
K Android Spiel Programmieren Spiele- und Multimedia-Programmierung 6
L BrickBreaker Spiel Spiele- und Multimedia-Programmierung 3
A Spiel Figur ansprechen und bewegen Spiele- und Multimedia-Programmierung 3
it_is_all Dialogbox im Spiel - Text in Blöcke aufteilen Spiele- und Multimedia-Programmierung 4
F Koordinieren und Essen von Snake - Spiel Spiele- und Multimedia-Programmierung 14
G Entity Verwaltung in einem 2D Spiel Spiele- und Multimedia-Programmierung 1
E Möchte Spiel Programmieren Spiele- und Multimedia-Programmierung 7
S Connect6 Spiel - Code in ei Spiele- und Multimedia-Programmierung 2
A Spiel nach Abfrage beenden oder neustarten Spiele- und Multimedia-Programmierung 1
G Welten Generierung 2D Spiel Spiele- und Multimedia-Programmierung 4
G Java 2D Spiel mit LWJGL verbinden Spiele- und Multimedia-Programmierung 1
N Problem mit 2D Spiel Spiele- und Multimedia-Programmierung 17
T Probleme bei "Pixel-Fighting"-Spiel: Unausgewogene Mannschaften??? Spiele- und Multimedia-Programmierung 4
R Pong Spiel Problem Spiele- und Multimedia-Programmierung 1
L Coordinate Space JavaFX 2d Spiel Spiele- und Multimedia-Programmierung 0
C Vier Gewinnt Spiel Programmiertipp Spiele- und Multimedia-Programmierung 11
N Jump and run Spiel - wo anfangen / weitermachen? Spiele- und Multimedia-Programmierung 11
K Spiel zum zuordnen von Dienstgraden und Dienstgradabzeichen Spiele- und Multimedia-Programmierung 5
M Textbasiertes Spiel programmieren Spiele- und Multimedia-Programmierung 4
T 2d-Spiel Licht Spiele- und Multimedia-Programmierung 5
S Jump 'n' Run-Spiel Kollisionserkennung Spiele- und Multimedia-Programmierung 3
T Spiel rendern Spiele- und Multimedia-Programmierung 2
Grevak Sounds im Spiel Spiele- und Multimedia-Programmierung 5
B Fehlerhafte Mob Bewegungen in Tower Defense Spiel Spiele- und Multimedia-Programmierung 2
F Spiel ähnlich wie SimCity/o.ä programmieren Spiele- und Multimedia-Programmierung 5
X Erklärung zu einem Tic Tac Toe Spiel Spiele- und Multimedia-Programmierung 1
I Spectator Modus für Spiel ähnlich zu Terraria Spiele- und Multimedia-Programmierung 8
I Textbasiertes Spiel - Umsetzungsfrage & Schleifen Problem Spiele- und Multimedia-Programmierung 26
M Kollisions abfrage bei 3D spiel? Spiele- und Multimedia-Programmierung 12
D JAVA Basiertes Spiel aus dem Internet in eigenem Client laden Spiele- und Multimedia-Programmierung 1
P [Spiel]Welche Bilder sind gleich Spiele- und Multimedia-Programmierung 2
E GUI zum Spiel hinzufügen Spiele- und Multimedia-Programmierung 19
S 2D Spiel - Physics Spiele- und Multimedia-Programmierung 16
S 2D Spiel "Der Sprung" Spiele- und Multimedia-Programmierung 7
A 2D Spiel ohne Tiles Spiele- und Multimedia-Programmierung 10
V welche vorgehensweise beforzieht ihr bei einfachem Quizz Spiel ? Spiele- und Multimedia-Programmierung 4
S Quaxli's Heli Spiel läuft nicht nach Plan Spiele- und Multimedia-Programmierung 2
G Methode sleepen während das Spiel weiterläuft Spiele- und Multimedia-Programmierung 3
T Spiel Überprüfung Spiele- und Multimedia-Programmierung 3
P Spiel laggt nach unbestimmter Zeit tierisch. Spiele- und Multimedia-Programmierung 27
S Hilfe bei Spiel Spiele- und Multimedia-Programmierung 6
B Hauptmenü für Spiel Spiele- und Multimedia-Programmierung 1
W Spiel ist langsam/laggt Spiele- und Multimedia-Programmierung 18
J Ascii Spiel Spiele- und Multimedia-Programmierung 1
Androbin Mein Spiel will sich nicht zeichnen lassen !!! Spiele- und Multimedia-Programmierung 7
O Vollständige Musik in Spiel einbauen (wav - Format) Spiele- und Multimedia-Programmierung 8
Y Quiz Spiel Spiele- und Multimedia-Programmierung 1
J Conways Spiel des Lebens nachprogrammiert Spiele- und Multimedia-Programmierung 1
B Spiel Programmieren, die Anfänge Spiele- und Multimedia-Programmierung 6
D [OpenGL] Spiel in der Art von Age of Empires Spiele- und Multimedia-Programmierung 4
lord239123 suche Graphiker für ein Pokemon-Spiel Spiele- und Multimedia-Programmierung 6
S Spiel installeren lassen und organisieren Spiele- und Multimedia-Programmierung 3
J Lichtupdate in tile-basiertem Spiel Spiele- und Multimedia-Programmierung 4
P Erstes Spiel (Strategie) Spiele- und Multimedia-Programmierung 31
J Mein erstes Spiel [Spielevorstellung] Spiele- und Multimedia-Programmierung 2
Bananabert Spiel Renderer Images und Strings Spiele- und Multimedia-Programmierung 4
N Spiel Menü error ! Spiele- und Multimedia-Programmierung 5
S Anfangsmenü mit Spiel verknüpfen Spiele- und Multimedia-Programmierung 16
S Spiel ruckelt trotz 50 fps Spiele- und Multimedia-Programmierung 16
D Spiel-Bilddaten auswerten Spiele- und Multimedia-Programmierung 7
Creylon [LWJGL] Spiel Exportieren Spiele- und Multimedia-Programmierung 2
L Hilfe bei Klassendesign für Spiel Spiele- und Multimedia-Programmierung 2
Devil0s Spiel laggt trotz 90 FPS (bei der Anzeige) Spiele- und Multimedia-Programmierung 9
N Webanwendung als eine Art Spiel Spiele- und Multimedia-Programmierung 8
L Korrekte Darstellung von Wasser in 2D Spiel Spiele- und Multimedia-Programmierung 4
F Ideen für spiel Spiele- und Multimedia-Programmierung 4
J wohin mit der Logik des Spiel Spiele- und Multimedia-Programmierung 2
R Experimente mit Quaxlis Spiel Spiele- und Multimedia-Programmierung 12
W Spiel-Grundlagen selbst austüfteln: Kollisionen? Spiele- und Multimedia-Programmierung 3
Kenan89 Java 2D Spiel Spiele- und Multimedia-Programmierung 39
J Tic tac toe spiel Neustart Spiele- und Multimedia-Programmierung 5
S 2D Spiel im Vollbild langsamer als im Fenster Spiele- und Multimedia-Programmierung 11
A TicTacToe Spiel Spiele- und Multimedia-Programmierung 3
S Verbesserungvorschläge Spiel Z Spiele- und Multimedia-Programmierung 31
S Spiel abbrechen Spiele- und Multimedia-Programmierung 3
J Greenfoot "Little Crab" Spiel Erweiterungen Spiele- und Multimedia-Programmierung 6
P Spiel HUD erstellen Spiele- und Multimedia-Programmierung 6
E Spiel neustarten Spiele- und Multimedia-Programmierung 4
S Aufbau von Klassen für Spiel Spiele- und Multimedia-Programmierung 13
A Grundlagensuche für Spiel Spiele- und Multimedia-Programmierung 8
V Basisprinzipien Breakout-Spiel Spiele- und Multimedia-Programmierung 8
E Spiel startet nach exportieren nicht Spiele- und Multimedia-Programmierung 7
Gossi Erweiterung von Quaxlis Heli-Spiel Spiele- und Multimedia-Programmierung 16
M Hilfe bei Spiel Programmierung Spiele- und Multimedia-Programmierung 4

Ähnliche Java Themen

Neue Themen


Oben