Hallo an alle!
Ich hoffe ihr koennt mir helfen.
Zurzeit machen wir im Informatikunterricht ein kleines Projekt.
Wir wurden in Gruppen aufgeteilt und müssen selber ein Spiel programmieren.
(Die Entwicklungsumgebung ist BlueJ)
Wir haben das Spiel TicTacToe gewählt und es funktioniert einigermaßen bis auf ein paar Probleme.
Der Lehrer hilft zwar den Gruppen beim Programmieren, aber er bringt auch verwirrende Inhalte mit ein.
Also die Probleme wären jetzt:
1.Die Gewinnueberpruefung funktioniert nicht, keine Ahnung wie man das anders machen kann(habe nicht soviel Erfahrung mit Java , machen wir erst seit diesem Schuljahr)
2. Im TicTacToe Spiel gibt es bei mir ja 9 Felder.Das Problem ist , dass man ein Feld zweimal mit einem Symbol(Kreis, kleinerer Kreis(als ersatz für ein x)belegen kann.
Das Spiel besteht aus 2 Klassen(oder wie sich die Dateien nennen) und hier sind die Quelltexte:
Ich hoffe ihr koennt mir helfen.
Zurzeit machen wir im Informatikunterricht ein kleines Projekt.
Wir wurden in Gruppen aufgeteilt und müssen selber ein Spiel programmieren.
(Die Entwicklungsumgebung ist BlueJ)
Wir haben das Spiel TicTacToe gewählt und es funktioniert einigermaßen bis auf ein paar Probleme.
Der Lehrer hilft zwar den Gruppen beim Programmieren, aber er bringt auch verwirrende Inhalte mit ein.
Also die Probleme wären jetzt:
1.Die Gewinnueberpruefung funktioniert nicht, keine Ahnung wie man das anders machen kann(habe nicht soviel Erfahrung mit Java , machen wir erst seit diesem Schuljahr)
2. Im TicTacToe Spiel gibt es bei mir ja 9 Felder.Das Problem ist , dass man ein Feld zweimal mit einem Symbol(Kreis, kleinerer Kreis(als ersatz für ein x)belegen kann.
Das Spiel besteht aus 2 Klassen(oder wie sich die Dateien nennen) und hier sind die Quelltexte:
Java:
import sum.kern.*;
/**
* @author
* @version
*/
public class TicTacToe3
{
// Objekte
Bildschirm derBildschirm;
Stift meinStift;
Tastatur dieTastatur;
Maus dieMaus;
Symbol[] symbole;
int aktiverspieler =1;
// Konstruktor
public TicTacToe3()
{
derBildschirm = new Bildschirm(400,550);
meinStift = new Stift();
dieTastatur = new Tastatur();
dieMaus = new Maus();
symbole = new Symbol[10];
}
public void spielfeld2()
{
meinStift.bewegeBis(50,0);
// Punkteanzeige für den Spieler 1
meinStift.zeichneRechteck(100,25);
meinStift.bewegeBis(250,0);
//Punkteanzeige für den zweiten Spieler
meinStift.zeichneRechteck(100,25);
//hier ist das eigentliche Spielfeld
meinStift.bewegeBis(50,100);
meinStift.zeichneRechteck(100,100);
meinStift.bewegeBis(150,100);
meinStift.zeichneRechteck(100,100);
meinStift.bewegeBis(250,100);
meinStift.zeichneRechteck(100,100);
meinStift.bewegeBis(50,200);
meinStift.zeichneRechteck(100,100);
meinStift.bewegeBis(150,200);
meinStift.zeichneRechteck(100,100);
meinStift.bewegeBis(250,200);
meinStift.zeichneRechteck(100,100);
meinStift.bewegeBis(50,300);
meinStift.zeichneRechteck(100,100);
meinStift.bewegeBis(150,300);
meinStift.zeichneRechteck(100,100);
meinStift.bewegeBis(250,300);
meinStift.zeichneRechteck(100,100);
meinStift.bewegeBis(100,450);
meinStift.zeichneRechteck(200,50);
}
public void zeichneSymbole(){
//Kreis oder Kreuz
for (int i=1; i<10;i++){
if(symbole[i].getSymbolort()==1)
{
meinStift.bewegeBis(100,350);
}
else if(symbole[i].getSymbolort()==2)
{
meinStift.bewegeBis(200,350);
}
else if(symbole[i].getSymbolort()==3)
{
meinStift.bewegeBis(300,350);
}
else if(symbole[i].getSymbolort()==4)
{
meinStift.bewegeBis(100,250);
}
else if(symbole[i].getSymbolort()==5)
{
meinStift.bewegeBis(200,250);
}
else if(symbole[i].getSymbolort()==6)
{
meinStift.bewegeBis(300,250);
}
else if(symbole[i].getSymbolort()==7)
{
meinStift.bewegeBis(100,150);
}
else if(symbole[i].getSymbolort()==8)
{
meinStift.bewegeBis(200,150);
}
else if(symbole[i].getSymbolort()==9)
{
meinStift.bewegeBis(300,150);
}
if (symbole[i].getSymbolart()==1)
{
meinStift.zeichneKreis(50);
}//bewege zur Position des Symbolortes. symbole[i].getSymbolort()
else if (symbole[i].getSymbolart()==2){
meinStift.zeichneKreis(20);
}
//zeichne Kreis oder Kreuz dorthin
}
}
public void wechselSpieler()
{
if (aktiverspieler==1)
{
aktiverspieler= 2;
}
else if (aktiverspieler == 2)
{
aktiverspieler = 1;
}
}
public void gewinnpruefung()
{
if (symbole[1].getSymbolort()== 1 && symbole[2].getSymbolort()== 2 && symbole[3].getSymbolort()== 3
||symbole[1].getSymbolort()== 1 && symbole[4].getSymbolort()== 4 && symbole[7].getSymbolort()== 7
||symbole[7].getSymbolort()== 7 && symbole[8].getSymbolort()== 8 && symbole[9].getSymbolort()== 9
||symbole[4].getSymbolort()== 4 && symbole[5].getSymbolort()== 5 && symbole[6].getSymbolort()== 6
||symbole[9].getSymbolort()== 9 && symbole[6].getSymbolort()== 6 && symbole[3].getSymbolort()== 3
||symbole[7].getSymbolort()== 7 && symbole[5].getSymbolort()== 5 && symbole[3].getSymbolort()== 3
||symbole[1].getSymbolort()== 1 && symbole[5].getSymbolort()== 5 && symbole[9].getSymbolort()== 9
)
{System.out.println(dieTastatur.zeichen()+"gewonnen");
}
}
public void ueberpruefeTastatur(){
while (dieTastatur.wurdeGedrueckt())
{
if (dieTastatur.zeichen() == '1'){
symbole[1] = new Symbol(aktiverspieler, 1);
this.zeichneSymbole();
this.wechselSpieler();
}
else if (dieTastatur.zeichen() == '2'){
symbole[2] = new Symbol(aktiverspieler, 2);
this.zeichneSymbole();
this.wechselSpieler();
}
else if(dieTastatur.zeichen() == '3')
{
symbole[3] = new Symbol(aktiverspieler, 3);
this.zeichneSymbole();
this.wechselSpieler();
}
else if (dieTastatur.zeichen() == '4'){
symbole[4] = new Symbol(aktiverspieler, 4);
this.zeichneSymbole();
this.wechselSpieler();
}
else if (dieTastatur.zeichen() == '5'){
symbole[5] = new Symbol(aktiverspieler, 5);
this.zeichneSymbole();
this.wechselSpieler();
}
else if (dieTastatur.zeichen() == '6'){
symbole[6] = new Symbol(aktiverspieler, 6);
this.zeichneSymbole();
this.wechselSpieler();
}
else if (dieTastatur.zeichen() == '7'){
symbole[7] = new Symbol(aktiverspieler, 7);
this.zeichneSymbole();
this.wechselSpieler();
}
else if (dieTastatur.zeichen() == '8'){
symbole[8] = new Symbol(aktiverspieler, 8);
this.zeichneSymbole();
this.wechselSpieler();
}
else if (dieTastatur.zeichen() == '9'){
symbole[9] = new Symbol(aktiverspieler, 9);
this.zeichneSymbole();
this.wechselSpieler();
}else{
System.out.println(dieTastatur.zeichen()+" wurde gedruckt.Bitte drücke eine Zahl von 1 bis 9.Bevorzugt auf dem Numpad :)))))))");
}
//Löschen des obersten Zeichens im Tastaturspeicher.
dieTastatur.weiter();
}
}
// Dienste
public void fuehreAus()
{
this.spielfeld2();
for (int i=1; i<10;i++){
symbole[i] = new Symbol(0,i);
}
while (!(dieMaus.doppelKlick()))
{
ueberpruefeTastatur();
}
this.gewinnpruefung();
// Aufraeumen
}
}
Java:
/**
* @author
* @version
*/
public class Symbol
{
//Art des Symbols: 0: nicht vergeben, 1:Kreuz, 2: Kreis
private int symbolart=0;
//7 oben link, 8 oben mitte, 9 oben rechts
//4 mitte links, 5 mitte mitte, 6 mitte rechts
//....
private int symbolort;
public Symbol(int pSymbolart, int pSymbolort){
this.symbolart = pSymbolart;
this.symbolort = pSymbolort;
}
public int getSymbolart(){
return symbolart;
}
public int getSymbolort(){
return symbolort;
}
public void setSymbolart(int pSymbolart)
{
this.symbolart= pSymbolart;
}
}
Zuletzt bearbeitet von einem Moderator: