Also, hier ist der Quelltext des Atoms-Applets

(Leider bisher unkommentiert, vielleicht finde ich ja noch Zeit)

Als Java-Datei hier zum Download (2 kByte)


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

import java.awt.event.*; 
class OKasten 
{ 
	int anzahl; 
	int farbe; 
	public void setFarbe(int pfarbe) {farbe = pfarbe;} 
	public int getFarbe() {return farbe;} 
	public void setAnzahl(int panzahl) {anzahl = panzahl;} 
	public int getAnzahl() {return anzahl;} 

} 
 
class OFeld 
{ 
	OKasten[][] feld = new OKasten[10][10]; 
	public OFeld(int typus) 
	{ 
		if (typus == 0)  
		{ 
			for(int i=0; i < 10; i++) 
			{ 
				for(int j=0; j < 10; j++) 
				{ 
					feld[i][j] = new OKasten(); 
					feld[i][j].setFarbe(0); 
					feld[i][j].setAnzahl(0); 
				} 
			} 
		} 
		else 
		{ 
			int raender; 
			for(int i=0; i < 10; i++) 
			{ 
				for(int j=0; j < 10; j++) 
				{ 
					feld[i][j] = new OKasten(); 
					feld[i][j].setFarbe(0); 
					raender = 0; 
					if ((i==1) || (i==8)) 
					{ 
						raender += 1; 
					} 
					if ((j==1) || (j==8)) 
					{ 
						raender += 1; 
					} 
					feld[i][j].setAnzahl(raender); 
				} 
			} 
		} 
	} 
	public void setFarbe(int pfarbe, int x,int y) {feld[x][y].setFarbe(pfarbe);} 
	public int getFarbe(int x,int y) {return feld[x][y].getFarbe();} 
	public void setAnzahl(int panzahl, int x,int y) {feld[x][y].setAnzahl(panzahl);} 
	public int getAnzahl(int x,int y) {return feld[x][y].getAnzahl();} 

} 
 
class RechtEck 
{ 
	static int laenge = 20; 
	static int breite = 20; 
	int x, y; 
	RechtEck (int px, int py) 
	{ 
		x = px; 
		y = py; 
	} 
	void paint(Graphics g, int da, int farbe) 
	{ 
		g.setColor(Color.black); 
		g.drawRect(x,y,breite,laenge); 
		switch (farbe) 
		{ 
			case 1: 
				g.setColor(Color.red); 
				break; 
			case 2: 
				g.setColor(Color.blue); 
				break; 
			default: 
				g.setColor(Color.black); 
		} 
 
		switch (da) 
		{ 
			case 3: 
				g.drawOval(x+2,y+2,4,4); 
			case 2: 
				g.drawOval(x+2,y+8,4,4); 
			case 1: 
				g.drawOval(x+8,y+2,4,4); 
				break; 
			case 0: break; 
			default: 
				g.drawOval(x+2,y+2,9,9); 
		} 
	} 
	boolean inside(int px, int py) 
	{ 
		return ((x < px) && (px < x + breite) && (y < py) && (py < y + laenge)); 
	} 

} 
 
 
public class Atoms extends Applet implements MouseListener { 
	RechtEck[][] kasten = new RechtEck[8][8]; 
	static OFeld Spielbrett; 
	static OFeld HilfsSpielbrett; 
	static int durchlauf = 1; 
	static int gfarbe = 1; 
	static boolean gameover = false; 
	static boolean ww = false;

        static boolean newclick = true;
	//********** ^ Variablen ^ ********** 
	public void textAusgabe(Graphics g, String text) 
	{ 
		g.setColor(Color.black); 
		g.drawString(text, 10,190); 
	} 
 
	public boolean allesEins() 
	{ 
		int zaeler = 0; 
		ww = true; 
		for(int aei=0; aei < 8; aei++) 
		{ 
			for(int aej=0; aej < 8; aej++) 
			{ 
				if (zaeler == 0) 
				{ 
					if (Spielbrett.getFarbe(aei+1,aej+1) != 0) 
					{ 
						zaeler = Spielbrett.getFarbe(aei+1,aej+1); 
					} 
				} 
				else 
				{ 
					if ((Spielbrett.getFarbe(aei+1,aej+1) != zaeler)&&(Spielbrett.getFarbe(aei+1,aej+1) != 0)) 
					{ 
						ww = false; 
					} 
				} 
			} 
		} 
		return ww; 

}
        public void mousePressed(MouseEvent event) {newclick=true;}

        public void mouseClicked(MouseEvent event) {} 
	public void mouseEntered(MouseEvent event) {} 
	public void mouseExited(MouseEvent event) {}

        public void mouseReleased(MouseEvent event)
	{
            if (newclick){

                newclick=false;
		int da; 
		int x, y; 
		x = event.getX(); 
		y = event.getY(); 
		for(int i=0; i < 8; i++) 
			{ 
				for(int j=0; j < 8; j++) 
				{ 
					if ((kasten[i][j].inside(x,y)) && (Spielbrett.getFarbe(i+1,j+1) != gfarbe)) 
					{ 
						if (gfarbe == 1) 
						{gfarbe++;} 
						else {gfarbe = 1;} 
						da = Spielbrett.getAnzahl(i+1,j+1); 
						da++; 
						Spielbrett.setAnzahl(da,i+1,j+1); 
						Spielbrett.setFarbe(gfarbe, i+1,j+1); 
						boolean fertig; 
						do 
						{ 
							fertig = true; 
							for(int ii=0; ii < 8; ii++) 
							{	 
								for(int jj=0; jj < 8; jj++) 
								{	 
									if (Spielbrett.getAnzahl(ii+1,jj+1)+HilfsSpielbrett.getAnzahl(ii+1,jj+1) > 3) 
									{ 
										fertig = false; 
										// Steine: 

										Spielbrett.setAnzahl(Spielbrett.getAnzahl(ii+1,jj+1)-4+HilfsSpielbrett.getAnzahl(ii+1,jj+1), ii+1, jj+1); 
										Spielbrett.setAnzahl(Spielbrett.getAnzahl(ii,jj+1)+1, ii,jj+1); 
										Spielbrett.setAnzahl(Spielbrett.getAnzahl(ii+1,jj)+1, ii+1,jj); 
										Spielbrett.setAnzahl(Spielbrett.getAnzahl(ii+1,jj+2)+1, ii+1,jj+2); 
										Spielbrett.setAnzahl(Spielbrett.getAnzahl(ii+2,jj+1)+1, ii+2,jj+1); 
										// Farben : 

										if (Spielbrett.getAnzahl(ii+1, jj+1) < 1) 
										{ 
											Spielbrett.setFarbe(0, ii+1,jj+1); 
										} 
										Spielbrett.setFarbe(gfarbe, ii,jj+1); 
										Spielbrett.setFarbe(gfarbe, ii+1,jj); 
										Spielbrett.setFarbe(gfarbe, ii+1,jj+2); 
										Spielbrett.setFarbe(gfarbe, ii+2,jj+1); 
										if (allesEins() && durchlauf > 3) 
										{  
											gameover = true;  
											fertig = true;											 
										} 
									} 
                                                                } 
							} 
						} 
						while(fertig == false); 
					} 
				} 
			} 
		repaint(); 
            }

	}
 
	public void init()	{ 
		Spielbrett = new OFeld(0); 
		HilfsSpielbrett = new OFeld(1); 
		gameover = false; 
		durchlauf = 1; 
		for(int i=0; i < 8; i++) 
		{ 
			for(int j=0; j < 8; j++) 
			{ 
				kasten[i][j] = new RechtEck(i*RechtEck.breite+10,j*RechtEck.laenge+10); 
			} 
		} 
		addMouseListener(this); 
		repaint(); 
	} 
 
    public void paint(Graphics g) 
	{  
		g.setColor(Color.white); 
		g.fillRect(0,0,getSize().width, getSize().height); 
		int da; 
		int farbe; 
		if (durchlauf == 1) 
			init(); 
		durchlauf++; 
		for(int i=0; i < 8; i++) 
			{ 
				for(int j=0; j < 8; j++) 
				{ 
					da = Spielbrett.getAnzahl(i+1,j+1); 
					farbe = Spielbrett.getFarbe(i+1,j+1); 
					kasten[i][j].paint(g, da, farbe); 
				} 
			} 
		if (gameover == true) 
		{ 
			textAusgabe(g,"Gameover! Klicken für Neustart!"); 
			init(); 
		} 
		else if (gfarbe == 1) 
			textAusgabe(g,"Der blaue Spieler ist am Zug!"); 
		else 
			textAusgabe(g,"Der rote Spieler ist am Zug!"); 
	} 

}