Risk maken met Java eclips

Status
Niet open voor verdere reacties.

WillyBogard

Gebruiker
Lid geworden
8 dec 2011
Berichten
12
Hallo voor een school project ben ik 2 maanden geleden begonnen met het leren van Java. Het is erg lastig en we proberen het bekende spel Risk te maken.

We hebben de kaart al getekend maar waar ik nu tegen aan loop is dat ik de landen wil verdelen onder 2 spelers via mathrandom. Ik krijg het voor elkaar om de landen toe te wijzen naar een speler maar het lukt niet om te stoppen als elke speler 21 landen in zijn bezit heeft (Er zijn namelijk 42 landen).

In de ene class:
Code:
public class Land 
{
	int nummer;
	double x;
	double y;
	String naam;
	int  aantalBuren;
	int[] buren = new int[6];
	int werelddeel;
	int eigenaar;
		
    // public Land (nummertje, x0, y0, naampje, aantalBuurtjes, buurtjes, continent, baas)
	public Land(int nummertje, double x0, double y0, String naampje, int aantalBuurtjes, int[] buurtjes, int continent, int baas)
	{
		nummer = nummertje;
		x = x0;
		y = y0;
		naam = naampje;
		buren = buurtjes;
		aantalBuren = aantalBuurtjes;
		werelddeel = continent;
		eigenaar = baas;
		
	}

}



Andere class:

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


public class Risk extends Applet 
						
	Land [] speelbord = new Land[43];
	int[][] verbinding = 
	{
	{0,  0,  0,  0,  0,  0},
	{2,  3,  4,  5,  0,  0},//1
	{1,  4,  27, 0,  0,  0},//2
	{1,  5,  7,  9,  0,  0},//3
	{1,  2,  5,  6,  0,  0},//4
	{1,  3,  4,  6,  7,  8},//5
	{4,  8,  14, 0,  0,  0},//6
	{3,  5,  8,  9,  0,  0},//7
	{5,  6,  7,  0,  0,  0},//8
	{3,  7,  10, 0,  0,  0},//9
	{9,  11, 12, 0,  0,  0},//10
	{10, 12, 13, 0,  0,  0},//11
	{10, 11, 13, 21, 0,  0},//12
	{11, 12, 0,  0,  0,  0},//13
	{6,  15, 16, 0,  0,  0},//14
	{14, 16, 17, 18, 0,  0},//15
	{14, 15, 17, 19, 0,  0},//16
	{15, 16, 18, 19, 20, 0},//17
	{15, 17, 20, 32, 35, 36},//18
	{16, 17, 20, 21, 0,  0},//19
	{17, 18, 19, 21, 22, 36},//20
	{12, 19, 20, 22, 23, 24},//21
	{20, 21, 24, 36, 0,  0},//22
	{12, 21, 24, 25, 0,  0},//23
	{21, 22, 23, 26, 36, 0},//24
	{23, 24, 26,  0,  0, 0},//25
	{24, 25, 0,  0,  0,  0},//26
	{2,  28, 29, 31, 33, 0},//27
	{27, 30, 31, 0,  0,  0},//28
	{27, 33, 0,  0,  0,  0},//29
	{28, 31, 32, 33, 34, 0},//30
	{27, 28, 30, 33, 0,  0},//31
	{18, 30, 34, 35, 0,  0},//32
	{27, 29, 30, 31, 34, 0},//33
	{30, 32, 33, 35, 37, 38},//34
	{18, 32, 34, 36, 37, 0},//35
	{18, 20, 22, 24, 35, 37},//36
	{34, 35, 36, 38, 0,  0},//37
	{34, 37, 39, 0,  0,  0},//38
	{38, 40, 41, 0,  0,  0},//39
	{39, 41, 42, 0,  0,  0},//40
	{39, 40, 42, 0,  0,  0},//41
	{40, 41, 0,  0,  0,  0}	//42
	};
    	
	public void init()
	{
		 // public Land (nummertje, x0, y0, naampje, aantalBuurtjes, buurtjes, continent, baas)
        speelbord[0] = new Land(0,  0,     0,     "", 0, verbinding[0],   0, 0);
        speelbord[1] = new Land(1,  62.5,  37.5,  "", 4, verbinding[1],   1, 0);
        speelbord[2] = new Land(2,  162.5, 37.5 , "", 3, verbinding[2],   1, 0);
        speelbord[3] = new Land(3,  37.5,  112.5, "", 4, verbinding[3],   1, 0);
        speelbord[4] = new Land(4,  137.5, 112.5, "", 4, verbinding[4],   1, 0);
        speelbord[5] = new Land(5,  87.5,  162.5, "", 6, verbinding[5],   1, 0);
        speelbord[6] = new Land(6,  162.5, 187.5, "", 3, verbinding[6],   1, 0);
        speelbord[7] = new Land(7,  62.5,  237.5, "", 4, verbinding[7],   1, 0);
        speelbord[8] = new Land(8,  137.5, 237.5, "", 3, verbinding[8],   1, 0);
        speelbord[9] = new Land(9,  37.5,  312.5, "", 3, verbinding[9],   1, 0);
        speelbord[10]= new Land(10, 87.5,  387.5, "", 3, verbinding[10],  2, 0);
        speelbord[11]= new Land(11, 62.5,  462.5, "", 3, verbinding[11],  2, 0);
        speelbord[12]= new Land(12, 162.5, 437.5, "", 4, verbinding[12],  2, 0);
        speelbord[13]= new Land(13, 112.5, 512.5, "", 2, verbinding[13],  2, 0);
        speelbord[14]= new Land(14, 237.5, 112.5, "", 3, verbinding[14],  3, 0);
        speelbord[15]= new Land(15, 312.5, 112.5, "", 4, verbinding[15],  3, 0);
        speelbord[16]= new Land(16, 237.5, 187.5, "", 4, verbinding[16],  3, 0);
        speelbord[17]= new Land(17, 312.5, 212.5, "", 5, verbinding[17],  3, 0);
        speelbord[18]= new Land(18, 387.5, 212.5, "", 6, verbinding[18],  3, 0);
        speelbord[19]= new Land(19, 237.5, 262.5, "", 4, verbinding[19],  3, 0);
        speelbord[20]= new Land(20, 337.5, 287.5, "", 6, verbinding[20],  3, 0);
        speelbord[21]= new Land(21, 262.5, 362.5, "", 6, verbinding[21],  4, 0);
        speelbord[22]= new Land(22, 362.5, 362.5, "", 4, verbinding[22],  4, 0);
        speelbord[23]= new Land(23, 237.5, 462.5, "", 4, verbinding[23],  4, 0);
        speelbord[24]= new Land(24, 362.5, 437.5, "", 5, verbinding[24],  4, 0);
        speelbord[25]= new Land(25, 287.5, 537.5, "", 3, verbinding[25],  4, 0);
        speelbord[26]= new Land(26, 387.5, 512.5, "", 2, verbinding[26],  4, 0);
        speelbord[27]= new Land(27, 712.5, 37.5,  "", 5, verbinding[27],  5, 0);
        speelbord[28]= new Land(28, 662.5, 62.5,  "", 3, verbinding[28],  5, 0);
        speelbord[29]= new Land(29, 762.5, 87.5,  "", 2, verbinding[29],  5, 0);
        speelbord[30]= new Land(30, 587.5, 112.5, "", 5, verbinding[30],  5, 0);
        speelbord[31]= new Land(31, 697.5, 122.5, "", 4, verbinding[31],  5, 0);
        speelbord[32]= new Land(32, 462.5, 137.5, "", 4, verbinding[32],  5, 0);
        speelbord[33]= new Land(33, 737.5, 192.5, "", 5, verbinding[33],  5, 0);
        speelbord[34]= new Land(34, 637.5, 187.5, "", 6, verbinding[34],  5, 0);
        speelbord[35]= new Land(35, 537.5, 237.5, "", 5, verbinding[35],  5, 0);
        speelbord[36]= new Land(36, 487.5, 337.5, "", 6, verbinding[36],  5, 0);
        speelbord[37]= new Land(37, 612.5, 362.5, "", 4, verbinding[37],  5, 0);
        speelbord[38]= new Land(38, 712.5, 337.5, "", 3, verbinding[38],  5, 0);
        speelbord[39]= new Land(39, 662.5, 437.5, "", 3, verbinding[39],  6, 0);
        speelbord[40]= new Land(40, 737.5, 437.5, "", 3, verbinding[40],  6, 0);
        speelbord[41]= new Land(41, 687.5, 512.5, "", 3, verbinding[41],  6, 0);
        speelbord[42]= new Land(42, 762.5, 487.5, "", 2, verbinding[42],  6, 0);
	}	
       
	public void paint(Graphics gr)
	{	
	
		double p;
        int i, j, q;
        p = Math.random() * 42+1;
        q = (int) p;
        maxlanden = 21;
        for (i=0;i<43;i++)
        
        	if (speelbord[i]==speelbord[q])
        		speelbord[i].eigenaar = 1;
        
        
        	
        
  
        	
        	
        

	//tekenen van de landen en de verbindingslijntjes
		
	//werelddelen
		gr.setColor(Color.RED);
		gr.fillRect(20, 20, 165, 310);
		gr.setColor(Color.PINK);
		gr.fillRect(45, 365, 140, 165);
		gr.setColor(Color.BLUE);
		gr.fillRect(220, 95, 185, 210);
		gr.setColor(Color.ORANGE);
		gr.fillRect(220, 340, 190, 220);
		gr.setColor(Color.GREEN);
		gr.fillRect(445, 20, 335, 360);
		gr.setColor(Color.CYAN);
		gr.fillRect(645, 420, 135, 110);
	//verbindingslijntjes
		for(i=1; i<43; i++)
			for(j=0; j<speelbord[i].aantalBuren; j++)
			{
				gr.setColor(Color.BLACK);
				gr.drawLine((int) speelbord[i].x, (int) speelbord[i].y, (int) speelbord[speelbord[i].buren[j]].x,(int) speelbord[speelbord[i].buren[j]].y);
			}
	//landen
		for (i=1;i<43;i++)
		{
			if ((int)speelbord[i].eigenaar == 0)
				gr.setColor(Color.WHITE);
			if ((int)speelbord[i].eigenaar == 1)
				gr.setColor(Color.BLACK);
				gr.fillOval((int) speelbord[i].x -15, (int) speelbord[i].y -15, 30, 30);
			gr.setColor(Color.BLACK);
			gr.drawOval((int) speelbord[i].x -15, (int) speelbord[i].y -15, 30, 30);
		}	
		
		
		
	}
	
}



Hoop dat er iemand is die er veel verstand van heeft en mij kan helpen.

Alvast Bedankt ;)
 
Laatst bewerkt door een moderator:
Graag je code tussen "code" tags zetten dat is wel zo prettig.

De best manier om dit aan te pakken (mijns inziens :) ) is een array te nemen en daar de inhoud van te husselen. Vervolgens geef je speler 1 land 1 t/m 21 en speler 2 22 t/m 42. Dit heeft als voordeel dat je ook eenvoudig kan werken met een neutrale partij of meerdere spelers.
 
Bedankt dat probleem is inmiddels al opgelost (uiteindelijk iets anders geprobeerd) maar het willekeurig verdelen van de gebieden werkt ;)

Maar nu het volgende probleem:
Nu wil ik dat elk land aangeklikt kan worden.

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


public class Risk extends Applet 
      implements MouseListener
          
{ 
int xpos, ypos, CircelxCo, CircelyCo, Breedte, Hoogte;
boolean CircelClicked;

 Land [] speelbord = new Land[43];
 int[][] verbinding = 
 {
 {0,  0,  0,  0,  0,  0},//0
 {2,  3,  4,  5,  0,  0},//1
 {1,  4,  27, 0,  0,  0},//2
 {1,  5,  7,  9,  0,  0},//3
 {1,  2,  5,  6,  0,  0},//4
 {1,  3,  4,  6,  7,  8},//5
 {4,  8,  14, 0,  0,  0},//6
 {3,  5,  8,  9,  0,  0},//7
 {5,  6,  7,  0,  0,  0},//8
 {3,  7,  10, 0,  0,  0},//9
 {9,  11, 12, 0,  0,  0},//10
 {10, 12, 13, 0,  0,  0},//11
 {10, 11, 13, 21, 0,  0},//12
 {11, 12, 0,  0,  0,  0},//13
 {6,  15, 16, 0,  0,  0},//14
 {14, 16, 17, 18, 0,  0},//15
 {14, 15, 17, 19, 0,  0},//16
 {15, 16, 18, 19, 20, 0},//17
 {15, 17, 20, 32, 35, 36},//18
 {16, 17, 20, 21, 0,  0},//19
 {17, 18, 19, 21, 22, 36},//20
 {12, 19, 20, 22, 23, 24},//21
 {20, 21, 24, 36, 0,  0},//22
 {21, 24, 25, 0, 0,  0},//23
 {21, 22, 23, 26, 36, 0},//24
 {23, 24, 26,  0,  0, 0},//25
 {24, 25, 0,  0,  0,  0},//26
 {2,  28, 29, 31, 33, 0},//27
 {27, 30, 31, 0,  0,  0},//28
 {27, 33, 0,  0,  0,  0},//29
 {28, 31, 32, 33, 34, 0},//30
 {27, 28, 30, 33, 0,  0},//31
 {18, 30, 34, 35, 0,  0},//32
 {27, 29, 30, 31, 34, 0},//33
 {30, 32, 33, 35, 37, 38},//34
 {18, 32, 34, 36, 37, 0},//35
 {18, 20, 22, 24, 35, 37},//36
 {34, 35, 36, 38, 0,  0},//37
 {34, 37, 39, 0,  0,  0},//38
 {38, 40, 41, 0,  0,  0},//39
 {39, 41, 42, 0,  0,  0},//40
 {39, 40, 42, 0,  0,  0},//41
 {40, 41, 0,  0,  0,  0} //42
 };
     
 public void init()
 {
  int i, hulp, p, q;
  
   // public Land (nummertje, x0, y0, naampje, aantalBuurtjes, buurtjes, continent, baas)
        speelbord[0] = new Land(0,  0,     0,     "", 0, verbinding[0],   0, 0);
        speelbord[1] = new Land(1,  62.5,  37.5,  "", 4, verbinding[1],   1, 0);
        speelbord[2] = new Land(2,  162.5, 37.5 , "", 3, verbinding[2],   1, 0);
        speelbord[3] = new Land(3,  37.5,  112.5, "", 4, verbinding[3],   1, 0);
        speelbord[4] = new Land(4,  137.5, 112.5, "", 4, verbinding[4],   1, 0);
        speelbord[5] = new Land(5,  87.5,  162.5, "", 6, verbinding[5],   1, 0);
        speelbord[6] = new Land(6,  162.5, 187.5, "", 3, verbinding[6],   1, 0);
        speelbord[7] = new Land(7,  62.5,  237.5, "", 4, verbinding[7],   1, 0);
        speelbord[8] = new Land(8,  137.5, 237.5, "", 3, verbinding[8],   1, 0);
        speelbord[9] = new Land(9,  37.5,  312.5, "", 3, verbinding[9],   1, 0);
        speelbord[10]= new Land(10, 87.5,  387.5, "", 3, verbinding[10],  2, 0);
        speelbord[11]= new Land(11, 62.5,  462.5, "", 3, verbinding[11],  2, 0);
        speelbord[12]= new Land(12, 162.5, 437.5, "", 4, verbinding[12],  2, 0);
        speelbord[13]= new Land(13, 112.5, 512.5, "", 2, verbinding[13],  2, 0);
        speelbord[14]= new Land(14, 237.5, 112.5, "", 3, verbinding[14],  3, 0);
        speelbord[15]= new Land(15, 312.5, 112.5, "", 4, verbinding[15],  3, 0);
        speelbord[16]= new Land(16, 237.5, 187.5, "", 4, verbinding[16],  3, 0);
        speelbord[17]= new Land(17, 312.5, 212.5, "", 5, verbinding[17],  3, 0);
        speelbord[18]= new Land(18, 387.5, 212.5, "", 6, verbinding[18],  3, 0);
        speelbord[19]= new Land(19, 237.5, 262.5, "", 4, verbinding[19],  3, 0);
        speelbord[20]= new Land(20, 337.5, 287.5, "", 6, verbinding[20],  3, 0);
        speelbord[21]= new Land(21, 262.5, 362.5, "", 6, verbinding[21],  4, 0);
        speelbord[22]= new Land(22, 362.5, 362.5, "", 4, verbinding[22],  4, 1);
        speelbord[23]= new Land(23, 237.5, 462.5, "", 3, verbinding[23],  4, 1);
        speelbord[24]= new Land(24, 362.5, 437.5, "", 5, verbinding[24],  4, 1);
        speelbord[25]= new Land(25, 287.5, 537.5, "", 3, verbinding[25],  4, 1);
        speelbord[26]= new Land(26, 387.5, 512.5, "", 2, verbinding[26],  4, 1);
        speelbord[27]= new Land(27, 712.5, 37.5,  "", 5, verbinding[27],  5, 1);
        speelbord[28]= new Land(28, 662.5, 62.5,  "", 3, verbinding[28],  5, 1);
        speelbord[29]= new Land(29, 762.5, 87.5,  "", 2, verbinding[29],  5, 1);
        speelbord[30]= new Land(30, 587.5, 112.5, "", 5, verbinding[30],  5, 1);
        speelbord[31]= new Land(31, 697.5, 122.5, "", 4, verbinding[31],  5, 1);
        speelbord[32]= new Land(32, 462.5, 137.5, "", 4, verbinding[32],  5, 1);
        speelbord[33]= new Land(33, 737.5, 192.5, "", 5, verbinding[33],  5, 1);
        speelbord[34]= new Land(34, 637.5, 187.5, "", 6, verbinding[34],  5, 1);
        speelbord[35]= new Land(35, 537.5, 237.5, "", 5, verbinding[35],  5, 1);
        speelbord[36]= new Land(36, 487.5, 337.5, "", 6, verbinding[36],  5, 1);
        speelbord[37]= new Land(37, 612.5, 362.5, "", 4, verbinding[37],  5, 1);
        speelbord[38]= new Land(38, 712.5, 337.5, "", 3, verbinding[38],  5, 1);
        speelbord[39]= new Land(39, 662.5, 437.5, "", 3, verbinding[39],  6, 1);
        speelbord[40]= new Land(40, 737.5, 437.5, "", 3, verbinding[40],  6, 1);
        speelbord[41]= new Land(41, 687.5, 512.5, "", 3, verbinding[41],  6, 1);
        speelbord[42]= new Land(42, 762.5, 487.5, "", 2, verbinding[42],  6, 1);
      for(i=0; i<100; i++)
       {
         p = (int)(Math.random() * 42 +1);
         q = (int)(Math.random() * 42 +1);
         hulp = speelbord[p].eigenaar;
         speelbord[p].eigenaar = speelbord[q].eigenaar;
         speelbord[q].eigenaar = hulp;       
       }
      
     CircelxCo = (int) speelbord[i].x-15;
     CircelyCo = (int) speelbord[i].y-15;
     Breedte = 30;
     Hoogte = 30;
     
     addMouseListener(this);
    
 } 
       
 public void paint(Graphics gr)
 {
   //maak volledig scherm    
        this.setSize(Toolkit.getDefaultToolkit().getScreenSize());
        this.validate();                

  int i, j, aantalLegers, versterkingen, aantalLanden, landen;
 //tekenen van de landen en de verbindingslijntjes
  
 //werelddelen
  gr.setColor(Color.YELLOW);
  gr.fillRect(20, 20, 165, 310);
  gr.setColor(Color.PINK);
  gr.fillRect(45, 365, 140, 165);
  gr.setColor(new Color(130, 0, 195));
  gr.fillRect(220, 95, 185, 210);
  gr.setColor(Color.ORANGE);
  gr.fillRect(220, 340, 190, 220);
  gr.setColor(new Color(0, 220, 130));
  gr.fillRect(445, 20, 335, 360);
  gr.setColor(Color.CYAN);
  gr.fillRect(645, 420, 135, 110);
  
 //verbindingslijntjes
  for(i=1; i<43; i++)
   for(j=0; j<speelbord[i].aantalBuren; j++)
   {
    gr.setColor(Color.BLACK);
    gr.drawLine((int) speelbord[i].x, (int) speelbord[i].y, (int) speelbord[speelbord[i].buren[j]].x,(int) speelbord[speelbord[i].buren[j]].y);
   }
  
 //landen
  for (i=1;i<43;i++)
  {
   if (speelbord[i].eigenaar == 0) gr.setColor(Color.RED);
   else gr.setColor(new Color(0, 200, 255));
   
   gr.fillOval((int) speelbord[i].x -15, (int) speelbord[i].y -15, 30, 30);
   gr.setColor(Color.BLACK);
   gr.drawOval((int) speelbord[i].x -15, (int) speelbord[i].y -15, 30, 30);
  } 
  
  
  aantalLanden = 0;
  
  
  //aantallanden
  for (i=1;i<43;i++)
   {
    if (speelbord[i].eigenaar == 0);
    aantalLanden++;
   }
  
  //het aantal legers in een land
  aantalLegers = 1;
  if(CircelClicked) 
	  aantalLegers++;
  //de waarde van het aantal legers in een land tonen
  for (i=1;i<43;i++)
  {
   gr.drawString(""+aantalLegers,(int) speelbord[i].x-1, (int)speelbord[i].y+5);
  }
  
  
  //versterkingen
  versterkingen = (int)aantalLanden/3;
  gr.drawString("aantal te plaatsen versterkingen:"+versterkingen,587,550);
  
  
  
  
 }
 public void mouseClicked (MouseEvent me) 
 {
	   
	  xpos = me.getX(); 
	  ypos = me.getY();
	  
	   
	  if (xpos > CircelxCo && xpos < CircelxCo+Breedte && ypos >CircelyCo &&  
	    ypos < CircelyCo+Hoogte)  CircelClicked = true; 
	  
	  
	  else  
	   CircelClicked = false; 
	  
	 
	  repaint();

	 }
 
 
 }

Code:
public class Land 
{
 int nummer;
 double x;
 double y;
 String naam;
 int  aantalBuren;
 int[] buren = new int[6];
 int werelddeel;
 int eigenaar;
  
    // public Land (nummertje, x0, y0, naampje, aantalBuurtjes, buurtjes, continent, baas)
 public Land(int nummertje, double x0, double y0, String naampje, int aantalBuurtjes, int[] buurtjes, int continent, int baas)
 {
  nummer = nummertje;
  x = x0;
  y = y0;
  naam = naampje;
  buren = buurtjes;
  aantalBuren = aantalBuurtjes;
  werelddeel = continent;
  eigenaar = baas;
  
 }

}

Het programma werkt blijkbaar niet omdat

public void mouseClicked (MouseEvent me) {}
public void mouseEntered (MouseEvent me) {}
public void mousePressed (MouseEvent me) {}
public void mouseReleased (MouseEvent me) {}
public void mouseExited (MouseEvent me) {}

er nog niet instaat.. Als ik het wel doe werkt het nog steeds niet...
Hoop dat het programma een niet al te grote chaos is.
 
ja als je niet alle methods implementeerd van je interface dan zal die idd weigeren te draaien (aangezien je je niet aan de interface houdt). maar wat nu precies je probleem ?
 
Nou waar en hoe ik dat werkend kan krijgen want als ik java het probleem zelf laat oplossen dan doet hij het nog steeds niet...
 
Ik heb het net in eclipse gegooit en hij werkt wel gewoon. Het probleem dat ik tegengekomen ben is een IOOB (index out of bounds) exception wat inhoudt dat je een invalid index uit een array wil halen (negatief getal of groter dan de size van de array. Als je bijv zegt: int[] array = new int[100]; en je probeerd element 110 te benaderen krijg je deze error.).

De oorzaak van je IOOB exception:

CircelxCo = (int) speelbord.x-15;
CircelyCo = (int) speelbord.y-15;

Hiervoor doe je namelijk 100 x iets in je for i loop. de variable i is daarom 100 en speelbord[100] bestaat niet (dus ioob exception).
wat je precies wilt doen in de for i loop is me niet helemaal duidelijk maar het probleem ligt dus na die loop.

Als je die 2 regels uitcomment dan start die gewoon. verder ziet het er wel vet uit met die verbindingen tussen de circels ^^
Het doet me denken aan een neuraal netwerk
 
Laatst bewerkt:
Ja inderdaad :) bedankt! We zijn alweer een stukje verder en we zullen er binnekort vast wel weer een keer niet uitkomen. Dan hoor/horen je/jullie het wel
 
Hallo,
Het programma doet niet wat het moet doen, als speler rood en speler blauw allebei 19 versterkingen hebben geplaatst moet rood er als het goed is 7 krijgen( of meer als rood meteen al een werelddeel heeft). Maar rood krijgt er eerste wel 7 maar als je dan één keer klikt heeft rood er nog 18.

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


public class Risk extends Applet 
      implements MouseListener, ActionListener
          
{ 
	
	private Button eindePlaatsingsFase;
int xpos, ypos;
int straal=15;
int afname=0;
boolean fasePlaatsingLegers = true;
boolean versterkingsFase = false;
int versterkingen;
int speler=0;

 Land [] speelbord = new Land[43];
 int[][] verbinding = 
 {
 {0,  0,  0,  0,  0,  0},//0
 {2,  3,  4,  5,  0,  0},//1
 {1,  4,  27, 0,  0,  0},//2
 {1,  5,  7,  9,  0,  0},//3
 {1,  2,  5,  6,  0,  0},//4
 {1,  3,  4,  6,  7,  8},//5
 {4,  8,  14, 0,  0,  0},//6
 {3,  5,  8,  9,  0,  0},//7
 {5,  6,  7,  0,  0,  0},//8
 {3,  7,  10, 0,  0,  0},//9
 {9,  11, 12, 0,  0,  0},//10
 {10, 12, 13, 0,  0,  0},//11
 {10, 11, 13, 21, 0,  0},//12
 {11, 12, 0,  0,  0,  0},//13
 {6,  15, 16, 0,  0,  0},//14
 {14, 16, 17, 18, 0,  0},//15
 {14, 15, 17, 19, 0,  0},//16
 {15, 16, 18, 19, 20, 0},//17
 {15, 17, 20, 32, 35, 36},//18
 {16, 17, 20, 21, 0,  0},//19
 {17, 18, 19, 21, 22, 36},//20
 {12, 19, 20, 22, 23, 24},//21
 {20, 21, 24, 36, 0,  0},//22
 {21, 24, 25, 0, 0,  0},//23
 {21, 22, 23, 26, 36, 0},//24
 {23, 24, 26,  0,  0, 0},//25
 {24, 25, 0,  0,  0,  0},//26
 {2,  28, 29, 31, 33, 0},//27
 {27, 30, 31, 0,  0,  0},//28
 {27, 33, 0,  0,  0,  0},//29
 {28, 31, 32, 33, 34, 0},//30
 {27, 28, 30, 33, 0,  0},//31
 {18, 30, 34, 35, 0,  0},//32
 {27, 29, 30, 31, 34, 0},//33
 {30, 32, 33, 35, 37, 38},//34
 {18, 32, 34, 36, 37, 0},//35
 {18, 20, 22, 24, 35, 37},//36
 {34, 35, 36, 38, 0,  0},//37
 {34, 37, 39, 0,  0,  0},//38
 {38, 40, 41, 0,  0,  0},//39
 {39, 41, 42, 0,  0,  0},//40
 {39, 40, 42, 0,  0,  0},//41
 {40, 41, 0,  0,  0,  0} //42
 };
     
 public void init()
 {
  int i, hulp, p, q;
  
   // public Land (nummertje, x0, y0, naampje, aantalBuurtjes, buurtjes, continent, baas)
        speelbord[0] = new Land(0,  0,     0,     "", 0, verbinding[0],   0, 0, 1);
        speelbord[1] = new Land(1,  62.5,  37.5,  "", 4, verbinding[1],   1, 0, 1);
        speelbord[2] = new Land(2,  162.5, 37.5 , "", 3, verbinding[2],   1, 0, 1);
        speelbord[3] = new Land(3,  37.5,  112.5, "", 4, verbinding[3],   1, 0, 1);
        speelbord[4] = new Land(4,  137.5, 112.5, "", 4, verbinding[4],   1, 0, 1);
        speelbord[5] = new Land(5,  87.5,  162.5, "", 6, verbinding[5],   1, 0, 1);
        speelbord[6] = new Land(6,  162.5, 187.5, "", 3, verbinding[6],   1, 0, 1);
        speelbord[7] = new Land(7,  62.5,  237.5, "", 4, verbinding[7],   1, 0, 1);
        speelbord[8] = new Land(8,  137.5, 237.5, "", 3, verbinding[8],   1, 0, 1);
        speelbord[9] = new Land(9,  37.5,  312.5, "", 3, verbinding[9],   1, 0, 1);
        speelbord[10]= new Land(10, 87.5,  387.5, "", 3, verbinding[10],  2, 0, 1);
        speelbord[11]= new Land(11, 62.5,  462.5, "", 3, verbinding[11],  2, 0, 1);
        speelbord[12]= new Land(12, 162.5, 437.5, "", 4, verbinding[12],  2, 0, 1);
        speelbord[13]= new Land(13, 112.5, 512.5, "", 2, verbinding[13],  2, 0, 1);
        speelbord[14]= new Land(14, 237.5, 112.5, "", 3, verbinding[14],  3, 0, 1);
        speelbord[15]= new Land(15, 312.5, 112.5, "", 4, verbinding[15],  3, 0, 1);
        speelbord[16]= new Land(16, 237.5, 187.5, "", 4, verbinding[16],  3, 0, 1);
        speelbord[17]= new Land(17, 312.5, 212.5, "", 5, verbinding[17],  3, 0, 1);
        speelbord[18]= new Land(18, 387.5, 212.5, "", 6, verbinding[18],  3, 0, 1);
        speelbord[19]= new Land(19, 237.5, 262.5, "", 4, verbinding[19],  3, 0, 1);
        speelbord[20]= new Land(20, 337.5, 287.5, "", 6, verbinding[20],  3, 0, 1);
        speelbord[21]= new Land(21, 262.5, 362.5, "", 6, verbinding[21],  4, 0, 1);
        speelbord[22]= new Land(22, 362.5, 362.5, "", 4, verbinding[22],  4, 1, 1);
        speelbord[23]= new Land(23, 237.5, 462.5, "", 3, verbinding[23],  4, 1, 1);
        speelbord[24]= new Land(24, 362.5, 437.5, "", 5, verbinding[24],  4, 1, 1);
        speelbord[25]= new Land(25, 287.5, 537.5, "", 3, verbinding[25],  4, 1, 1);
        speelbord[26]= new Land(26, 387.5, 512.5, "", 2, verbinding[26],  4, 1, 1);
        speelbord[27]= new Land(27, 712.5, 37.5,  "", 5, verbinding[27],  5, 1, 1);
        speelbord[28]= new Land(28, 662.5, 62.5,  "", 3, verbinding[28],  5, 1, 1);
        speelbord[29]= new Land(29, 762.5, 87.5,  "", 2, verbinding[29],  5, 1, 1);
        speelbord[30]= new Land(30, 587.5, 112.5, "", 5, verbinding[30],  5, 1, 1);
        speelbord[31]= new Land(31, 697.5, 122.5, "", 4, verbinding[31],  5, 1, 1);
        speelbord[32]= new Land(32, 462.5, 137.5, "", 4, verbinding[32],  5, 1, 1);
        speelbord[33]= new Land(33, 737.5, 192.5, "", 5, verbinding[33],  5, 1, 1);
        speelbord[34]= new Land(34, 637.5, 187.5, "", 6, verbinding[34],  5, 1, 1);
        speelbord[35]= new Land(35, 537.5, 237.5, "", 5, verbinding[35],  5, 1, 1);
        speelbord[36]= new Land(36, 487.5, 337.5, "", 6, verbinding[36],  5, 1, 1);
        speelbord[37]= new Land(37, 612.5, 362.5, "", 4, verbinding[37],  5, 1, 1);
        speelbord[38]= new Land(38, 712.5, 337.5, "", 3, verbinding[38],  5, 1, 1);
        speelbord[39]= new Land(39, 662.5, 437.5, "", 3, verbinding[39],  6, 1, 1);
        speelbord[40]= new Land(40, 737.5, 437.5, "", 3, verbinding[40],  6, 1, 1);
        speelbord[41]= new Land(41, 687.5, 512.5, "", 3, verbinding[41],  6, 1, 1);
        speelbord[42]= new Land(42, 762.5, 487.5, "", 2, verbinding[42],  6, 1, 1);  
       
      for(i=0; i<100; i++)
       {
         p = (int)(Math.random() * 42 +1);
         q = (int)(Math.random() * 42 +1);
         hulp = speelbord[p].eigenaar;
         speelbord[p].eigenaar = speelbord[q].eigenaar;
         speelbord[q].eigenaar = hulp;       
       }
      
       //Button
      eindePlaatsingsFase = new Button("Klaar");
      this.add(eindePlaatsingsFase);
      eindePlaatsingsFase.addActionListener(this);
      
      addMouseListener(this);  
      
 } 
       
 public void paint(Graphics gr)
 {
   //maak volledig scherm    
        this.setSize(Toolkit.getDefaultToolkit().getScreenSize());
        this.validate();                

  int i, j;
  int aantalLanden;
  int bonusVersterkingen;
  
  gr.setFont(new Font("Tahoma", Font.PLAIN, 24));
  if (speler == 0)
  {
	  gr.drawString("Speler rood is aan de beurt. ", 30, 625);
  }
  else
  {
	  gr.drawString("Speler blauw is aan de beurt. ", 30, 625);
  }
  
  gr.setFont(new Font("Tahoma", Font.PLAIN, 14));
 //tekenen van de landen en de verbindingslijntjes
  
 //werelddelen
  gr.setColor(Color.YELLOW);
  gr.fillRect(20, 20, 165, 310);
  gr.setColor(Color.PINK);
  gr.fillRect(45, 365, 140, 165);
  gr.setColor(new Color(130, 0, 195));
  gr.fillRect(220, 95, 185, 210);
  gr.setColor(Color.ORANGE);
  gr.fillRect(220, 340, 190, 220);
  gr.setColor(new Color(0, 220, 130));
  gr.fillRect(445, 20, 335, 360);
  gr.setColor(Color.CYAN);
  gr.fillRect(645, 420, 135, 110);
  
 //verbindingslijntjes
  for(i=1; i<43; i++)
   for(j=0; j<speelbord[i].aantalBuren; j++)
   {
    gr.setColor(Color.BLACK);
    gr.drawLine((int) speelbord[i].x, (int) speelbord[i].y, (int) speelbord[speelbord[i].buren[j]].x,(int) speelbord[speelbord[i].buren[j]].y);
   }
  
 //landen
  for (i=1;i<43;i++)
  {
   if (speelbord[i].eigenaar == 0) gr.setColor(Color.RED);
   else gr.setColor(new Color(0, 200, 255));
   
   gr.fillOval((int) speelbord[i].x -straal, (int) speelbord[i].y -straal, 30, 30);
   gr.setColor(Color.BLACK);
   gr.drawOval((int) speelbord[i].x -straal, (int) speelbord[i].y -straal, 30, 30);
  } 
  
  //de waarde van het aantal legers in een land tonen
  for (i=1;i<43;i++)
  {
	   gr.drawString(""+speelbord[i].aantalLegers,(int) speelbord[i].x-1, (int)speelbord[i].y+5);
  }
  
//aantallanden
  aantalLanden = 0;
  for (i=1;i<43;i++)
   {
    if (speelbord[i].eigenaar == 0) aantalLanden++;
   }
  
  //  bonusVersterkingen
  bonusVersterkingen = 0;
	//N-Amerika
	if (speelbord[1].eigenaar==speler && speelbord[2].eigenaar==speler && speelbord[3].eigenaar==speler && speelbord[4].eigenaar==speler
			&& speelbord[4].eigenaar==speler&& speelbord[5].eigenaar==speler && speelbord[6].eigenaar==speler&& speelbord[7].eigenaar==speler
			&& speelbord[9].eigenaar==speler)
		bonusVersterkingen+=5;
	
	//Zuid-Amerika
	if (speelbord[10].eigenaar==speler && speelbord[11].eigenaar==speler && speelbord[12].eigenaar==speler && speelbord[13].eigenaar==speler)
		bonusVersterkingen+=2;
	
	//Europa
	if (speelbord[14].eigenaar==speler && speelbord[15].eigenaar==speler && speelbord[16].eigenaar==speler && speelbord[17].eigenaar==speler 
			&& speelbord[18].eigenaar==speler && speelbord[19].eigenaar==speler && speelbord[20].eigenaar==speler)
		bonusVersterkingen+=5;
	
	//Afrika
	if (speelbord[21].eigenaar==speler && speelbord[22].eigenaar==speler && speelbord[23].eigenaar==speler && speelbord[24].eigenaar==speler 
			&& speelbord[25].eigenaar==speler && speelbord[26].eigenaar==speler)
		bonusVersterkingen+=3;
	
	//Azie
	if (speelbord[27].eigenaar==0 && speelbord[28].eigenaar==0 && speelbord[29].eigenaar==0 && speelbord[30].eigenaar==0
			&& speelbord[31].eigenaar==speler && speelbord[32].eigenaar==speler && speelbord[33].eigenaar==speler && speelbord[34].eigenaar==speler
			&& speelbord[35].eigenaar==speler && speelbord[36].eigenaar==speler && speelbord[37].eigenaar==speler && speelbord[38].eigenaar==speler)
		bonusVersterkingen+=7;
	
	//Australië
	if (speelbord[39].eigenaar==speler && speelbord[40].eigenaar==speler && speelbord[41].eigenaar==speler && speelbord[42].eigenaar==speler )
		bonusVersterkingen+=2;
	
  //versterkingen
  if (fasePlaatsingLegers == true)
  {
	  versterkingen = 19 + afname;
  }
  
  if (versterkingsFase == true && fasePlaatsingLegers == false) 
	{
	  versterkingen = (int)aantalLanden/3 + bonusVersterkingen + afname;
	}
  
  gr.drawString("aantal te plaatsen versterkingen:"+versterkingen,587,550); 
  
 }
 
 public void mouseClicked (MouseEvent me) 
 	{
	 boolean gevonden = false;
	 int i = 1;
	 xpos = me.getX(); 
	 ypos = me.getY();
	  
	 if (fasePlaatsingLegers = true)
	 { 
		 
		  while (i<43 && gevonden == false)
		  {  
			  if (Math.sqrt(Math.pow(xpos - speelbord[i].x,2)+ Math.pow(ypos - speelbord[i].y, 2)) < straal && speelbord[i].eigenaar==speler && versterkingen >0)  
		      {
				  gevonden = true;
				  speelbord[i].aantalLegers++; 
				  afname+=-1;
		      }
			  i++; 
		  }  
		  
	  }
	 if (versterkingsFase = true) 
		{
		 while (i<43 && gevonden == false)
		  {  
			  if (Math.sqrt(Math.pow(xpos - speelbord[i].x,2)+ Math.pow(ypos - speelbord[i].y, 2)) < straal && speelbord[i].eigenaar==speler && versterkingen >0)  
		      {
				  gevonden = true;
				  speelbord[i].aantalLegers++; 
				  afname+=-1;
		      }
			  i++;
		  }
	  
	  repaint();
	  }
	 
	 }
 
 public void actionPerformed(ActionEvent me)
 {
	 if(me.getSource()== eindePlaatsingsFase)
	 {
		 if (speler == 0 && versterkingen == 0)
			 {
			 versterkingen +=19;
			 afname = 0;
			 speler = 1;
			 }
		 if (speler == 1 && versterkingen == 0)
			 {
			 fasePlaatsingLegers = false;
			 versterkingsFase = true;
			 afname = 0;
			 speler = 0;
			 } 
	 }
	 	
	 this.repaint();
 }

 public void mouseEntered (MouseEvent me) {} 
 public void mousePressed (MouseEvent me) {} 
 public void mouseReleased (MouseEvent me) {} 
 public void mouseExited (MouseEvent me) {}

 
 
 }


Code:
public class Land 
{
	int nummer;
	double x;
	double y;
	String naam;
	int  aantalBuren;
	int[] buren = new int[6];
	int werelddeel;
	int eigenaar;
	int aantalLegers;
		
    // public Land (nummertje, x0, y0, naampje, aantalBuurtjes, buurtjes, continent, baas)
	public Land(int nummertje, double x0, double y0, String naampje, int aantalBuurtjes, int[] buurtjes, int continent, int baas, int aantalLegertjes)
	{
		nummer = nummertje;
		x = x0;
		y = y0;
		naam = naampje;
		buren = buurtjes;
		aantalBuren = aantalBuurtjes;
		werelddeel = continent;
		eigenaar = baas;
		aantalLegers = aantalLegertjes;
		
	}

}
 
je hebt een aantal foutje gemaakt.

Ten eerste de regels:

if (fasePlaatsingLegers = true)
if (versterkingsFase = true)

deze zijn altijd true omdat je de variabel toekent in plaats van vergelijkt. gebruik dubbele = tekens voor gevergelijking of gebruik .equals();

verder heb je de repaint() alleen onder de versterkingsfase. deze moet onderaan de methode staan en altijd uitgevoerd worden.
 
Hallo,
We hebben weer een probleempje. We proberen nu de aanvalsfase te maken. We willen eerst gewoon maken dat je een land kunt aanklikken en dat dat land dat geel wordt, dat lukt wel maar vervolgens verdwijnen er andere landen.

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

public class Risk extends Applet 
      implements MouseListener, ActionListener
          
{ 
 
 private Button eindePlaatsingsFase;
 private Button eindeVersterkingsFase;
 private Button eindeAanvalsFase;
int xpos, ypos;
int straal=15;
int afname=0;
boolean gevonden = false;
boolean fasePlaatsingLegers = true;
boolean versterkingsFase = false;
boolean aanvalsFase = false;
boolean aangeklikt = false;
int versterkingen;
int speler=0;
int aanvaller;
int verdediger;

 Land [] speelbord = new Land[43];
 int[][] verbinding = 
 {
 {0,  0,  0,  0,  0,  0},//0
 {2,  3,  4,  5,  0,  0},//1
 {1,  4,  27, 0,  0,  0},//2
 {1,  5,  7,  9,  0,  0},//3
 {1,  2,  5,  6,  0,  0},//4
 {1,  3,  4,  6,  7,  8},//5
 {4,  8,  14, 0,  0,  0},//6
 {3,  5,  8,  9,  0,  0},//7
 {5,  6,  7,  0,  0,  0},//8
 {3,  7,  10, 0,  0,  0},//9
 {9,  11, 12, 0,  0,  0},//10
 {10, 12, 13, 0,  0,  0},//11
 {10, 11, 13, 21, 0,  0},//12
 {11, 12, 0,  0,  0,  0},//13
 {6,  15, 16, 0,  0,  0},//14
 {14, 16, 17, 18, 0,  0},//15
 {14, 15, 17, 19, 0,  0},//16
 {15, 16, 18, 19, 20, 0},//17
 {15, 17, 20, 32, 35, 36},//18
 {16, 17, 20, 21, 0,  0},//19
 {17, 18, 19, 21, 22, 36},//20
 {12, 19, 20, 22, 23, 24},//21
 {20, 21, 24, 36, 0,  0},//22
 {21, 24, 25, 0, 0,  0},//23
 {21, 22, 23, 26, 36, 0},//24
 {23, 24, 26,  0,  0, 0},//25
 {24, 25, 0,  0,  0,  0},//26
 {2,  28, 29, 31, 33, 0},//27
 {27, 30, 31, 0,  0,  0},//28
 {27, 33, 0,  0,  0,  0},//29
 {28, 31, 32, 33, 34, 0},//30
 {27, 28, 30, 33, 0,  0},//31
 {18, 30, 34, 35, 0,  0},//32
 {27, 29, 30, 31, 34, 0},//33
 {30, 32, 33, 35, 37, 38},//34
 {18, 32, 34, 36, 37, 0},//35
 {18, 20, 22, 24, 35, 37},//36
 {34, 35, 36, 38, 0,  0},//37
 {34, 37, 39, 0,  0,  0},//38
 {38, 40, 41, 0,  0,  0},//39
 {39, 41, 42, 0,  0,  0},//40
 {39, 40, 42, 0,  0,  0},//41
 {40, 41, 0,  0,  0,  0} //42
 };
     
 public void init()
 {
  int i, hulp, p, q;
  
   // public Land (nummertje, x0, y0, naampje, aantalBuurtjes, buurtjes, continent, baas, aantalLegeertjes)
        speelbord[0] = new Land(0,  0,     0,     "", 0, verbinding[0],   0, 0, 1);
        speelbord[1] = new Land(1,  62.5,  47.5,  "", 4, verbinding[1],   1, 0, 1);
        speelbord[2] = new Land(2,  162.5, 47.5 , "", 3, verbinding[2],   1, 0, 1);
        speelbord[3] = new Land(3,  37.5,  122.5, "", 4, verbinding[3],   1, 0, 1);
        speelbord[4] = new Land(4,  137.5, 122.5, "", 4, verbinding[4],   1, 0, 1);
        speelbord[5] = new Land(5,  87.5,  172.5, "", 6, verbinding[5],   1, 0, 1);
        speelbord[6] = new Land(6,  162.5, 197.5, "", 3, verbinding[6],   1, 0, 1);
        speelbord[7] = new Land(7,  62.5,  247.5, "", 4, verbinding[7],   1, 0, 1);
        speelbord[8] = new Land(8,  137.5, 247.5, "", 3, verbinding[8],   1, 0, 1);
        speelbord[9] = new Land(9,  37.5,  322.5, "", 3, verbinding[9],   1, 0, 1);
        speelbord[10]= new Land(10, 87.5,  397.5, "", 3, verbinding[10],  2, 0, 1);
        speelbord[11]= new Land(11, 62.5,  472.5, "", 3, verbinding[11],  2, 0, 1);
        speelbord[12]= new Land(12, 162.5, 447.5, "", 4, verbinding[12],  2, 0, 1);
        speelbord[13]= new Land(13, 112.5, 522.5, "", 2, verbinding[13],  2, 0, 1);
        speelbord[14]= new Land(14, 237.5, 122.5, "", 3, verbinding[14],  3, 0, 1);
        speelbord[15]= new Land(15, 312.5, 122.5, "", 4, verbinding[15],  3, 0, 1);
        speelbord[16]= new Land(16, 237.5, 197.5, "", 4, verbinding[16],  3, 0, 1);
        speelbord[17]= new Land(17, 312.5, 222.5, "", 5, verbinding[17],  3, 0, 1);
        speelbord[18]= new Land(18, 387.5, 222.5, "", 6, verbinding[18],  3, 0, 1);
        speelbord[19]= new Land(19, 237.5, 272.5, "", 4, verbinding[19],  3, 0, 1);
        speelbord[20]= new Land(20, 337.5, 297.5, "", 6, verbinding[20],  3, 0, 1);
        speelbord[21]= new Land(21, 262.5, 372.5, "", 6, verbinding[21],  4, 0, 1);
        speelbord[22]= new Land(22, 362.5, 372.5, "", 4, verbinding[22],  4, 1, 1);
        speelbord[23]= new Land(23, 237.5, 472.5, "", 3, verbinding[23],  4, 1, 1);
        speelbord[24]= new Land(24, 362.5, 447.5, "", 5, verbinding[24],  4, 1, 1);
        speelbord[25]= new Land(25, 287.5, 547.5, "", 3, verbinding[25],  4, 1, 1);
        speelbord[26]= new Land(26, 387.5, 522.5, "", 2, verbinding[26],  4, 1, 1);
        speelbord[27]= new Land(27, 712.5, 47.5,  "", 5, verbinding[27],  5, 1, 1);
        speelbord[28]= new Land(28, 662.5, 72.5,  "", 3, verbinding[28],  5, 1, 1);
        speelbord[29]= new Land(29, 762.5, 97.5,  "", 2, verbinding[29],  5, 1, 1);
        speelbord[30]= new Land(30, 587.5, 122.5, "", 5, verbinding[30],  5, 1, 1);
        speelbord[31]= new Land(31, 697.5, 132.5, "", 4, verbinding[31],  5, 1, 1);
        speelbord[32]= new Land(32, 462.5, 147.5, "", 4, verbinding[32],  5, 1, 1);
        speelbord[33]= new Land(33, 737.5, 202.5, "", 5, verbinding[33],  5, 1, 1);
        speelbord[34]= new Land(34, 637.5, 197.5, "", 6, verbinding[34],  5, 1, 1);
        speelbord[35]= new Land(35, 537.5, 247.5, "", 5, verbinding[35],  5, 1, 1);
        speelbord[36]= new Land(36, 487.5, 347.5, "", 6, verbinding[36],  5, 1, 1);
        speelbord[37]= new Land(37, 612.5, 372.5, "", 4, verbinding[37],  5, 1, 1);
        speelbord[38]= new Land(38, 712.5, 347.5, "", 3, verbinding[38],  5, 1, 1);
        speelbord[39]= new Land(39, 662.5, 447.5, "", 3, verbinding[39],  6, 1, 1);
        speelbord[40]= new Land(40, 737.5, 447.5, "", 3, verbinding[40],  6, 1, 1);
        speelbord[41]= new Land(41, 687.5, 522.5, "", 3, verbinding[41],  6, 1, 1);
        speelbord[42]= new Land(42, 762.5, 497.5, "", 2, verbinding[42],  6, 1, 1);  
       
      for(i=0; i<100; i++)
       {
         p = (int)(Math.random() * 42 +1);
         q = (int)(Math.random() * 42 +1);
         hulp = speelbord[p].eigenaar;
         speelbord[p].eigenaar = speelbord[q].eigenaar;
         speelbord[q].eigenaar = hulp;       
       }
      
       //Button
      eindePlaatsingsFase = new Button("Klaar met plaatsen");
      eindeVersterkingsFase = new Button("Klaar met versterken");
      eindeAanvalsFase = new Button("Klaar met aanvallen");
      this.add(eindePlaatsingsFase);
      this.add(eindeVersterkingsFase);
      this.add(eindeAanvalsFase);
      eindePlaatsingsFase.addActionListener(this);
      eindeVersterkingsFase.addActionListener(this);
      eindeAanvalsFase.addActionListener(this);
      eindePlaatsingsFase.setVisible(true);
      eindeVersterkingsFase.setVisible(false);
      eindeAanvalsFase.setVisible(false);
      addMouseListener(this);  
      
 } 
       
 public void paint(Graphics gr)
 {
   //maak volledig scherm    
        this.setSize(Toolkit.getDefaultToolkit().getScreenSize());
        this.validate();                

  int i, j;
  int aantalLanden;
  int bonusVersterkingen;
  
  gr.setFont(new Font("Tahoma", Font.PLAIN, 24));
  if (speler == 0)
  {
   gr.drawString("Speler rood is aan de beurt. ", 30, 635);
  }
  else
  {
   gr.drawString("Speler blauw is aan de beurt. ", 30, 635);
  }
  
  gr.setFont(new Font("Tahoma", Font.PLAIN, 14));
 //tekenen van de landen en de verbindingslijntjes
  
 //werelddelen
  gr.setColor(Color.YELLOW);
  gr.fillRect(20, 30, 165, 310);
  gr.setColor(Color.PINK);
  gr.fillRect(45, 375, 140, 165);
  gr.setColor(new Color(130, 0, 195));
  gr.fillRect(220, 105, 185, 210);
  gr.setColor(Color.ORANGE);
  gr.fillRect(220, 350, 190, 220);
  gr.setColor(new Color(0, 220, 130));
  gr.fillRect(445, 30, 335, 360);
  gr.setColor(Color.CYAN);
  gr.fillRect(645, 430, 135, 110);
  
 //verbindingslijntjes
  for(i=1; i<43; i++)
   for(j=0; j<speelbord[i].aantalBuren; j++)
   {
    gr.setColor(Color.BLACK);
    gr.drawLine((int) speelbord[i].x, (int) speelbord[i].y, (int) speelbord[speelbord[i].buren[j]].x,(int) speelbord[speelbord[i].buren[j]].y);
   }
  
 //landen
  for (i=1;i<43;i++)
  {
   if (aangeklikt == false)
   {
    if (speelbord[i].eigenaar == 0) gr.setColor(Color.RED);
     else gr.setColor(new Color(0, 200, 255));
     
     gr.fillOval((int) speelbord[i].x -straal, (int) speelbord[i].y -straal, 30, 30);
     gr.setColor(Color.BLACK);
     gr.drawOval((int) speelbord[i].x -straal, (int) speelbord[i].y -straal, 30, 30);
   }
   
   if (aangeklikt = true && speelbord[i].nummer == aanvaller)
   {
	   if(speler == 0)
	    {
	    	gr.setColor(Color.RED);
	        gr.fillOval((int) speelbord[i].x -straal-2, (int) speelbord[i].y -straal-2, 34, 34);
	    }
	    else
	    {
	    	gr.setColor(Color.BLUE);
	        gr.fillOval((int) speelbord[i].x -straal-2, (int) speelbord[i].y -straal-2, 34, 34);
	    }
	   
    gr.setColor(Color.YELLOW);
    gr.fillOval((int) speelbord[i].x -straal, (int) speelbord[i].y -straal, 30, 30);
   }
   
  } 
  
  //de waarde van het aantal legers in een land tonen
  gr.setColor(Color.BLACK);
  for (i=1;i<43;i++)
  {
	  if(speelbord[i].aantalLegers<10)
		  gr.drawString(""+speelbord[i].aantalLegers,(int) speelbord[i].x-2, (int)speelbord[i].y+5);
	  if(speelbord[i].aantalLegers>9)
		  gr.drawString(""+speelbord[i].aantalLegers,(int) speelbord[i].x-7, (int)speelbord[i].y+5);
  }
  
//aantallanden
  aantalLanden = 0;
  for (i=1;i<43;i++)
   {
    if (speelbord[i].eigenaar == 0) aantalLanden++;
   }
  
  //  bonusVersterkingen
  bonusVersterkingen = 0;
 //N-Amerika
 if (speelbord[1].eigenaar==speler && speelbord[2].eigenaar==speler && speelbord[3].eigenaar==speler && speelbord[4].eigenaar==speler
   && speelbord[4].eigenaar==speler&& speelbord[5].eigenaar==speler && speelbord[6].eigenaar==speler&& speelbord[7].eigenaar==speler
   && speelbord[9].eigenaar==speler)
  bonusVersterkingen+=5;
 
 //Zuid-Amerika
 if (speelbord[10].eigenaar==speler && speelbord[11].eigenaar==speler && speelbord[12].eigenaar==speler && speelbord[13].eigenaar==speler)
  bonusVersterkingen+=2;
 
 //Europa
 if (speelbord[14].eigenaar==speler && speelbord[15].eigenaar==speler && speelbord[16].eigenaar==speler && speelbord[17].eigenaar==speler 
   && speelbord[18].eigenaar==speler && speelbord[19].eigenaar==speler && speelbord[20].eigenaar==speler)
  bonusVersterkingen+=5;
 
 //Afrika
 if (speelbord[21].eigenaar==speler && speelbord[22].eigenaar==speler && speelbord[23].eigenaar==speler && speelbord[24].eigenaar==speler 
   && speelbord[25].eigenaar==speler && speelbord[26].eigenaar==speler)
  bonusVersterkingen+=3;
 
 //Azie
 if (speelbord[27].eigenaar==0 && speelbord[28].eigenaar==0 && speelbord[29].eigenaar==0 && speelbord[30].eigenaar==0
   && speelbord[31].eigenaar==speler && speelbord[32].eigenaar==speler && speelbord[33].eigenaar==speler && speelbord[34].eigenaar==speler
   && speelbord[35].eigenaar==speler && speelbord[36].eigenaar==speler && speelbord[37].eigenaar==speler && speelbord[38].eigenaar==speler)
  bonusVersterkingen+=7;
 
 //Australië
 if (speelbord[39].eigenaar==speler && speelbord[40].eigenaar==speler && speelbord[41].eigenaar==speler && speelbord[42].eigenaar==speler )
  bonusVersterkingen+=2;
 
  //versterkingen
  if (fasePlaatsingLegers == true)
  {
   versterkingen = 3 + afname;
  }
  
  if (versterkingsFase == true && fasePlaatsingLegers == false) 
 {
   versterkingen = (int)aantalLanden/3 + bonusVersterkingen + afname;
 }
  if (versterkingsFase == true || fasePlaatsingLegers == true)
  {
   gr.drawString("aantal te plaatsen versterkingen:"+versterkingen,573,560);
  }
  if (aanvalsFase == true)
  {
	  gr.drawString("Selecteer een land om aan te vallen.", 572, 560);
  }
  
 }
 
 public void mouseClicked (MouseEvent me) 
  {
  int i = 1;
  boolean gevonden = false;
  xpos = me.getX(); 
  ypos = me.getY();
   
  if (fasePlaatsingLegers == true)
  { 
   
    while (i<43 && gevonden == false)
    {  
     if (Math.sqrt(Math.pow(xpos - speelbord[i].x,2)+ Math.pow(ypos - speelbord[i].y, 2)) < straal && speelbord[i].eigenaar==speler && versterkingen >0)  
        {
    	 gevonden = true;
    	 speelbord[i].aantalLegers++; 
    	 afname+=-1;
        }
     i++; 
    }  
    
   }
  if (versterkingsFase == true) 
  {
   while (i<43 && gevonden == false)
    {  
     if (Math.sqrt(Math.pow(xpos - speelbord[i].x,2)+ Math.pow(ypos - speelbord[i].y, 2)) < straal && speelbord[i].eigenaar==speler && versterkingen >0)  
        {
      gevonden = true;
      speelbord[i].aantalLegers++; 
      afname+=-1;
        }
     i++;
    }
 
   }
  
  if (aanvalsFase == true)
  {
	  for (i=1;i<43;i++)
	    {
		  if (Math.sqrt(Math.pow(xpos - speelbord[i].x,2)+ Math.pow(ypos - speelbord[i].y, 2)) < straal && speelbord[i].eigenaar==speler 
		    		 && speelbord[i].aantalLegers >1)
		     {
		    	 aangeklikt = true;
		    	 aanvaller = speelbord[i].nummer;
		     }
	    }
	     
  }
  
  repaint();
  }

 public void actionPerformed(ActionEvent me)
 { 
  if(me.getSource()== eindePlaatsingsFase)
  {
   if (speler == 0 && versterkingen == 0)
    {
    versterkingen+=19;
    afname = 0;
    speler = 1;
    }
   if (speler == 1 && versterkingen == 0)
    {
    fasePlaatsingLegers = false;
    versterkingsFase = true;
    afname = 0;
    speler = 0;
    } 
  }
  
  if(me.getSource()== eindeVersterkingsFase)
  {
   if (versterkingen ==0)
   {
    versterkingsFase = false;
    aanvalsFase  = true;
    afname = 0;
   }
   
  }
  
  if(me.getSource()== eindeAanvalsFase)
  {
   if (speler == 0)
   {
    speler = 1;
    versterkingsFase = true;
    aanvalsFase  = false;
    
   }
   if (speler == 1)
   {
    speler = 0;
    versterkingsFase = false;
    aanvalsFase  = true;
    
   }
   
  }
  
  if (fasePlaatsingLegers == true)
	 {
		 eindePlaatsingsFase.setVisible(true);
		 eindeVersterkingsFase.setVisible(false);
		 eindeAanvalsFase.setVisible(false);	 
	 }
	 if (versterkingsFase == true)
	 {
		 eindePlaatsingsFase.setVisible(false);
		 eindeVersterkingsFase.setVisible(true);
		 eindeAanvalsFase.setVisible(false);	 
	 }
	 if (aanvalsFase == true)
	 {
		 eindePlaatsingsFase.setVisible(false);
		 eindeVersterkingsFase.setVisible(false);
		 eindeAanvalsFase.setVisible(true);	 
	 }
   
  this.repaint();
 }

 public void mouseEntered (MouseEvent me) {} 
 public void mousePressed (MouseEvent me) {} 
 public void mouseReleased (MouseEvent me) {} 
 public void mouseExited (MouseEvent me) {}

 }

Code:
public class Land 
{
 int nummer;
 double x;
 double y;
 String naam;
 int  aantalBuren;
 int[] buren = new int[6];
 int werelddeel;
 int eigenaar;
 int aantalLegers;

 
    // public Land (nummertje, x0, y0, naampje, aantalBuurtjes, buurtjes, continent, baas)
 public Land(int nummertje, double x0, double y0, String naampje, int aantalBuurtjes, int[] buurtjes, int continent, int baas, int aantalLegertjes)
 {
  nummer = nummertje;
  x = x0;
  y = y0;
  naam = naampje;
  buren = buurtjes;
  aantalBuren = aantalBuurtjes;
  werelddeel = continent;
  eigenaar = baas;
  aantalLegers = aantalLegertjes;
  
 }
}
 
je had weer dezelfde fout gemaakt met een vergelijking :P

if (aangeklikt = true && speelbord.nummer == aanvaller)

verder is je conditie niet helemaal goed. je eerste statement is if aangeklikt == false -> teken de circel. als er dus wel aangeklikt is worden de circels niet meer getekend behalve degene waarop geklikt is:

if (aangeklikt = true && speelbord.nummer == aanvaller)


om dit probleem op te lossen moet je je if statement enigsinds aanpassen namelijk:

[cpp]
//deze moet dus geel gemaakt worden
if (aangeklikt == true && speelbord.nummer == aanvallen)
{
//teken gebeure (if spelen == 0) ...etc
}
//nu komt de verandering. ipc if (aangeklikt == false)
//aangezien je de circels altijd wilt tekenen.
else{
//hier je andere logica.
}

[/cpp]

nog even voor z`n compleetheid: in je draw methode bij de landen for i loop:

[cpp]

//landen
for (i=1;i<43;i++)
{
if (aangeklikt == true && speelbord.nummer == aanvaller)
{
if(speler == 0)
{
gr.setColor(Color.RED);
gr.fillOval((int) speelbord.x -straal-2, (int) speelbord.y -straal-2, 34, 34);
}
else
{
gr.setColor(Color.BLUE);
gr.fillOval((int) speelbord.x -straal-2, (int) speelbord.y -straal-2, 34, 34);
}

gr.setColor(Color.YELLOW);
gr.fillOval((int) speelbord.x -straal, (int) speelbord.y -straal, 30, 30);
}
else


{
if (speelbord.eigenaar == 0) gr.setColor(Color.RED);
else gr.setColor(new Color(0, 200, 255));

gr.fillOval((int) speelbord.x -straal, (int) speelbord.y -straal, 30, 30);
gr.setColor(Color.BLACK);
gr.drawOval((int) speelbord.x -straal, (int) speelbord.y -straal, 30, 30);
}



}

[/cpp]



}
 
Ahh bedankt. Haha de volgende keer dat ik vastloop zal ik eerst alle vergelijkingen nalopen.^^
 
hehe geen probleem was meer dan de vergelijking en zolang je er van leert is het oke toch ^^
 
Verder nog een tip, aangezien je in eclipse werkt kan je alles heel makkelijk uitlijnen. de volledige text in de .java file selecteren en dan ctrl+i dan lijnt eclipse alles netjes voor je uit
 
Dat is inderdaad handig :).
Maar er is nog iets nu als we nu een land selecteren dan is de bedoeling dat de landen in gevecht raken, dit werkt nog niet want gevecht hebben we nog niks over gezegt, maar in ieder geval zou het geselecteerde land weer rood moeten worden.

Code:
if(aangeklikt == true)
			{
				for (k=1;k<43;k++)
				{
					for(j=0;j<6;j++)
					{
						if (Math.sqrt(Math.pow(xpos - speelbord[k].x,2)+ Math.pow(ypos - speelbord[k].y, 2)) < straal && speelbord[k].eigenaar!=speler
								&& speelbord[speelbord[k].buren[j]] == speelbord[speelbord[k].buren[aanvaller]])
						{
							verdediger = speelbord[k].nummer;
							gevecht = true;
							aangeklikt = false;
						}
					}

				}
			}

Want aangeklikt wordt false zoals je ziet.

hele programma nog een keer:

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

public class Risk extends Applet 
implements MouseListener, ActionListener

{ 
	private Button eindePlaatsingsFase;
	private Button eindeVersterkingsFase;
	private Button eindeAanvalsFase;
	int xpos, ypos;
	int straal=15;
	int afname=0;
	boolean gevonden = false;
	boolean fasePlaatsingLegers = true;
	boolean versterkingsFase = false;
	boolean aanvalsFase = false;
	boolean aangeklikt = false;
	boolean gevecht = false;
	int versterkingen;
	int speler=0;
	int aanvaller;
	int verdediger;

	Land [] speelbord = new Land[43];
	int[][] verbinding = 
		{
			{0,  0,  0,  0,  0,  0},//0
			{2,  3,  4,  5,  0,  0},//1
			{1,  4,  27, 0,  0,  0},//2
			{1,  5,  7,  9,  0,  0},//3
			{1,  2,  5,  6,  0,  0},//4
			{1,  3,  4,  6,  7,  8},//5
			{4,  8,  14, 0,  0,  0},//6
			{3,  5,  8,  9,  0,  0},//7
			{5,  6,  7,  0,  0,  0},//8
			{3,  7,  10, 0,  0,  0},//9
			{9,  11, 12, 0,  0,  0},//10
			{10, 12, 13, 0,  0,  0},//11
			{10, 11, 13, 21, 0,  0},//12
			{11, 12, 0,  0,  0,  0},//13
			{6,  15, 16, 0,  0,  0},//14
			{14, 16, 17, 18, 0,  0},//15
			{14, 15, 17, 19, 0,  0},//16
			{15, 16, 18, 19, 20, 0},//17
			{15, 17, 20, 32, 35, 36},//18
			{16, 17, 20, 21, 0,  0},//19
			{17, 18, 19, 21, 22, 36},//20
			{12, 19, 20, 22, 23, 24},//21
			{20, 21, 24, 36, 0,  0},//22
			{21, 24, 25, 0, 0,  0},//23
			{21, 22, 23, 26, 36, 0},//24
			{23, 24, 26,  0,  0, 0},//25
			{24, 25, 0,  0,  0,  0},//26
			{2,  28, 29, 31, 33, 0},//27
			{27, 30, 31, 0,  0,  0},//28
			{27, 33, 0,  0,  0,  0},//29
			{28, 31, 32, 33, 34, 0},//30
			{27, 28, 30, 33, 0,  0},//31
			{18, 30, 34, 35, 0,  0},//32
			{27, 29, 30, 31, 34, 0},//33
			{30, 32, 33, 35, 37, 38},//34
			{18, 32, 34, 36, 37, 0},//35
			{18, 20, 22, 24, 35, 37},//36
			{34, 35, 36, 38, 0,  0},//37
			{34, 37, 39, 0,  0,  0},//38
			{38, 40, 41, 0,  0,  0},//39
			{39, 41, 42, 0,  0,  0},//40
			{39, 40, 42, 0,  0,  0},//41
			{40, 41, 0,  0,  0,  0} //42
		};

	public void init()
	{
		int i, hulp, p, q;

		// public Land (nummertje, x0, y0, naampje, aantalBuurtjes, buurtjes, continent, baas, aantalLegeertjes)
		speelbord[0] = new Land(0,  0,     0,     "", 0, verbinding[0],   0, 0, 1);
		speelbord[1] = new Land(1,  62.5,  47.5,  "", 4, verbinding[1],   1, 0, 1);
		speelbord[2] = new Land(2,  162.5, 47.5 , "", 3, verbinding[2],   1, 0, 1);
		speelbord[3] = new Land(3,  37.5,  122.5, "", 4, verbinding[3],   1, 0, 1);
		speelbord[4] = new Land(4,  137.5, 122.5, "", 4, verbinding[4],   1, 0, 1);
		speelbord[5] = new Land(5,  87.5,  172.5, "", 6, verbinding[5],   1, 0, 1);
		speelbord[6] = new Land(6,  162.5, 197.5, "", 3, verbinding[6],   1, 0, 1);
		speelbord[7] = new Land(7,  62.5,  247.5, "", 4, verbinding[7],   1, 0, 1);
		speelbord[8] = new Land(8,  137.5, 247.5, "", 3, verbinding[8],   1, 0, 1);
		speelbord[9] = new Land(9,  37.5,  322.5, "", 3, verbinding[9],   1, 0, 1);
		speelbord[10]= new Land(10, 87.5,  397.5, "", 3, verbinding[10],  2, 0, 1);
		speelbord[11]= new Land(11, 62.5,  472.5, "", 3, verbinding[11],  2, 0, 1);
		speelbord[12]= new Land(12, 162.5, 447.5, "", 4, verbinding[12],  2, 0, 1);
		speelbord[13]= new Land(13, 112.5, 522.5, "", 2, verbinding[13],  2, 0, 1);
		speelbord[14]= new Land(14, 237.5, 122.5, "", 3, verbinding[14],  3, 0, 1);
		speelbord[15]= new Land(15, 312.5, 122.5, "", 4, verbinding[15],  3, 0, 1);
		speelbord[16]= new Land(16, 237.5, 197.5, "", 4, verbinding[16],  3, 0, 1);
		speelbord[17]= new Land(17, 312.5, 222.5, "", 5, verbinding[17],  3, 0, 1);
		speelbord[18]= new Land(18, 387.5, 222.5, "", 6, verbinding[18],  3, 0, 1);
		speelbord[19]= new Land(19, 237.5, 272.5, "", 4, verbinding[19],  3, 0, 1);
		speelbord[20]= new Land(20, 337.5, 297.5, "", 6, verbinding[20],  3, 0, 1);
		speelbord[21]= new Land(21, 262.5, 372.5, "", 6, verbinding[21],  4, 0, 1);
		speelbord[22]= new Land(22, 362.5, 372.5, "", 4, verbinding[22],  4, 1, 1);
		speelbord[23]= new Land(23, 237.5, 472.5, "", 3, verbinding[23],  4, 1, 1);
		speelbord[24]= new Land(24, 362.5, 447.5, "", 5, verbinding[24],  4, 1, 1);
		speelbord[25]= new Land(25, 287.5, 547.5, "", 3, verbinding[25],  4, 1, 1);
		speelbord[26]= new Land(26, 387.5, 522.5, "", 2, verbinding[26],  4, 1, 1);
		speelbord[27]= new Land(27, 712.5, 47.5,  "", 5, verbinding[27],  5, 1, 1);
		speelbord[28]= new Land(28, 662.5, 72.5,  "", 3, verbinding[28],  5, 1, 1);
		speelbord[29]= new Land(29, 762.5, 97.5,  "", 2, verbinding[29],  5, 1, 1);
		speelbord[30]= new Land(30, 587.5, 122.5, "", 5, verbinding[30],  5, 1, 1);
		speelbord[31]= new Land(31, 697.5, 132.5, "", 4, verbinding[31],  5, 1, 1);
		speelbord[32]= new Land(32, 462.5, 147.5, "", 4, verbinding[32],  5, 1, 1);
		speelbord[33]= new Land(33, 737.5, 202.5, "", 5, verbinding[33],  5, 1, 1);
		speelbord[34]= new Land(34, 637.5, 197.5, "", 6, verbinding[34],  5, 1, 1);
		speelbord[35]= new Land(35, 537.5, 247.5, "", 5, verbinding[35],  5, 1, 1);
		speelbord[36]= new Land(36, 487.5, 347.5, "", 6, verbinding[36],  5, 1, 1);
		speelbord[37]= new Land(37, 612.5, 372.5, "", 4, verbinding[37],  5, 1, 1);
		speelbord[38]= new Land(38, 712.5, 347.5, "", 3, verbinding[38],  5, 1, 1);
		speelbord[39]= new Land(39, 662.5, 447.5, "", 3, verbinding[39],  6, 1, 1);
		speelbord[40]= new Land(40, 737.5, 447.5, "", 3, verbinding[40],  6, 1, 1);
		speelbord[41]= new Land(41, 687.5, 522.5, "", 3, verbinding[41],  6, 1, 1);
		speelbord[42]= new Land(42, 762.5, 497.5, "", 2, verbinding[42],  6, 1, 1);  

		for(i=0; i<100; i++)
		{
			p = (int)(Math.random() * 42 +1);
			q = (int)(Math.random() * 42 +1);
			hulp = speelbord[p].eigenaar;
			speelbord[p].eigenaar = speelbord[q].eigenaar;
			speelbord[q].eigenaar = hulp;       
		}

		//Button
		eindePlaatsingsFase = new Button("Klaar met plaatsen");
		eindeVersterkingsFase = new Button("Klaar met versterken");
		eindeAanvalsFase = new Button("Klaar met aanvallen");
		this.add(eindePlaatsingsFase);
		this.add(eindeVersterkingsFase);
		this.add(eindeAanvalsFase);
		eindePlaatsingsFase.addActionListener(this);
		eindeVersterkingsFase.addActionListener(this);
		eindeAanvalsFase.addActionListener(this);
		eindePlaatsingsFase.setVisible(true);
		eindeVersterkingsFase.setVisible(false);
		eindeAanvalsFase.setVisible(false);
		addMouseListener(this);  

	} 

	public void paint(Graphics gr)
	{
		//maak volledig scherm    
		this.setSize(Toolkit.getDefaultToolkit().getScreenSize());
		this.validate();                

		int i, j, p;
		int aantalLanden;
		int bonusVersterkingen;

		gr.setFont(new Font("Tahoma", Font.PLAIN, 24));
		if (speler == 0)
		{
			gr.drawString("Speler rood is aan de beurt. ", 30, 635);
		}
		else
		{
			gr.drawString("Speler blauw is aan de beurt. ", 30, 635);
		}

		gr.setFont(new Font("Tahoma", Font.PLAIN, 14));
		//tekenen van de landen en de verbindingslijntjes

		//werelddelen
		gr.setColor(Color.YELLOW);
		gr.fillRect(20, 30, 165, 310);
		gr.setColor(Color.PINK);
		gr.fillRect(45, 375, 140, 165);
		gr.setColor(new Color(130, 0, 195));
		gr.fillRect(220, 105, 185, 210);
		gr.setColor(Color.ORANGE);
		gr.fillRect(220, 350, 190, 220);
		gr.setColor(new Color(0, 220, 130));
		gr.fillRect(445, 30, 335, 360);
		gr.setColor(Color.CYAN);
		gr.fillRect(645, 430, 135, 110);

		//verbindingslijntjes
		for(i=1; i<43; i++)
			for(j=0; j<speelbord[i].aantalBuren; j++)
			{
				gr.setColor(Color.BLACK);
				gr.drawLine((int) speelbord[i].x, (int) speelbord[i].y, (int) speelbord[speelbord[i].buren[j]].x,(int) speelbord[speelbord[i].buren[j]].y);
			}

		//landen
		for (i=1;i<43;i++)
		{
			if (aangeklikt == true && speelbord[i].nummer == aanvaller)
			{
				if(speler == 0)
				{
					gr.setColor(Color.RED);
					gr.fillOval((int) speelbord[i].x -straal-2, (int) speelbord[i].y -straal-2, 34, 34);
				}
				else
				{
					gr.setColor(Color.BLUE);
					gr.fillOval((int) speelbord[i].x -straal-2, (int) speelbord[i].y -straal-2, 34, 34);
				}

				gr.setColor(Color.YELLOW);
				gr.fillOval((int) speelbord[i].x -straal, (int) speelbord[i].y -straal, 30, 30);
			}
			else
			{
				if (speelbord[i].eigenaar == 0) gr.setColor(Color.RED);
				else gr.setColor(new Color(0, 200, 255));

				gr.fillOval((int) speelbord[i].x -straal, (int) speelbord[i].y -straal, 30, 30);
				gr.setColor(Color.BLACK);
				gr.drawOval((int) speelbord[i].x -straal, (int) speelbord[i].y -straal, 30, 30);
			}

		} 

		//de waarde van het aantal legers in een land tonen
		gr.setColor(Color.BLACK);
		for (i=1;i<43;i++)
		{
			if(speelbord[i].aantalLegers<10)
				gr.drawString(""+speelbord[i].aantalLegers,(int) speelbord[i].x-2, (int)speelbord[i].y+5);
			if(speelbord[i].aantalLegers>9)
				gr.drawString(""+speelbord[i].aantalLegers,(int) speelbord[i].x-7, (int)speelbord[i].y+5);
		}

		//aantallanden
		aantalLanden = 0;
		for (i=1;i<43;i++)
		{
			if (speelbord[i].eigenaar == 0) aantalLanden++;
		}

		//  bonusVersterkingen
		bonusVersterkingen = 0;
		//N-Amerika
		if (speelbord[1].eigenaar==speler && speelbord[2].eigenaar==speler && speelbord[3].eigenaar==speler && speelbord[4].eigenaar==speler
				&& speelbord[4].eigenaar==speler&& speelbord[5].eigenaar==speler && speelbord[6].eigenaar==speler&& speelbord[7].eigenaar==speler
				&& speelbord[9].eigenaar==speler)
			bonusVersterkingen+=5;

		//Zuid-Amerika
		if (speelbord[10].eigenaar==speler && speelbord[11].eigenaar==speler && speelbord[12].eigenaar==speler && speelbord[13].eigenaar==speler)
			bonusVersterkingen+=2;

		//Europa
		if (speelbord[14].eigenaar==speler && speelbord[15].eigenaar==speler && speelbord[16].eigenaar==speler && speelbord[17].eigenaar==speler 
				&& speelbord[18].eigenaar==speler && speelbord[19].eigenaar==speler && speelbord[20].eigenaar==speler)
			bonusVersterkingen+=5;

		//Afrika
		if (speelbord[21].eigenaar==speler && speelbord[22].eigenaar==speler && speelbord[23].eigenaar==speler && speelbord[24].eigenaar==speler 
				&& speelbord[25].eigenaar==speler && speelbord[26].eigenaar==speler)
			bonusVersterkingen+=3;

		//Azie
		if (speelbord[27].eigenaar==0 && speelbord[28].eigenaar==0 && speelbord[29].eigenaar==0 && speelbord[30].eigenaar==0
				&& speelbord[31].eigenaar==speler && speelbord[32].eigenaar==speler && speelbord[33].eigenaar==speler && speelbord[34].eigenaar==speler
				&& speelbord[35].eigenaar==speler && speelbord[36].eigenaar==speler && speelbord[37].eigenaar==speler && speelbord[38].eigenaar==speler)
			bonusVersterkingen+=7;

		//Australië
		if (speelbord[39].eigenaar==speler && speelbord[40].eigenaar==speler && speelbord[41].eigenaar==speler && speelbord[42].eigenaar==speler )
			bonusVersterkingen+=2;

		//versterkingen
		if (fasePlaatsingLegers == true)
		{
			versterkingen = 3 + afname;
		}

		if (versterkingsFase == true && fasePlaatsingLegers == false) 
		{
			versterkingen = (int)aantalLanden/3 + bonusVersterkingen + afname;
		}
		if (versterkingsFase == true || fasePlaatsingLegers == true)
		{
			gr.drawString("aantal te plaatsen versterkingen:"+versterkingen,573,560);
		}
		if (aanvalsFase == true)
		{
			gr.drawString("Selecteer een land om aan te vallen.", 572, 560);
		}
		if (gevecht == true)
		{
			gr.drawString("Hello World.", 777, 777);
		}

		//gevechten
		if (gevecht == true)
		{
			p = (int) Math.random()*37;
		}

	}

	public void mouseClicked (MouseEvent me) 
	{
		int i = 1;
		int j;
		int k;
		boolean gevonden = false;
		xpos = me.getX(); 
		ypos = me.getY();

		if (fasePlaatsingLegers == true)
		{ 

			while (i<43 && gevonden == false)
			{  
				if (Math.sqrt(Math.pow(xpos - speelbord[i].x,2)+ Math.pow(ypos - speelbord[i].y, 2)) < straal && speelbord[i].eigenaar==speler && versterkingen >0)  
				{
					gevonden = true;
					speelbord[i].aantalLegers++; 
					afname+=-1;
				}
				i++; 
			}  

		}
		if (versterkingsFase == true) 
		{
			while (i<43 && gevonden == false)
			{  
				if (Math.sqrt(Math.pow(xpos - speelbord[i].x,2)+ Math.pow(ypos - speelbord[i].y, 2)) < straal && speelbord[i].eigenaar==speler && versterkingen >0)  
				{
					gevonden = true;
					speelbord[i].aantalLegers++; 
					afname+=-1;
				}
				i++;
			}

		}

		if (aanvalsFase == true)
		{
			if(aangeklikt == false)
			{
				for (i=1;i<43;i++)
					for (j=0;j<6;j++)
					{
						if (Math.sqrt(Math.pow(xpos - speelbord[i].x,2)+ Math.pow(ypos - speelbord[i].y, 2)) < straal && speelbord[i].eigenaar==speler 
								&& speelbord[i].aantalLegers >1 && speelbord[speelbord[i].buren[j]].eigenaar != speler)
						{
							aangeklikt = true;
							aanvaller = speelbord[i].nummer;
						}
					}
			}

			if(aangeklikt == true)
			{
				for (k=1;k<43;k++)
				{
					for(j=0;j<6;j++)
					{
						if (Math.sqrt(Math.pow(xpos - speelbord[k].x,2)+ Math.pow(ypos - speelbord[k].y, 2)) < straal && speelbord[k].eigenaar!=speler
								&& speelbord[speelbord[k].buren[j]] == speelbord[speelbord[k].buren[aanvaller]])
						{
							verdediger = speelbord[k].nummer;
							gevecht = true;
							aangeklikt = false;
						}
					}

				}
			}


		}

		repaint();
	}

	public void actionPerformed(ActionEvent me)
	{ 
		if(me.getSource()== eindePlaatsingsFase)
		{
			if (speler == 0 && versterkingen == 0)
			{
				versterkingen+=19;
				afname = 0;
				speler = 1;
			}
			if (speler == 1 && versterkingen == 0)
			{
				fasePlaatsingLegers = false;
				versterkingsFase = true;
				afname = 0;
				speler = 0;
			} 
		}

		if(me.getSource()== eindeVersterkingsFase)
		{
			if (versterkingen ==0)
			{
				versterkingsFase = false;
				aanvalsFase  = true;
				afname = 0;
			}

		}

		if(me.getSource()== eindeAanvalsFase)
		{
			if (speler == 0)
			{
				speler = 1;
				versterkingsFase = true;
				aanvalsFase  = false;

			}
			if (speler == 1)
			{
				speler = 0;
				versterkingsFase = false;
				aanvalsFase  = true;

			}

		}

		if (fasePlaatsingLegers == true)
		{
			eindePlaatsingsFase.setVisible(true);
			eindeVersterkingsFase.setVisible(false);
			eindeAanvalsFase.setVisible(false);  
		}
		if (versterkingsFase == true)
		{
			eindePlaatsingsFase.setVisible(false);
			eindeVersterkingsFase.setVisible(true);
			eindeAanvalsFase.setVisible(false);  
		}
		if (aanvalsFase == true)
		{
			eindePlaatsingsFase.setVisible(false);
			eindeVersterkingsFase.setVisible(false);
			eindeAanvalsFase.setVisible(true);  
		}

		this.repaint();
	}

	public void mouseEntered (MouseEvent me) {} 
	public void mousePressed (MouseEvent me) {} 
	public void mouseReleased (MouseEvent me) {} 
	public void mouseExited (MouseEvent me) {}

}

Maar wel bedankt voor al je hulp en SNELLE reacties ;)
 
Laatst bewerkt:
De iteratie in het eerste blok code die je geeft, geeft een index out of bounds exception, het probleem is dat ik niet precies kan achterhalen waar het nou precies gebeurt vanwege de complexiteit van de if statement. Is er niet een andere oplossing om die if statement te maken ? het is namelijk bijna onbegonne werk om speelbord[speelbord[k].buren[aanvaller]] te debuggen. wat wil je precies bereiken met de if statement ? het ziet er enigsinds uit als piet apegras maar kan het mis hebben
 
We willen het land dat we hebben geselecteerd een buurland laten aanvallen. Dus met de if willen we dat het land dat we aanvallen een land van de andere speler is en behoord tot de buren van de aanvaller.
 
ga je dan geen probleem krijgen dat als je 2 buren hebt dat die ze alle2 gaat aanvallen ? of is dit juist de bedoeling
als dit niet de bedoeling is, is het niet makkelijker dat je de speler laat beslissen ? je zou dan eerst het land kunnen laten selecteren waarmee je wilt aanvallen en daarna het land dat de speler wil aanvallen.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan