17 und 4

Status
Nicht offen für weitere Antworten.

crisscross

Mitglied
Hallo java-forum!

Ich hab jetzt das 2. Schulhalbjahr der 11. Klasse auf freiwilliger Basis Informatik (ich hätte es nach dem ersten Halbjahr abwählen sollen :p ). Wir beschäftigen uns nur mit Java. Zum Abschluss soll jetzt jeder seine eigenes Programm erstellen, ich habe mich für ein 17 und 4 entschieden. Aber ich bin maximal untalentiert. Nun gut, mein Programm kann bis jetzt 2 Karten nach Zufall anzeigen und konnte mal auf Knopfdruck eine dritte anzeigen (ich habe etwas rumgepruckelt und kriege es jetzt komischerweise nichtmal mehr in diesen Zustand zurück; er malt nach dem Knopfdruck 3 gleiche Karten :cry: ). Mit dem Anzeigen ebenjener wurden aber auch die beiden ersten Karten neu erstellt, was daran lag, dass meine Zufallsfunktion in public void paint(Graphics g) war und eben bei repaint();, was nach dem Button erfolgt, immer wieder erfolgte. Ich wollte dann die Zufallszahlen außerhalb von paint erstellen (in "public void rndm"() oder meinetwegen auch in init() ), aber das ging komischerweise nicht. Der Compiler kannte auf einmal die durch Zufall ausgewählte int "Zahl" in public void paint(Graphics g) nicht mehr, wenn er durch sie eine bestimmte Karte zeichnen sollte. Die Fehlermeldung war etwas mit "cannot resolve Symbol" und "Zahl" in public void paint(Graphics g) war markiert. Warum zur Hölle klappt das nicht? Muss ich die Zufallszahlen irgendwie übergeben? Andere Zahlen kann ich doch auch außerhalb von Paint definieren und sie klappen dort. Ich versteh das nicht.

Es wäre sehr nett, wenn man mir helfen könnte. Das mit den Zufallszahlen ist auch nicht mein einziges Problem, aber im Moment mein dringlichstes.

Als KSKB wäre es sowas:

Code:
import java.awt.*;
import java.applet.*;
import java.util.*;

public class sundvtest extends Applet
{ 



  public void init() 
  { 
    Random Zufall = new Random();
    int Zahl = Zufall.nextInt (2)+1;
    showStatus(Integer.toString(Zahl));
    
    Random Zufall2 = new Random();
    int Zahl2 = Zufall2.nextInt (2)+1;
    showStatus(Integer.toString(Zahl2));
  
  } 

   public void paint(Graphics g) 
  { 

    if (Zahl==1) 
   {g.drawRect(100,100,300,300);
   }
    if (Zahl==2)
   {g.drawRect(150,100,300,300);
   }
    if (Zahl2==1)
   {g.drawRect(150,150,300,300);
   }
    if (Zahl2==2)
   {g.drawRect(200,200,300,300);
   }

   }
   
}

Als Fehler wird zu allen if-Bedingungen das hier angezeigt:

sundvtest.java:34: cannot resolve symbol
symbol : variable Zahl2
location: class sundvtest
if (Zahl2==2)
^

Tausend Dank für alle Antworten

crisscross
 

Leroy42

Top Contributor
Du mußt Zufall und Zufall2 (Variablen klein schreiben)
zu Instanzvariablen machen
und dann in init() nur schreiben
Code:
zahl = zufall.nextInt (2)+1;

Code:
public class Sundvtest extends Applet { 
  int zahl, zahl2;

  public void init()  { 
    Random zufall = new Random(); 
    zahl = zufall.nextInt (2)+1;
    do  
      zahl2 = zufall.nextInt (2)+1; 
    while (zahl2 == zahl)
    showStatus(zahl + ":" + zahl2); 
  }
  ...
}
 

Drake

Bekanntes Mitglied
Hallo

erstens schreibe Variablen bitte klein, nur Klassennamen werden groß grschrieben, Übersciht und so.

Dann füge eine Methode z.B. getRandInt hinzu

Code:
    private int getRandInt() {
          return deine erzeugte Zahl
    }

deine Klasse könnte dann folgendermaßen aussehen

Code:
public class sundvtest extends Applet
{ 

    private int number1;
    private int number2;

    public void init() {
        this.number1 = getRandInt();
        this.number2 = getRandInt();
   }

so kannst du innerhalb deiner Klasse überall auf deine Zahlen zugreifen oder neue erzeugen.

Nur am Rande erwähnt, ob Schulinformatik oder nicht, bei 2 - 4 Wochenstunden sollte man mittlerweile soweit sein nicht an so einem Fehler zu stocken, investiere ein klein wenig Zeit und schau dir mal in ruhe die Insel an.

mfg
Drake

edit
da war wohl jemand schneller, ist ja erschreckend wie lange ich am Morgem zum tippen brauche
 

crisscross

Mitglied
Okay, vielen Dank, da wär ich wohl nie drauf gekommen. Mir fällt ein Stein vom Herzen. Jetzt zeigt der Compiler schonmal keine Fehler mehr an. Dafür malt das dämliche Programm jetzt keine Karten mehr :autsch: Wie immer, wenn ich was mit Java mache: kaum hat man ein Problem gelöst, schon klappt das nächste wieder nicht. Werde mich erstmal selbst mit diesem Problem befassen.
Eine Frage zu dem Häkchen-System hier: Das Ausgangsproblem ist ja jetzt gelöst, das hieße, ich müsste jetzt ein Häkchen setzen. Ich bin mir aber absolut sicher, das mir noch weitere Probleme über den Weg laufen werden (siehe was nach dem umändern von Zahl in zahl geschah ... ), hatte deswegen auch den Threadnamen etwas allgemeiner gewählt. Was mache ich nun? Kien Häkchen setzten? Oder kann ich das Häkchen wieder aufheben, wenn ich eine anderes Problem in diesen Thread setzen möchte?

EDIT: @ Drake: Ja, es stimmt wohl, ich bin in Java einfach eine Null. Allerdings hat den Fehler keiner aus meinem Kurs gefunden ;). Liegt wohl am Lehrer :D. Mit der Insel ist es ja eine schöne Sache, aber ich fürchte, dass der Zug da abgefahren ist. Dienstag muss das Ding fertig sein, da bringt mir die Insel relativ wenig, weil man mit Einzelfragen nicht weiter kommt. Das kann ich mir ja mal danach reinziehen.
Gott sei Dank, dass es dieses Forum gibt!
 

crisscross

Mitglied
Ah, man kann das Häkchen ja auch deaktivieren. Ich mache es mal so, da ja ein häufiges Threaderöffnen meistens nicht so gut ankommt ;).
Mein nächstes Problem sind die while-Schleifen. Von den Zufallszahlen erstelle ich 9 Stück, weil die Summe aus allen gezogenen Karten spätestens nach 9 Zügen 21 übersteigt. Natürlich kommt in einem Kartenspiel jede Karte nur einmal vor, deswegen soll er beim erstellen der Zufallszahlen immer mit den bereits erstellten Zahlen abgleichen.
In etwa so, wie es Leroy42 in seiner ersten Antwort schon zeigte:

Code:
public class Sundvtest extends Applet { 
  int zahl, zahl2; 

  public void init()  { 
    Random zufall = new Random(); 
    zahl = zufall.nextInt (2)+1; 
    do  
      zahl2 = zufall.nextInt (2)+1; 
    while (zahl2 == zahl) 
    showStatus(zahl + ":" + zahl2); 
  } 
  ... 
}

Leider habe ich nicht nur 2 Zahlen, sondern wie gesagt 9. Ich wollte es dann so machen:

Code:
     Random zufall = new Random(); 
     zahl = zufall.nextInt (32); 

      do
     zahl2 = zufall.nextInt (32); 
      while (zahl2==zahl);

      do
     zahl3 = zufall.nextInt (32); 
      while (zahl3==zahl);
      while (zahl3==zahl2);

      do
     zahl4 = zufall.nextInt (32);
      while (zahl4==zahl);
      while (zahl4==zahl2);
      while (zahl4==zahl3);

      do
     zahl5 = zufall.nextInt (32);
      while (zahl5==zahl);
      while (zahl5==zahl2);
      while (zahl5==zahl3);
      while (zahl5==zahl4);

      ...

Das wenn ich das so in mein Applet einbaue, passiert garnichts mehr. Liegt das vielleicht daran, dass ich nicht mehrere while-Schleifen hinter ein "do" setzen kann?
Das komische ist, dass er es problemlos kompilieren kann.
Das komischere ist, dass funktioniert, wenn ich nur "zahl" bis "zahl3" verwende. Allerdings malt er dann manchmal keine Karten, nur die erste, nur die zweite oder nur die dritte.
Ich kann diesemal leider nicht mit einem KSKB aufwarten, wenn Bedarf besteht aber meinen kompletten 17und4-Code hereinstellen. Der ist allerdings riesig und könnte bei Programmierern zu Augenkrebs führen ;) .
 
B

Beni

Gast
Hehe, ein Bonuspunkt für den originellsten Fehler des Monates :bae:

Das hier...
Code:
do{ ... }
while( ... );
... ist ein Statement, ein ausführbarer Befehl.

Das hier...
Code:
while( ... );
... ist ebenfalls ein Statement.

Nun sind...
Code:
do{ ... }
while( ... );
while( ... );
... zwei unabhängige Statements, hier stehen also zwei Schleifen die nichts miteinander zu tun haben :!:

Was du haben willst, ist ein logisches ODER, und das sieht so aus:
Code:
do{ .... }
while( zahl3 == zahl || zahl3 == zahl1 || zahl3 == zahl2 );

Wenn soviele Variablen rumschwirren, lohnt sich auch der Einsatz eines Arrays.
Code:
int[] zahlen = new int[ 9 ];
 

crisscross

Mitglied
Ich weiß garnicht, wie ich diesem Forum und seinen Mitgliedern danken soll. Vielleicht erst mal so:
Vielen vielen herzlichen Dank, Beni!
Wirklich ein tolles Forum. Ich hoffe, irgendwann vielleicht auch einmal einem Anfänger so helfen zu können.
 

crisscross

Mitglied
N'abend.

Ich sitz' immer noch an meinem 17 und 4. Mittlerweile habe ich eine Version fertig, die den kompletten gewünschten Funktionsumfang drauf hat, aber auch komplett ohne Arrays arbeitet. Ist demnach etwas lang geworden. Nun hab ich mich mal daran versucht. Das Problem ist, dass ich es zwar mal wieder kompilieren kann, aber das Applet dann nicht funktioniert. In der Kommandozeile steht dann folgendes:

D:\java\17und4>appletviewer sundv.html
java.lang.ArrayIndexOutOfBoundsException
at sundv.init(sundv.java:61)
at sun.applet.AppletPanel.run(AppletPanel.java:340)
at java.lang.Thread.run(Thread.java:479)

Ich habe mal "java.lang.ArrayIndexOutOfBoundsException" bei google eingegeben und fand heraus, dass es eventuell etwas damit zu tun hat, dass Arrays immer die 0 mitzählen und ich dann irgendwie zuviel habe. Aber ich kann mir das nicht erklären. Es scheint mir alles dahingehend richtig zu sein. Der relevante Teil meines Codes sieht so aus:

Code:
import java.awt.*;
import java.applet.*;
import java.util.*;
import java.awt.event.*;

public class sundv extends Applet
{ 

  int zahl;
  int zahl2;

   String[] kartenNamen =
  { "siebenherz", "achtherz", "neunherz", "zehnherz",
    "Jherz", "Qherz", "Kherz", "Aherz", 
    "siebenkreuz", "achtkreuz", "neunkreuz", "zehnkreuz", 
    "Jkreuz", "Qkreuz", "Kkreuz", "Akreuz",
    "siebenkaro", "achtkaro", "neunkaro", "zehnkaro",
    "Jkaro", "Qkaro", "Kkaro", "Akaro",
    "siebenpik", "achtpik", "neunpik", "zehnpik",
    "Jpik", "Qpik", "Kpik", "Apik"
  };
  
  Image[] kartenBilder = new Image[kartenNamen.length];

  public void init() 
  { 

    MediaTracker KartenTracker = new MediaTracker(this); 
    for (i = 0; i < kartenNamen.length; i++)
    {kartenBilder[i] = getImage(getCodeBase(), "images/"+kartenNamen[i]+".jpg");
    }

   KartenTracker.addImage(kartenBilder[i], 0); 

   try 
    { 
      KartenTracker.waitForAll(); 
    } catch (InterruptedException ex) { } 

public void rndm()
  {  
     Random zufall = new Random(); 
     zahl = zufall.nextInt (31)+1; 

      do
     zahl2 = zufall.nextInt (31)+1; 
      while (zahl2==zahl);
 
     showStatus(Integer.toString(zahl)); 
     showStatus(Integer.toString(zahl2)); 
  }

public void paint(Graphics g) 
  { 
    g.drawImage(kartenBilder[zahl], 10, 10, this);
    g.drawImage(kartenBilder[zahl2], 100, 10, this);
  }
}
 

Leroy42

Top Contributor
Ich habe deinen Code nicht durchgelesen, aber allgemein gilt:

  • int[] a = new int[n];
dann existieren für a nur die Indizes
a[0]...a[n-1]
 

crisscross

Mitglied
Genau so habe ich es auch gemacht:

Code:
Image[] kartenBilder = new Image[kartenNamen.length];

Das andere Array habe ich nach dem Vorbild von "Java ist auch eine Insel" gestaltet. Da ist das folgende Beispiel gegeben:

http://www.galileocomputing.de/open...03_009.htm#mjcdaa123ec655f6dfe574bd9db37a7ba7
i
Code:
nt[] primiMäuschen = { 1, 2, 3, 5, 7, 7 + 4, }; 
String[] nouns = { 
  "Haus", "Maus", 
  "dog".toUpperCase(),    // IN GROSSBUCHSTABEN 
  new java.awt.Point().toString() 
};

Es funktioniert einfach nicht. :bahnhof: [/quote]
 

Leroy42

Top Contributor
Compiler hat gesagt.:
java.lang.ArrayIndexOutOfBoundsException
at sundv.init(sundv.java:61)
Welches ist denn die Zeile 61 in sundv.java?
Und lass dir auch gleich mal den Index mit
System.out.println ausgeben, mit dem du
in dieser Zeile versuchst, auf ein Array-Element
zuzugreifen...
 

crisscross

Mitglied
Entschuldigung, dass ich Zeile 61 nicht bereit gestellt habe.
Sie lautet:

Code:
    KartenTracker.addImage(kartenBilder[i], 0);

Ist also Zeile 33 in dem Code, den ich hier gepostet habe.

Ich war da etwas verwirrt, weil in der Fehlermeldung auch Zeilenangaben auftauchten, die weit außerhalb des Codes sind (479 und 340).
 

Leroy42

Top Contributor
Okay, aber du hast meine 2. Frage nicht beantwortet.
Was hat i denn unmittelbar vor dieser Zeile für eine Wert?

Entweder es ist < 0 oder >= kartenBilder.length
 

crisscross

Mitglied
Oh, sorry, das habe ich übersehen.

Er gibt 32 an.

EDT: okay, hab die Lösung selber gefunden.
i muss ja 32 sein, da bei diesem Wert ja vorher die Schleife abgebrochen wurde. Ich habe dann einfach eine neue Variable k bnutzt und die berüchtigte Zeile 61 auch in einer for-Schleife gepackt. Jetzt funktioniert es!
Besten Dank, Leroy!
 

Leroy42

Top Contributor
crisscross hat gesagt.:
Oh, sorry, das habe ich übersehen.

Er gibt 32 an.
... und dein kartenBilder ist auch 32 Elemente
groß, oder?

Tja, wass kann da wohl nicht stimmen? ???:L ( :cool: Lies mal ein paar Postings höher...)
 

crisscross

Mitglied
Falls der Dank im Edit nicht ankam: Hier nochmal den allerbesten davon.

Nächste Frage: Wie verhält sich das mit dem Kollegen hier: %

Ich hab da mal ein KSKB

Code:
import java.awt.*;
import java.applet.*;
import java.util.*;
import java.awt.event.*;

public class sundvtest extends Applet
{ 
 
  int a;

  int zahl1 = 11;
public void init() 
  { 
 (zahl1+8) % 8 = a;
 switch (a) {
 case 0: a=11; break;
 case 1: a=7;break;
 case 2: a=8; break;
 case 3: a=9; break;
 case 4: a=10; break; 
 case 5: a=2; break; 
 case 6: a=3; break;
 case 7: a=4; break;}

 System.out.println(a);
}
}

Der Compiler beschwert sich so:

sundvtest.java:14: unexpected type
required: variable
found : value
(zahl1+8) % 8 = a;
^
1 error

Das ^ soll unter das %.

Er soll einfach die Zahlen in das umwandeln, was letztendlich die Karten, für die die Zahlen stehen, bedeuten. Also meinetwegen Zahl1 = 11, das entspricht der Karte neun, also muss 11 in 9 umgewandelt werden.
 
G

Gast

Gast
du versuchst hier dem Ausdruck "(zahl1+8) % 8" den inhalt der variable a zuzuweisen. Das kann nicht gehen. Meinst du es eventuell anders herum?
 

crisscross

Mitglied
Boar, das is unglaublich. Jetzt kann er s compilen. Man. Also nochmal allerbsten Dank, das sit ja wirklich schon Geld wert, was man hier umsonst von freundlichen Usern bekommt.
 

crisscross

Mitglied
Eine ganz kleine allerletzte Frage, die ich mir auch nach längerer Suche komischerweise nicht allein beantworten kann:
Wie setze ich einen Button an eine gewünschte Koordinate?

ich sage

Code:
Button Ja;

// später dann

Ja = new Button("Noch eine!");
add(Ja);
Ja.addActionListener(new JaListener());

   class JaListener implements ActionListener
  { 
       public void actionPerformed(ActionEvent e)
      {
         Object obj = e.getSource();
         if (obj instanceof Button)
         {
            j ++;
            repaint();
         }
      }   
   }

Wo bau ich da die Variablen für Koordinaten ein? So baut er sie immer oben in die Mitte des Applets und das verändert sich, wenn man am Appletfenster rumspielt.
 

crisscross

Mitglied
Ja, vielen Dank noch mal an alle. Wir haben jetzt unsere Noten bekommen. Ist ne 1 für mich geworden! Die hätt' ich ohne dieses Forum sicher nicht bekommen. Tolle Sache!
Wen das finale Skript interessiert ... :

Code:
import java.awt.*;
import java.applet.*;
import java.util.*;
import java.awt.event.*;

public class sundv extends Applet
{ 

  boolean n = false; // Variable für den "NeinListener"
  boolean r = false; // Variable für den "NeustartListener"

  int j = 0; // Variable für den "JaListener" 

  int s; // Spielstandsvariable

  int i; // Zählvariable 1
  int k; // zählvariable 2

  int a; // Variablen für transformator ()
  int b; 
  int c;
  int d;
  int e;
  int f;
  int g;
  int h;
  int l;

  int z; // Zufallvariable für den Gegner

  int w = 3;

  int zahl1; // Zufallsvariablen 
  int zahl2;
  int zahl3;
  int zahl4;
  int zahl5;
  int zahl6;
  int zahl7;
  int zahl8;
  int zahl9; 

  Button Ja;
  Button Nein;
  Button neustart;
  
   String[] kartenNamen =
  { "dummy", "siebenherz", "achtherz", "neunherz", "zehnherz",
    "Jherz", "Qherz", "Kherz", "Aherz",
    "siebenkreuz", "achtkreuz", "neunkreuz", "zehnkreuz",
    "Jkreuz", "Qkreuz", "Kkreuz", "Akreuz", 
    "siebenkaro", "achtkaro", "neunkaro", "zehnkaro",
    "Jkaro", "Qkaro", "Kkaro", "Akaro",
    "siebenpik", "achtpik", "neunpik", "zehnpik", 
    "Jpik", "Qpik", "Kpik", "Apik",
    "toll", "naja", "schade", "hintergrund"
  };

  
  Image[] kartenBilder = new Image[kartenNamen.length];

  String[] ergebnis =
  { "Damit hast du gewonnen!", "Er hat dich abgezogen!", "Das ist ein Unendschieden."
  };

  public void init() 
  { 

    MediaTracker KartenTracker = new MediaTracker(this); 
    for (i = 0; i < kartenNamen.length; i++)
    {kartenBilder[i] = getImage(getCodeBase(), "images/"+kartenNamen[i]+".jpg");
    }

    for (k = 0; k < kartenNamen.length; k++)
    {KartenTracker.addImage(kartenBilder[k], 0); 
    } 
    
    try 
    { 
      KartenTracker.waitForAll(); 
    } catch (InterruptedException ex) { } 

    Ja = new Button("Noch eine!");
    Nein = new Button("Reicht!");
    neustart = new Button("Neustart");
    setLayout(null);
    add(Ja);
    Ja.setBounds(363, 10, 68, 20);
    add(Nein);
    Nein.setBounds(440, 10, 50, 20);
    add(neustart);
    neustart.setBounds(499, 10, 60, 20);
    Nein.addActionListener(new NeinListener());
    Ja.addActionListener(new JaListener());
    neustart.addActionListener(new neustartListener());
  
    rndm();
    
  } 

   public void gegner()
  {
     Random zufallg = new Random();
     z = zufallg.nextInt (9)+17;

     if (z <= 21)
     { 
      if (z > s | s > 21)
      { w = 2;
      }
      if (z < s & s <= 21)
      { w = 1;
      }
      if (z == s)
      { w = 0;
      }
     }

     else 
     {
      if (s > 21)
      { w = 0;
      }
      if (s <= 21)
      { w = 1;
      }
     }
  }
   public void rndm()
  {  
     Random zufall = new Random(); 
     zahl1 = zufall.nextInt (31)+1; 

      do
     zahl2 = zufall.nextInt (31)+1; 
      while (zahl2==zahl1);

      do
     zahl3 = zufall.nextInt (31)+1; 
      while (zahl3==zahl1 || zahl3==zahl2);
     
      do
     zahl4 = zufall.nextInt (31)+1;
      while (zahl4==zahl1 || zahl4==zahl2 || zahl4==zahl3);

      do
     zahl5 = zufall.nextInt (31)+1;
      while (zahl5==zahl1 || zahl5==zahl2 || zahl5==zahl3 || zahl5==zahl4);

      do
     zahl6 = zufall.nextInt (31)+1;
      while (zahl6==zahl1 || zahl6==zahl2 || zahl6==zahl3 || zahl6==zahl4 || zahl6==zahl5);

      do
     zahl7 = zufall.nextInt (31)+1;
      while (zahl7==zahl1 || zahl7==zahl2 || zahl7==zahl3 || zahl7==zahl4 || zahl7==zahl5 || zahl7==zahl6);

      do
     zahl8 = zufall.nextInt (31)+1;
      while (zahl8==zahl1 || zahl8==zahl2 || zahl8==zahl3 || zahl8==zahl4 || zahl8==zahl5 || zahl8==zahl6 || zahl8==zahl7);

      do
     zahl9 = zufall.nextInt (31)+1;
      while (zahl9==zahl1 || zahl9==zahl2 || zahl9==zahl3 || zahl9==zahl4 || zahl9==zahl5 || zahl9==zahl6 || zahl9==zahl7 || zahl9==zahl8);

     showStatus(Integer.toString(zahl1)); 
     showStatus(Integer.toString(zahl2)); 
     showStatus(Integer.toString(zahl3));
     showStatus(Integer.toString(zahl4));
     showStatus(Integer.toString(zahl5));
     showStatus(Integer.toString(zahl6));
     showStatus(Integer.toString(zahl7));
     showStatus(Integer.toString(zahl8));
     showStatus(Integer.toString(zahl9));

  }

   class JaListener implements ActionListener
  { 
       public void actionPerformed(ActionEvent e)
      {
         Object obj = e.getSource();
         if (obj instanceof Button)
         {
            j ++;
            repaint();
         }
      }   
   }
   
   class NeinListener implements ActionListener
  { 
       public void actionPerformed(ActionEvent e)
      {
         Object obj = e.getSource();
         if (obj instanceof Button)
         {
            n = true;
            repaint();
            gegner();
         }
      }   
   }

   class neustartListener implements ActionListener
  { 
       public void actionPerformed(ActionEvent e)
      {
         Object obj = e.getSource();
         if (obj instanceof Button)
         {
            rndm();
            j = 0;
            z = 0;
            n = false;
            w = 3;
            repaint();
         }
      }   
   }

   public void transform ()
  { 

  a = (zahl1)%8; switch (a) {case 0: a=11; break; case 1: a=7;break; case 2: a=8; break; case 3: a=9; break; case 4: a=10; break; case 5: a=2; break; case 6: a=3; break; case 7: a=4; break;}    
  b = (zahl2)%8; switch (b) {case 0: b=11; break; case 1: b=7;break; case 2: b=8; break; case 3: b=9; break; case 4: b=10; break; case 5: b=2; break; case 6: b=3; break; case 7: b=4; break;}
  c = (zahl3)%8; switch (c) {case 0: c=11; break; case 1: c=7;break; case 2: c=8; break; case 3: c=9; break; case 4: c=10; break; case 5: c=2; break; case 6: c=3; break; case 7: c=4; break;}
  d = (zahl4)%8; switch (d) {case 0: d=11; break; case 1: d=7;break; case 2: d=8; break; case 3: d=9; break; case 4: d=10; break; case 5: d=2; break; case 6: d=3; break; case 7: d=4; break;}
  e = (zahl5)%8; switch (e) {case 0: e=11; break; case 1: e=7;break; case 2: e=8; break; case 3: e=9; break; case 4: e=10; break; case 5: e=2; break; case 6: e=3; break; case 7: e=4; break;}
  f = (zahl6)%8; switch (f) {case 0: f=11; break; case 1: f=7;break; case 2: f=8; break; case 3: f=9; break; case 4: f=10; break; case 5: f=2; break; case 6: f=3; break; case 7: f=4; break;}
  g = (zahl7)%8; switch (g) {case 0: g=11; break; case 1: g=7;break; case 2: g=8; break; case 3: g=9; break; case 4: g=10; break; case 5: g=2; break; case 6: g=3; break; case 7: g=4; break;}
  h = (zahl8)%8; switch (h) {case 0: h=11; break; case 1: h=7;break; case 2: h=8; break; case 3: h=9; break; case 4: h=10; break; case 5: h=2; break; case 6: h=3; break; case 7: h=4; break;}
  l = (zahl9)%8; switch (l) {case 0: l=11; break; case 1: l=7;break; case 2: l=8; break; case 3: l=9; break; case 4: l=10; break; case 5: l=2; break; case 6: l=3; break; case 7: l=4; break;}
  }

   public void paint(Graphics p) 
  { 
    
    transform();
    s = 0;

    p.drawImage(kartenBilder[36], 0, 0, this);

    p.drawImage(kartenBilder[zahl1], 10, 10, this); s = s + a;
    p.drawImage(kartenBilder[zahl2], 100, 10, this); s = s + b;
   if (j > 0)
   {p.drawImage(kartenBilder[zahl3], 190, 10, this); s = s + c;
   }
   if (j > 1)
   {p.drawImage(kartenBilder[zahl4], 10, 150, this); s = s + d;
   }
   if (j > 2)
   {p.drawImage(kartenBilder[zahl5], 100, 150, this); s = s + e;
   }
   if (j > 3)
   {p.drawImage(kartenBilder[zahl6], 190, 150, this); s = s + f;
   }
   if (j > 4)
   {p.drawImage(kartenBilder[zahl7], 10, 292, this); s = s + g;
   }
   if (j > 5)
   {p.drawImage(kartenBilder[zahl8], 100, 292, this); s = s + h;
   }
   if (j > 6)
   {p.drawImage(kartenBilder[zahl9], 190, 292, this); s = s + l;
   }

   if (j > 7)
   {p.drawString("Du hast 4 Buben und 4 Damen bekommen (äußerst unwahrscheinlich),", 363, 230);
    p.drawString("möchtest die Grenzen dieses Wahnsinnsprogramms ausloten", 363,245);
    p.drawString("oder bist zu dämlich, um zu bemerken, dass du nicht mehr gewinnen kannst.",363,260);
   }
 
   p.drawString("Summe:" + s, 363, 50);
   p.drawString("Gewinnwahrscheinlichkeit:", 363, 65);

    if (s == 21)
    {p.drawImage(kartenBilder[33], 363, 80, this);
    }
    if (s > 21)
    {p.drawImage(kartenBilder[35], 363, 80, this);
    }   
    if (s < 21)
    {p.drawImage(kartenBilder[34], 363, 80, this);
    }

   if (n)
   {
    p.drawString("Der Computer hat " + z  + ".", 363, 300);

     switch (w) 
    {case 0: p.drawString( ergebnis[2], 363, 315); break; 
     case 1: p.drawString( ergebnis[0], 363, 315); break;
     case 2: p.drawString( ergebnis[1], 363, 315); break;
    }
   }



  }

}
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben