Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: Diese Funktion ist in einigen Browsern möglicherweise nicht verfügbar.
import java.applet.Applet;
import java.awt.Graphics;
import java.awt.Image;
import java.util.HashMap;
import java.util.Map;
public class Viergewinnt extends Applet
{
private static final long serialVersionUID = 1L;
private boolean init = true;
private int playerOnRow = 0;
private Map<String, Field> fieldMap;
private Images images;
private Grid grid;
private Paint paint;
public void init()
{
new MouseListener(this);
this.images = new Images(this);
this.grid = new Grid();
this.createFields();
this.paint = new Paint(this);
this.init = false;
this.repaint();
}
private void createFields()
{
this.fieldMap = new HashMap<String, Field>();
for(int y = 0; y < 6; y++)
for(int x = 0; x < 7; x++)
this.fieldMap.put(x + "/" + y, new Field());
}
public void paint(Graphics g)
{
if(this.init)
return;
this.paint.run(this.images, this.fieldMap, g);
this.grid.paint(g);
}
public void mouseClicked(int x)
{
if(x < 90 || x > 506)
return;
x-= 90;
x = (int)Math.floor(x / 60);
int y = 5;
for(; y != -1 && this.fieldMap.get(x + "/" + y).getImage() != null; y--);
if(y < 0)
return;
Image image = null;
if(this.playerOnRow == 0)
image = this.images.getSol();
else if(this.playerOnRow == 1)
image = this.images.getLuna();
if(image == null)
return;
this.fieldMap.get(x + "/" + y).setImage(image);
if(this.playerOnRow == 0)
this.playerOnRow = 1;
else
this.playerOnRow = 0;
this.repaint();
}
}
import java.awt.Image;
import java.awt.MediaTracker;
import java.awt.Toolkit;
public class Images extends Object
{
private Image sol;
private Image luna;
public Images(Viergewinnt viergewinnt)
{
super();
MediaTracker tracker = new MediaTracker(viergewinnt);
this.sol = Toolkit.getDefaultToolkit().getImage("sol.jpg");
this.luna = Toolkit.getDefaultToolkit().getImage("luna.jpg");
tracker.addImage(this.sol, 0);
tracker.addImage(this.luna, 1);
try
{
tracker.waitForAll();
}
catch(Throwable t)
{
t.printStackTrace();
}
}
public Image getSol()
{
return(this.sol);
}
public Image getLuna()
{
return(this.luna);
}
}
import java.awt.Graphics;
public class Grid extends Object
{
public Grid()
{
super();
}
public void paint(Graphics g)
{
g.drawString("Vier Gewinnt", 260, 18);
g.drawRect(85, 85, 420, 420);
g.drawLine(85, 155, 505, 155);
g.drawLine(85, 225, 505, 225);
g.drawLine(85, 295, 505, 295);
g.drawLine(85, 365, 505, 365);
g.drawLine(85, 435, 505, 435);
g.drawLine(85, 505, 505, 505);
g.drawLine(145, 85, 145, 505);
g.drawLine(205, 85, 205, 505);
g.drawLine(265, 85, 265, 505);
g.drawLine(325, 85, 325, 505);
g.drawLine(385, 85, 385, 505);
g.drawLine(445, 85, 445, 505);
}
}
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
public class MouseListener extends MouseAdapter
{
private Viergewinnt viergewinnt;
public MouseListener(Viergewinnt viergewinnt)
{
super();
viergewinnt.addMouseListener(this);
this.viergewinnt = viergewinnt;
}
public void mouseClicked(MouseEvent m)
{
int x = m.getX();
this.viergewinnt.mouseClicked(x);
}
}
import java.awt.Image;
public class Field extends Object
{
private Image image;
public Field()
{
super();
}
public void setImage(Image image)
{
this.image = image;
}
public Image getImage()
{
return(this.image);
}
}
import java.awt.Graphics;
import java.awt.Image;
import java.util.Map;
public class Paint extends Object
{
private Viergewinnt viergewinnt;
public Paint(Viergewinnt viergewinnt)
{
super();
this.viergewinnt = viergewinnt;
}
public void run(Images images, Map<String, Field> fieldMap, Graphics g)
{
for (int y = 0; y < 6; y++)
for(int x = 0; x < 7; x++)
{
Field field = fieldMap.get(x + "/" + y);
if(field == null)
{
System.err.println("Error");
return;
}
Image image = field.getImage();
if(image != null)
g.drawImage(image, x * 60 + 90, y * 70 + 95, this.viergewinnt);
}
}
}
import java.applet.Applet;
import java.awt.Graphics;
import java.awt.Image;
import java.util.HashMap;
import java.util.Map;
public class Viergewinnt extends Applet //Erbe von Applet
{
private static final long serialVersionUID = 1L; //Serialisierungs-Zeugs
private boolean init = true; //Wird noch intialisiert
private int playerOnRow = 0; //Welcher Spieler ist dran?
private Map<String, Field> fieldMap; //Hier werden die Felder gespeichert
private Images images; //Das Bilder-Object
private Grid grid; //Das Raster-Objekt
private Paint paint; //Das Zeichen-Object
public void init() //Überschreibt Applet.init();
{
new MouseListener(this); //Das MouseListener-Object
this.images = new Images(this); //Das Bilder-Object wird intialisiert.
this.grid = new Grid();//-""- Raster-Object -""-
this.createFields(); //Felder werden erstellt.
this.paint = new Paint(this);//Das Paint-Object wird intialisiert.
this.init = false; //Intialisierung abgeschlossen
this.repaint();//Zeichne neu
}
private void createFields() //Siehe Viergewinnt.init();
{
this.fieldMap = new HashMap<String, Field>(); //Neue HashMap
for(int y = 0; y < 6; y++) //Vertikal
for(int x = 0; x < 7; x++)//Horzeniontal
this.fieldMap.put(x + "/" + y, new Field());//Feld erstellen und in Map schreiben.
}
public void paint(Graphics g) //Die Zeichenmethode
{
if(this.init) //Wird noch intialisiert
return; //Zeichnen abbrechen
this.paint.run(this.images, this.fieldMap, g); //Methode run des Zeichenobjekts aufrufen.
this.grid.paint(g); //Methode Paint des Raster-Objects aufrufen.
}
public void mouseClicked(int x) //Noch so ne Methode
{
if(x < 90 || x > 506) //Maus ausserhalb des Rasters
return; //dann abbrechen
x-= 90; //sonst x
x = (int)Math.floor(x / 60); //ausrichten.
int y = 5;//eine Int mit Wert 5.
for(; y != -1 && this.fieldMap.get(x + "/" + y).getImage() != null; y--); //Stein nach unten fallen lassen.
if(y < 0)
return;
Image image = null; //Bilddatei erstellen.
if(this.playerOnRow == 0) //Spieler 1 an der Reihe
image = this.images.getSol(); //Sonne hohlen
else if(this.playerOnRow == 1) //sonst
image = this.images.getLuna(); //Mond holen.
if(image == null) //Fehlerabfang
return;
this.fieldMap.get(x + "/" + y).setImage(image); //Stein setzen.
if(this.playerOnRow == 0) //Anderer Spieler dran.
this.playerOnRow = 1;
else
this.playerOnRow = 0;
this.repaint(); //Neu zeichen.
}
}
import java.awt.Image;
import java.awt.MediaTracker;
import java.awt.Toolkit;
public class Images extends Object
{
private Image sol; //Sonne,
private Image luna; //Mond,
//und keine Sterne. ._.
public Images(Viergewinnt viergewinnt)
{
super();
MediaTracker tracker = new MediaTracker(viergewinnt); //Ein MediaTracker bitte
this.sol = Toolkit.getDefaultToolkit().getImage("sol.jpg"); //Bild laden
this.luna = Toolkit.getDefaultToolkit().getImage("luna.jpg"); //Bild laden
tracker.addImage(this.sol, 0); //Bild tracker geben
tracker.addImage(this.luna, 1); //this²
try
{
tracker.waitForAll(); //Warten bis fertig geladen wurde.
}
catch(Throwable t)
{
t.printStackTrace();
}
}
public Image getSol() //Sonne zurückgeben
{
return(this.sol);
}
public Image getLuna() //Mond zurückgeben
{
return(this.luna);
}
}
import java.awt.Graphics;
public class Grid extends Object
{
public Grid()
{
super(); //Konstruktor von Object aufrufen.
}
public void paint(Graphics g) //Zeichnet überschrift und Raster. Nix besonderes.
{
g.drawString("Vier Gewinnt", 260, 18);
g.drawRect(85, 85, 420, 420);
g.drawLine(85, 155, 505, 155);
g.drawLine(85, 225, 505, 225);
g.drawLine(85, 295, 505, 295);
g.drawLine(85, 365, 505, 365);
g.drawLine(85, 435, 505, 435);
g.drawLine(85, 505, 505, 505);
g.drawLine(145, 85, 145, 505);
g.drawLine(205, 85, 205, 505);
g.drawLine(265, 85, 265, 505);
g.drawLine(325, 85, 325, 505);
g.drawLine(385, 85, 385, 505);
g.drawLine(445, 85, 445, 505);
}
}
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
public class MouseListener extends MouseAdapter
{
private Viergewinnt viergewinnt;
public MouseListener(Viergewinnt viergewinnt)
{
super();
viergewinnt.addMouseListener(this); //Viergewinnt den MouseListener geben.
this.viergewinnt = viergewinnt;
}
public void mouseClicked(MouseEvent m) //Taste gedrückt.
{
int x = m.getX(); //Hohle x-Koordinaten
this.viergewinnt.mouseClicked(x); //Und rufe das Teil da auf.
}
}
import java.awt.Graphics;
import java.awt.Image;
import java.util.Map;
public class Paint extends Object
{
private Viergewinnt viergewinnt;
public Paint(Viergewinnt viergewinnt)
{
super();
this.viergewinnt = viergewinnt;
}
public void run(Images images, Map<String, Field> fieldMap, Graphics g) //Hier wird gezeichnet
{
for (int y = 0; y < 6; y++) //Vertikal
for(int x = 0; x < 7; x++) //Horenziontal
{
Field field = fieldMap.get(x + "/" + y); //Hohle das Feld
if(field == null) //Fehlerabfang
{
System.err.println("Error");
return;
}
Image image = field.getImage(); //Hohle den Spielsteing
if(image != null) //Ist einer gesetzt
g.drawImage(image, x * 60 + 90, y * 70 + 95, this.viergewinnt); //Zeichne ihm.
}
}
}
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.JOptionPane;
public class VierGewinnt_dummy extends Applet implements MouseListener {
private static final long serialVersionUID = -8566236578954888489L;
static int feld[][] = {
{ 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0 }
};
int player = 1;
int a = 0;
int b = 0;
Image rot;
Image blau;
Image cube;
String Spieler1 = JOptionPane
.showInputDialog("Spieler1:");
String Spieler2 = JOptionPane
.showInputDialog("Spieler 2:");
public void init() {
addMouseListener(this);
cube = Toolkit.getDefaultToolkit().createImage("cube.gif");
rot = getImage(getCodeBase(), "rot.gif");
blau = getImage(getCodeBase(), "blau.gif");
JOptionPane.showMessageDialog(null, Spieler1 +" beginnt!");
}
public boolean gewonnen(String Spieler) {
String s = "";
for (int y2 = 0; y2 < 6; y2++) {
for (int x1 = 0; x1 < 7; x1++) {
s = s + feld[y2][x1];
}
}
for (int x1 = 0; x1 < 7; x1++) {
for (int y2 = 0; y2 < 6; y2++) {
s = s + feld[y2][x1];
}
}
repaint();
if (s.contains(Spieler)) {
for (int x1 = 0; x1 < 7; x1++)
for (int y1 = 0; y1 < 6; y1++)
feld[y1][x1] = 0;
repaint();
return true;
}
return false;
}
public void drawSpielfeld(Graphics g) {
g.drawImage(cube, 0, 0, this);
g.setFont(new Font("Comic Sans MS", + Font.BOLD, 20));
g.setColor(Color.white);
g.drawLine(0, 50, 0, 350);
g.drawLine(50, 50, 50, 350);
g.drawLine(100, 50, 100, 350);
g.drawLine(150, 50, 150, 350);
g.drawLine(200, 50, 200, 350);
g.drawLine(250, 50, 250, 350);
g.drawLine(300, 50, 300, 350);
g.drawLine(350, 50, 350, 350);
g.drawLine(0, 50, 350, 50);
g.drawLine(0, 100, 350, 100);
g.drawLine(0, 150, 350, 150);
g.drawLine(0, 200, 350, 200);
g.drawLine(0, 250, 350, 250);
g.drawLine(0, 300, 350, 300);
g.drawLine(0, 350, 350, 350);
g.setColor(Color.red);
g.drawString("Vier Gewinnt", 225, 20);
g.drawRect(0,350,350,390);
g.setColor(Color.white);
g.fillRect(1, 349, 349, 389);
g.setColor(Color.black );
g.drawRect(50, 355, 242, 35);
g.setFont(new Font("Comic Sans MS", + Font.BOLD, 20));
g.setColor(Color.black);
g.drawString("Spielfeld Leeren", 96, 380);
}
public void paint(Graphics g) {
resize(351, 400);
drawSpielfeld(g);
for (int x = 0; x < 7; x++) {
for (int y = 0; y < 6; y++) {
if (feld[y][x] == 1)
g.drawImage(rot, 50 * x, 50 * y + 50, this);
if (feld[y][x] == 2)
g.drawImage(blau, 50 * x, 50 * y + 50, this);
}
}
g.drawString(Spieler1 + ":" + a, 0, 20);
g.drawString(Spieler2 + ":" + b, 0, 45);
if (player == 1) { g.drawRect(230,22,118,22);
g.setColor(Color.red);
g.fillRect(231, 23, 117, 21);}
if (player == 2) {
g.drawRect(230,22,118,22);
g.setColor(Color.blue);
g.fillRect(231, 23, 117, 21);
}
}
public void mouseClicked(MouseEvent arg0) {
}
public void mousePressed(MouseEvent arg0) {
int x = arg0.getX();
if (player == 1) {
int feldvoll = 5;
if (x < 50) {
for (feldvoll = 5; feld[feldvoll][0] != 0; feldvoll--) {
}
feld[feldvoll][0] = 1;
}
if (x > 50 && x < 100) {
for (feldvoll = 5; feld[feldvoll][1] != 0; feldvoll--) {
}
feld[feldvoll][1] = 1;
}
if (x > 100 && x < 150) {
for (feldvoll = 5; feld[feldvoll][2] != 0; feldvoll--) {
}
feld[feldvoll][2] = 1;
}
if (x > 150 && x < 200) {
for (feldvoll = 5; feld[feldvoll][3] != 0; feldvoll--) {
}
feld[feldvoll][3] = 1;
}
if (x > 200 && x < 250) {
for (feldvoll = 5; feld[feldvoll][4] != 0; feldvoll--) {
}
feld[feldvoll][4] = 1;
}
if (x > 250 && x < 300) {
for (feldvoll = 5; feld[feldvoll][5] != 0; feldvoll--) {
}
feld[feldvoll][5] = 1;
}
if (x > 300 && x < 350) {
for (feldvoll = 5; feld[feldvoll][6] != 0; feldvoll--) {
}
feld[feldvoll][6] = 1;
}
player = 2;
} else if (player == 2) {
int feldvoll = 5;
if (x < 50) {
for (feldvoll = 5; feld[feldvoll][0] != 0; feldvoll--) {
}
feld[feldvoll][0] = 2;
}
if (x > 50 && x < 100) {
for (feldvoll = 5; feld[feldvoll][1] != 0; feldvoll--) {
}
feld[feldvoll][1] = 2;
}
if (x > 100 && x < 150) {
for (feldvoll = 5; feld[feldvoll][2] != 0; feldvoll--) {
}
feld[feldvoll][2] = 2;
}
if (x > 150 && x < 200) {
for (feldvoll = 5; feld[feldvoll][3] != 0; feldvoll--) {
}
feld[feldvoll][3] = 2;
}
if (x > 200 && x < 250) {
for (feldvoll = 5; feld[feldvoll][4] != 0; feldvoll--) {
}
feld[feldvoll][4] = 2;
}
if (x > 250 && x < 300) {
for (feldvoll = 5; feld[feldvoll][5] != 0; feldvoll--) {
}
feld[feldvoll][5] = 2;
}
if (x > 300 && x < 350) {
for (feldvoll = 5; feld[feldvoll][6] != 0; feldvoll--) {
}
feld[feldvoll][6] = 2;
}
player = 1;
}
if (gewonnen("1111")) {
a = a + 1;
JOptionPane.showMessageDialog(null, Spieler1
+ " hat gewonnen!");
JOptionPane.showMessageDialog(null, Spieler2 + " ist dran!");
}
if (gewonnen("2222")) {
b = b + 1;
JOptionPane.showMessageDialog(null, Spieler2
+ " hat gewonnen!");
JOptionPane.showMessageDialog(null, Spieler1 + " ist dran!");
}
}
public void mouseReleased(MouseEvent arg0) {
}
public void mouseEntered(MouseEvent arg0) {
}
public void mouseExited(MouseEvent arg0) {
}
}