Jump to content


Boter Kaas En Eieren (Tic Tac Toe)


  • Please log in to reply
No replies to this topic

#1 mistery

mistery

    Newbie

  • Members
  • Pip
  • 1 posts

Posted 27 January 2012 - 12:00 PM

Hallo leuk dat jullie even de tijd nemen om te achterhalen waar de fout zit!

De applet deed tot op heden wat ik ervan zou verwachten. Totdat ik dit stukje code had gemaakt:

if(beurt==false){ //Hiermee wordt geregeld dat er wordt aangegeven wie er aan de beurt is.
g.fillRect(145, 10, 10,10);
g.drawString(naam1, 156,0);
g.drawString(naam2, 250,0);
}
else{
g.fillRect(300, 10, 10,10);
g.drawString(naam1, 156,0);
g.drawString(naam2, 250,0);
}


Het stukje code staat gelijk onder "public void paint(Graphics g) {".
De bedoeling is om de namen, die in het begin zijn ingevoerd en opgeslagen onder de String-variabelen naam1 en naam2,
te plaatsen inclusief een indicator die aangeeft wie er aan de beurt is.
De strings worden opgehaald door de eerste twee buttons onder "public void actionPerformed(ActionEvent e) {".

Ik hoop dat mijn probleem een beetje duidelijk is.
Mijn vraag is of jullie mij duidelijk kunnen maken waar de fout zit. Alvast super bedankt!

Het is een opdracht voor school.
Ik kom er op bepaalde punten niet uit, en de opdracht moet na het weekend ingeleverd worden. Kan de docent dus geen vragen meer stellen.

Andere vragen die ik nog heb zijn:
-Er moet een loop inkomen (for/while). Heeft iemand nog tips hoe ik dit kan implementeren?
De loop hoeft niet perse het spel te ondersteunen, kan ook een extra iets zijn. bv. een klok?

-Ik probeer er ook een score systeem in te krijgen. Dit is al best aardig gelukt, alleen zit er nog een rare fout in.
Als ik op de reset knop klik(om het spel nog een keer te spelen) wordt er automatisch een aantal punten bij de score opgeteld.
Dit is niet de bedoeling, want de punten zijn dan al bij de score opgeteld na winst.

Voorlopig is dit het, als er iets niet duidelijk is dan hoor ik het! Hier de code: (ps de reset knop zit ver rechts onder)

/**
* @(#)optellen.java
*
* optellen Applet application
*
* @author
* @version 1.00 2011/12/13
*/

import java.awt.*;
import java.applet.*;
import java.awt.event.*;

public class boterkaaseneieren extends Applet implements ActionListener {

Button lb, mb, rb, //De buttons, voor elke vak een button.
   lm, mm, rm,
   lo, mo, ro;
Button bcomputer, bpersoon, breset;
Boolean beurt, computer, einde; //Rondje of kruisje is aan de beurt.
int  score1 , score2; //Deze waarde bepaald het vak dat geklikt is.
int linksboven, middenboven, rechtsboven, //Dit is de waarde die bepaald of er al geklikt is op dit vak.
linksmidden, middenmidden, rechtsmidden,
linksonder, middenonder, rechtsonder;
String naam1, naam2, naam3;
TextField naaminvoer1, naaminvoer2, naaminvoer3;

public void init() {
setLayout(null);
beurt = false; //false is kruisje en true rondje
computer = false; //tegen de computer of tegen elkaar?
einde = false;   //als het spel is afgelopen, dan wordt deze boolean true.
linksboven  = 0;
middenboven = 0;
rechtsboven = 0;
linksmidden = 0;
middenmidden= 0;
rechtsmidden= 0;
linksonder  = 0;
middenonder = 0;
rechtsonder = 0;

naaminvoer1 = new TextField("naam van speler");
naaminvoer1.setBounds(0,0,150,20);
add(naaminvoer1);

naaminvoer2 = new TextField("naam van speler 1");
naaminvoer2.setBounds(250,0,150,20);
add(naaminvoer2);

naaminvoer3 = new TextField("naam van speler 2");
naaminvoer3.setBounds(250,20,150,20);
add(naaminvoer3);


bcomputer = new Button("human vs. computer");
bcomputer.addActionListener(this);
bcomputer.setBounds(0,0,250,300);
add(bcomputer);

bpersoon = new Button("human vs. human");
bpersoon.addActionListener(this);
bpersoon.setBounds(250,0,250,300);
add(bpersoon);

breset = new Button("nog een keer");
breset.addActionListener(this);
breset.setBounds(500,300,550,350);
add(breset);
breset.setVisible(false);

lb = new Button("");
lb.addActionListener(this);
lb.setBounds(160,50,70,65);
add(lb);


mb = new Button("");
mb.addActionListener(this);
mb.setBounds(230,50,70,65);
add(mb);

rb = new Button("");
rb.addActionListener(this);
rb.setBounds(300,50,70,65);
add(rb);

lm = new Button("");
lm.addActionListener(this);
lm.setBounds(160,115,70,65);
add(lm);

mm = new Button("");
mm.addActionListener(this);
mm.setBounds(230,115,70,65);
add(mm);

rm = new Button("");
rm.addActionListener(this);
rm.setBounds(300,115,70,65);
add(rm);

lo = new Button("");
lo.addActionListener(this);
lo.setBounds(160,180,70,65);
add(lo);

mo = new Button("");
mo.addActionListener(this);
mo.setBounds(230,180,70,65);
add(mo);

ro = new Button("");
ro.addActionListener(this);
ro.setBounds(300,180,70,65);
add(ro);


}


public void paint(Graphics g) {

if(beurt==false){ //Hiermee wordt geregeld dat er wordt aangegeven wie er aan de beurt is.
g.fillRect(145, 10, 10,10);
g.drawString(naam1, 156,0);
g.drawString(naam2, 250,0);
}
else{
g.fillRect(300, 10, 10,10);
g.drawString(naam1, 156,0);
g.drawString(naam2, 250,0);


}

if(computer==true){

//if(linksboven==1 && beurt==true){
// if(middenboven==0 && rechtsboven==0){
// if(linksmidden==0 && middenmidden==0){
// if(rechtsmidden==0 && linksonder==0){
// if(middenonder==0 && rechtsonder==0){
// beurt=false;
// rb.setVisible(false);
// rechtsboven=2;
// }
// }
// }
// }





if(linksboven==0 && beurt==true){
linksboven = 2;
lb.setVisible(false);
beurt = false;
}
if(middenboven==0 && beurt ==true){
middenboven = 2;
mb.setVisible(false);
beurt = false;
}
if(rechtsboven==0 && beurt ==true){
rechtsboven = 2;
rb.setVisible(false);
beurt = false;
}
if(linksmidden==0 && beurt ==true){
linksmidden = 2;
lm.setVisible(false);
beurt = false;
}
if(middenmidden==0 && beurt ==true){
middenmidden = 2;
mm.setVisible(false);
beurt = false;
}
if(rechtsmidden==0 && beurt ==true){
rechtsmidden = 2;
rm.setVisible(false);
beurt = false;
}
if(linksonder==0 && beurt ==true){
linksonder = 2;
lo.setVisible(false);
beurt = false;
}
if(middenonder==0 && beurt ==true){
middenonder = 2;
mo.setVisible(false);
beurt = false;
}
if(rechtsonder==0 && beurt ==true){
rechtsonder = 2;
ro.setVisible(false);
beurt = false;
}

}



g.drawString("Boter kaas en eieren", 50, 60 );
g.drawString("Stand",230,10);
g.drawString("" + score1, 220,20);
g.drawString("" + score2, 265,20);






g.drawLine(230,50,230,245);  //verticale assen
g.drawLine(300,50,300,245);

g.drawLine(160,115,370,115); //horizontale assen
g.drawLine(160,180,370,180);

// g.setColor(Color.white);
// g.drawOval(165, 55, 60, 55);  //ovaal links boven
/// g.drawLine(160,50,230,115);  //kruis links boven
// g.drawLine(230,50,160,115);

// g.drawOval(235, 55, 60, 55); //ovaal midden boven
// g.drawLine(230,50,300,115); //kruis midden boven
// g.drawLine(300,50,230,115);

// g.drawOval(305, 55, 60, 55); //ovaal rechts boven
// g.drawLine(300,50,370,115); //kruis rechts boven
// g.drawLine(370,50,300,115);

// g.drawOval(165,120, 60, 55); //ovaal links midden
// g.drawLine(160,115,230,180); //kruis links midden
// g.drawLine(230,115,160,180);

// g.drawOval(235, 120, 60, 55); //ovaal midden midden
// g.drawLine(230,115,300,180); //kruis midden midden
// g.drawLine(230,180,300,115);

// g.drawOval(305, 120, 60, 55); //ovaal rechts midden
// g.drawLine(300,115,370,180); //kruis rechts midden
// g.drawLine(300,180,370,115);

// g.drawOval(165, 185, 60, 55); //ovaal links onder
// g.drawLine(160,245,230,180); //kruis links onder
// g.drawLine(160,180,230,245);

// g.drawOval(235, 185, 60, 55); //ovaal midden onder
// g.drawLine(230,180,300,245); //kruis midden onder
// g.drawLine(230,245,300,180);

// g.drawOval(305,185,60,55); //ovaal rechts onder
// g.drawLine(300,180,370,245); //kruis rechts onder
// g.drawLine(300,245,370,180);

if(linksboven==1){
g.setColor(Color.green);
g.drawLine(160,50,230,115);
g.drawLine(230,50,160,115);
}
if(linksboven==2){
g.setColor(Color.green);
g.drawOval(165, 55, 60, 55);
}

if(middenboven==1){
g.setColor(Color.green);
g.drawLine(230,50,300,115);
g.drawLine(300,50,230,115);
}
if(middenboven==2){
g.setColor(Color.green);
g.drawOval(235, 55, 60, 55);
}


if(rechtsboven==1){
g.setColor(Color.green);
g.drawLine(300,50,370,115);
g.drawLine(370,50,300,115);
}
if(rechtsboven==2){
g.setColor(Color.green);
g.drawOval(305, 55, 60, 55);
}


if(linksmidden==1){
g.setColor(Color.green);
g.drawLine(160,115,230,180);
g.drawLine(230,115,160,180);
}
if(linksmidden==2){
g.setColor(Color.green);
g.drawOval(165,120, 60, 55);
}


if(middenmidden==1){
g.setColor(Color.green);
g.drawLine(230,115,300,180);
g.drawLine(230,180,300,115);
}
if(middenmidden==2){
g.setColor(Color.green);
g.drawOval(235, 120, 60, 55);
}

if(rechtsmidden==1){
g.setColor(Color.green);
g.drawLine(300,115,370,180);
g.drawLine(300,180,370,115);
}
if(rechtsmidden==2){
g.setColor(Color.green);
g.drawOval(305, 120, 60, 55);
}

if(linksonder==1){
g.setColor(Color.green);
g.drawLine(160,245,230,180);
g.drawLine(160,180,230,245);
}
if(linksonder==2){
g.setColor(Color.green);
g.drawOval(165, 185, 60, 55);
}

if(middenonder==1){
g.setColor(Color.green);
g.drawLine(230,180,300,245);
g.drawLine(230,245,300,180);
}
if(middenonder==2){
g.setColor(Color.green);
g.drawOval(235, 185, 60, 55);
}

if(rechtsonder==1){
g.setColor(Color.green);
g.drawLine(300,180,370,245);
g.drawLine(300,245,370,180);
}
if(rechtsonder==2){
g.setColor(Color.green);
g.drawOval(305,185,60,55);
}


g.setColor(Color.red);
if((linksboven == 1)&&(middenboven == 1)&&(rechtsboven == 1)){
  g.drawString("ONDERSTE RIJ = 3X", 50, 260 );
  g.drawLine(160,83,370,83);
  score1=score1 + 1;
  breset.setVisible(true);
  
}
if((linksboven == 2)&&(middenboven == 2)&&(rechtsboven == 2)){
  g.drawString("ONDERSTE RIJ = 3O", 50, 260 );
  g.drawLine(160,83,370,83);
  score2=score2 + 1;
  breset.setVisible(true);
}

if((linksmidden == 1)&&(middenmidden == 1)&&(rechtsmidden == 1)) {
g.drawString("ONDERSTE RIJ = 3X", 50, 260 );
g.drawLine(160,147,370,147);
score1=score1 + 1;
breset.setVisible(true);
}
if((linksmidden == 2)&&(middenmidden == 2)&&(rechtsmidden == 2)) {
g.drawString("ONDERSTE RIJ = 3O", 50, 260 );
g.drawLine(160,147,370,147);
  score2=score2 + 1;
  breset.setVisible(true);
}

if((linksonder == 1)&&(middenonder == 1)&&(rechtsonder == 1)){
g.drawString("ONDERSTE RIJ = 3X", 50, 260 );
g.drawLine(160,213,370,213);
score1=score1 + 1;
breset.setVisible(true);
}
if((linksonder == 2)&&(middenonder == 2)&&(rechtsonder == 2)){
  g.drawString("ONDERSTE RIJ = 3O", 50, 260 );
  g.drawLine(160,213,370,213);
   score2=score2 + 1;
   breset.setVisible(true);
}

if((linksboven == 1)&&(linksmidden == 1)&&(linksonder == 1)){
  g.drawString("ONDERSTE RIJ = 3X", 50, 260 );
  g.drawLine(195,50,195,245);
  score1=score1 + 1;
  breset.setVisible(true);
}
if((linksboven == 2)&&(linksmidden == 2)&&(linksonder == 2)){
  g.drawString("ONDERSTE RIJ = 3O", 50, 260 );
  g.drawLine(195,50,195,245);
   score2=score2 + 1;
   breset.setVisible(true);
}

if((middenboven == 1)&&(middenmidden == 1)&&(middenonder == 1)) {
g.drawString("ONDERSTE RIJ = 3X", 50, 260 );
g.drawLine(265,50,265,245);
score1=score1 + 1;
breset.setVisible(true);
// einde = true; //nog in de maak zie de while functie.
// breset.setVisible(true);
}
if((middenboven == 2)&&(middenmidden == 2)&&(middenonder == 2)){
  g.drawString("ONDERSTE RIJ = 3O", 50, 260 );
  g.drawLine(265,50,265,245);
   score2=score2 + 1;
   breset.setVisible(true);
}

if((rechtsboven == 1)&&(rechtsmidden == 1)&&(rechtsonder == 1)){
  g.drawString("ONDERSTE RIJ = 3X", 50, 260 );
  g.drawLine(335,50,335,245);
  score1=score1 + 1;
  breset.setVisible(true);
}
if((rechtsboven == 2)&&(rechtsmidden == 2)&&(rechtsonder == 2)){
  g.drawString("ONDERSTE RIJ = 3O", 50, 260 );
  g.drawLine(335,50,335,245);
   score2=score2 + 1;
   breset.setVisible(true);
}

if((linksboven == 1)&&(middenmidden == 1)&&(rechtsonder == 1)){
  g.drawString("ONDERSTE RIJ = 3X", 50, 260 );
  g.drawLine(160,50,370,245);
  score1=score1 + 1;
  breset.setVisible(true);
}
if((linksboven == 2)&&(middenmidden == 2)&&(rechtsonder == 2)){
  g.drawString("ONDERSTE RIJ = 3O", 50, 260 );
  g.drawLine(160,50,370,245);
   score2=score2 + 1;
   breset.setVisible(true);
}

if((linksonder == 1)&&(middenmidden == 1)&&(rechtsboven == 1)){
  g.drawString("ONDERSTE RIJ = 3X", 50, 260 );
  g.drawLine(160,245,370,50);
  score1=score1 + 1;
  breset.setVisible(true);
}
if((linksonder == 2)&&(middenmidden == 2)&&(rechtsboven == 2)){
  g.drawString("ONDERSTE RIJ = 3O", 50, 260 );
  g.drawLine(160,245,370,50);
   score2=score2 + 1;
   breset.setVisible(true);
}
// while(einde==true){    //het veld onbespeelbaar maken als het afgelopen is.
// g.setColor(Color.white);
// if(linksboven==0){
// lb.setVisible(false);
// g.fillRect(160,50,230,115);
// }
// if(middenboven==0){
// mb.setVisible(false);
// g.fillRect(230,50,300,115);
// }
// if(rechtsboven==0){
// rb.setVisible(false);
// g.fillRect(300,50,370,115);
// }
// if(linksmidden==0){
// lm.setVisible(false);
// g.fillRect(160,115,230,180);
// }
// if(middenmidden==0){
// mm.setVisible(false);
// g.fillRect(230,115,300,180);
// }
// if(rechtsmidden==0){
// rm.setVisible(false);
// g.fillRect(300,115,370,180);
// }
// if(linksonder==0){
// lo.setVisible(false);
// g.fillRect(160,180,230,245);
// }
// if(middenonder==0){
// mo.setVisible(false);
// g.fillRect(230,180,300,245);
// }
// if(rechtsonder==0){
// ro.setVisible(false);
// g.fillRect(300,180,370,245);
// }



// if(e.getSource()==breset){
// einde=false;
// breset.setVisible(false);
// }


}


public void actionPerformed(ActionEvent e) {



if(e.getSource()==bcomputer){
bcomputer.setVisible(false);
bpersoon.setVisible(false);
score1=0;
score2=0;
breset.setVisible(false);
computer=true;
String naam1=naaminvoer1.getText();
String naam2="computer";
naaminvoer1.setVisible(false);
naaminvoer2.setVisible(false);
naaminvoer3.setVisible(false);
}
if(e.getSource()==bpersoon){
bcomputer.setVisible(false);
bpersoon.setVisible(false);
score1=0;
score2=0;
breset.setVisible(false);
String naam1=naaminvoer1.getText();
String naam2=naaminvoer2.getText();
naaminvoer1.setVisible(false);
naaminvoer2.setVisible(false);
naaminvoer3.setVisible(false);
}



if((e.getSource()==lb)&&(beurt==false)){
linksboven = 1;
lb.setVisible(false);
beurt = true;
}
else if((e.getSource()==lb)&&(beurt==true)){
linksboven = 2;
lb.setVisible(false);
beurt = false;
}

if((e.getSource()==mb)&&(beurt==false)){
middenboven = 1;
mb.setVisible(false);
beurt = true;
}
else if((e.getSource()==mb)&&(beurt==true)){
middenboven = 2;
mb.setVisible(false);
beurt = false;
}

if((e.getSource()==rb)&&(beurt==false)){
rechtsboven = 1;
rb.setVisible(false);
beurt = true;
}
else if((e.getSource()==rb)&&(beurt==true)){
rechtsboven = 2;
rb.setVisible(false);
beurt = false;
}

if((e.getSource()==lm)&&(beurt==false)){
linksmidden = 1;
lm.setVisible(false);
beurt = true;
}
else if((e.getSource()==lm)&&(beurt==true)){
linksmidden = 2;
lm.setVisible(false);
beurt = false;
}

if((e.getSource()==mm)&&(beurt==false)){
middenmidden = 1;
mm.setVisible(false);
beurt = true;
}
else if((e.getSource()==mm)&&(beurt==true)){
middenmidden = 2;
mm.setVisible(false);
beurt = false;
}

if((e.getSource()==rm)&&(beurt==false)){
rechtsmidden = 1;
rm.setVisible(false);
beurt = true;
}
else if((e.getSource()==rm)&&(beurt==true)){
rechtsmidden = 2;
rm.setVisible(false);
beurt = false;
}

if((e.getSource()==lo)&&(beurt==false)){
linksonder = 1;
lo.setVisible(false);
beurt = true;
}
else if((e.getSource()==lo)&&(beurt==true)){
linksonder = 2;
lo.setVisible(false);
beurt = false;
}

if((e.getSource()==mo)&&(beurt==false)){
middenonder = 1;
mo.setVisible(false);
beurt = true;
}
else if((e.getSource()==mo)&&(beurt==true)){
middenonder = 2;
mo.setVisible(false);
beurt = false;
}

if((e.getSource()==ro)&&(beurt==false)){
rechtsonder = 1;
ro.setVisible(false);
beurt = true;
}
else if((e.getSource()==ro)&&(beurt==true)){
rechtsonder = 2;
ro.setVisible(false);
beurt = false;
}
if(e.getSource()==breset){
linksboven  = 0;
middenboven = 0;
rechtsboven = 0;
linksmidden = 0;
middenmidden= 0;
rechtsmidden= 0;
linksonder  = 0;
middenonder = 0;
rechtsonder = 0;

beurt=false;

lb.setVisible(true);
mb.setVisible(true);
rb.setVisible(true);
lm.setVisible(true);
mm.setVisible(true);
rm.setVisible(true);
lo.setVisible(true);
mo.setVisible(true);
ro.setVisible(true);

breset.setVisible(false);
}

repaint();
}



}