Avatar billede fajsa Nybegynder
24. april 2005 - 13:13 Der er 14 kommentarer og
2 løsninger

Udvidet enarmet tyveknægt

Lavede engang et spørgsmål til min enarmede tyveknægt.
Nu har jeg dog tænkt på at udvide den en smule mere.

Lige nu, så køre alle 3 felter på maskinen, når man trykker på en knap.
Nu kunne jeg så godt tænke mig at lave det sådan at, man kan vælge at en eller flere af felterne som ikke køre, når man trykker på knappen. Ligesom det er på en rigtig en armet tyveknægt.
Nogen ideer?

public class spillemaskine extends Applet  implements MouseListener, MouseMotionListener
  {
    Terning t1;
    Terning t2;
    Terning t3;
    Rectangle klikfelt;
    Point klikpunkt;
    int a, b, counter = 500;
    TextField field;



    public void init()
        {
          t1=new Terning();
          t2=new Terning();
          t3=new Terning();
          klikfelt = new Rectangle(300,50,50,50);
          klikpunkt = new Point();
          this.addMouseListener(this);
          this.addMouseMotionListener(this);
          field = new TextField(4);
          add( field );
        }



        public void paint(Graphics g){

          t1.kast();
          t2.kast();
          t3.kast();

          g.setColor(Color.blue);
          g.fillRect(75,0,300,125);

          g.setColor(Color.black);
          g.drawOval(300, 50, 50, 50);

          if (t1.vaerdi == 1) {
            Image billede = getImage(getCodeBase(), "dronning.gif");
            g.drawImage(billede, 200, 75, this);
          }
          if (t1.vaerdi == 2) {
            Image billede = getImage(getCodeBase(), "sortTaarn.gif");
            g.drawImage(billede, 200, 75, this);
          }
          if (t1.vaerdi == 3) {
            Image billede = getImage(getCodeBase(), "springer.gif");
            g.drawImage(billede, 200, 75, this);
          }

          if (t2.vaerdi == 1) {
            Image billede = getImage(getCodeBase(), "dronning.gif");
            g.drawImage(billede, 150, 75, this);
          }
          if (t2.vaerdi == 2) {
            Image billede = getImage(getCodeBase(), "sortTaarn.gif");
            g.drawImage(billede, 150, 75, this);
          }
          if (t2.vaerdi == 3) {
            Image billede = getImage(getCodeBase(), "springer.gif");
            g.drawImage(billede, 150, 75, this);
          }

          if (t3.vaerdi == 1) {
            Image billede = getImage(getCodeBase(), "dronning.gif");
            g.drawImage(billede, 100, 75, this);
          }
          if (t3.vaerdi == 2) {
            Image billede = getImage(getCodeBase(), "sortTaarn.gif");
            g.drawImage(billede, 100, 75, this);
          }
          if (t3.vaerdi == 3) {
            Image billede = getImage(getCodeBase(), "springer.gif");
            g.drawImage(billede, 100, 75, this);
          }

          g.drawString("Point: ",145,23);

          score(); // Ny metode som opsummerer spillers score



        }

        private void score(){
            if(t1.vaerdi == t2.vaerdi && t1.vaerdi == t3.vaerdi)
                counter +=25;  //  Gevinst !

                else
                  counter -= 2;// Spillers indsats betales hvergang der ikke er gevinst

            field.setText("" + counter);
            }


        public void mousePressed(MouseEvent hændelse) // kræves af MouseListener
          {
          klikpunkt = hændelse.getPoint();
            a = klikpunkt.x;
            b = klikpunkt.y;

          if ( klikfelt.contains(a,b) )
            {
              repaint();

            }
          }

            public void mouseReleased (MouseEvent hændelse){} // kræves af MouseListener
            public void mouseDragged (MouseEvent hændelse){}// kræves af MouseListener
            public void mouseClicked (MouseEvent event) {}    // kræves af MouseListener
            public void mouseEntered (MouseEvent event) {}    // kræves af MouseListener
            public void mouseExited (MouseEvent event) {}    // kræves af MouseListener
            public void mouseMoved (MouseEvent hændelse) {}// kræves af MouseMotionListener
}
Avatar billede kalp Novice
24. april 2005 - 13:16 #1
t1.kast();
t2.kast();
t3.kast();

er det dem som får de 3 til at bevæge sig?

du kan jo lave en checkbox under dem eller et eller andet som kan indikere hvilke man gerne vil have ikke drejer.. og så kan du lave en omgang nested if sætninger for at finde ud af hvilke der skal afvikles af disse

t1.kast();
t2.kast();
t3.kast();
Avatar billede fajsa Nybegynder
24. april 2005 - 13:38 #2
nåå ja det er rigtigt. de der t.kast, er bare en meget simpel tilfældighedsgenerator.

tror godt jeg kan se hvad du mener, men har lige et par spørgsmål.

skal der så være en if sætning for hver kombinationer? altså en if sætning hvis ingen er checket, og en if sætning for når den første er checket osv.

hvordan kan man checke om en checkbox er checket?
Avatar billede kalp Novice
24. april 2005 - 13:45 #3
Man kan vel max holde på 2.. så noget lignende..


if(jCheckBox1.isSelected())
t2.kast();
t3.kast();
else if(jCheckBox2.isSelected())
t1.kast();
t3.kast();
else if(jCheckBox3.isSelected())
t2.kast();
t1.kast();
else if (jCheckBox1.isSelected() && jCheckBox2.isSelected())
t3.kast();
else if (jCheckBox1.isSelected() && jCheckBox3.isSelected())
t2.kast();
else if (jCheckBox2.isSelected() && jCheckBox3.isSelected())
t1.kast();
Avatar billede kalp Novice
24. april 2005 - 13:46 #4
if(jCheckBox1.isSelected())
t2.kast();
t3.kast();
else if(jCheckBox2.isSelected())
t1.kast();
t3.kast();
else if(jCheckBox3.isSelected())
t2.kast();
t1.kast();
else if (jCheckBox1.isSelected() && jCheckBox2.isSelected())
t3.kast();
else if (jCheckBox1.isSelected() && jCheckBox3.isSelected())
t2.kast();
else if (jCheckBox2.isSelected() && jCheckBox3.isSelected())
t1.kast();
else
t1.kast();
t2.kast();
t3.kast();

glemte lige else til sidst.
Avatar billede fajsa Nybegynder
24. april 2005 - 13:59 #5
Ser godt ud :D

men igen et noob spørgsmål:
Hvordan laver man en checkbox?
Avatar billede kalp Novice
24. april 2005 - 14:01 #6
private JCheckBox jCheckBox1 = new JCheckBox();
jCheckBox1.setText("jCheckBox1");
jCheckBox1.setBounds(new Rectangle(205, 60, 77, 23));
Avatar billede fajsa Nybegynder
24. april 2005 - 14:50 #7
når jeg indsætter din kode, siger den, at der er "else without if line"
Avatar billede kalp Novice
24. april 2005 - 14:52 #8
if(jCheckBox1.isSelected()){
t2.kast();
t3.kast();}
else if(jCheckBox2.isSelected()){
t1.kast();
t3.kast();}
else if(jCheckBox3.isSelected()){
t2.kast();
t1.kast();}
else if (jCheckBox1.isSelected() && jCheckBox2.isSelected())
t3.kast();
else if (jCheckBox1.isSelected() && jCheckBox3.isSelected())
t2.kast();
else if (jCheckBox2.isSelected() && jCheckBox3.isSelected())
t1.kast();
else if (!jCheckBox2.isSelected() && !jCheckBox3.isSelected()!jCheckBox1.isSelected())
{
t1.kast();
t2.kast();
t3.kast();
}
Avatar billede fajsa Nybegynder
24. april 2005 - 14:56 #9
hmm, ja du må virkelig undskylde, min uvidenhed, men jeg kan ikke finde ud af at få den checkbox sat ind.
Hvor præcist skal den være?
Avatar billede kalp Novice
24. april 2005 - 14:59 #10
private JCheckBox jCheckBox1 = new JCheckBox();
skal være sammen med resten af dine attributter.. dvs sammen med

Terning t1;
    Terning t2;
    Terning t3;

jCheckBox1.setText("jCheckBox1");
jCheckBox1.setBounds(new Rectangle(205, 60, 77, 23));

skal smides ind i koden et sted sammen med det andet:)
men måske hedder det noget andet en JCheckBox hos dig.. jeg programmere med jDeveloper så det er bare drag and drop.
Avatar billede fajsa Nybegynder
24. april 2005 - 15:05 #11
sætter jeg "private JCheckBox jCheckBox1 = new JCheckBox();" ind sammen med de andre attributer, siger den "cannot resolve symbol: class CheckBox in class spillemaskine at line 18 (18:13)". Jeg bruger Jbuilder, tror du det er pga. det er to forskellige programmer?
Avatar billede kalp Novice
24. april 2005 - 15:08 #12
ja... men i jbuilder må det jo hedde noget meget lignende det.. hvis du laver en grafisk gui i jbuilder så kan du også lave præcis samme trick.. altså drag and drop og se i source koden hvad den hedder... evt. kigge i help for jbuilder..
Avatar billede fajsa Nybegynder
24. april 2005 - 17:05 #13
')' expected at line 57 (57:72)

hvilket er i else if (!jCheckBox2.isSelected() && !jCheckBox3.isSelected()!jCheckBox1.isSelected())

kan du se hvad fejlen er? selvom jeg sætter && ind, siger den det stadig.
Avatar billede kalp Novice
24. april 2005 - 17:08 #14
prøv disse

(!jCheckBox2.isSelected() && !jCheckBox3.isSelected() && !jCheckBox1.isSelected())

(jCheckBox2.isSelected() == false && jCheckBox3.isSelected() == false && CheckBox1.isSelected() == false)
Avatar billede kalp Novice
30. september 2005 - 11:57 #15
Du har ikke fået afsluttet spørgsmålet efter os.
Er du i tvivl om hvordan det skal gøres så læs her:)

http://expfaq.1go.dk/?id=3#behandling_af_svar
Avatar billede trp79 Nybegynder
10. oktober 2005 - 07:39 #16
Vi prøver lige igen... lukke tid?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester