Java Processing Schach Klassen?

6 Antworten

Du könntest beispielsweise eine Oberklasse "Figur" erstellen, in die du alle Attribute und Methoden schreibst, die jede Figur haben soll (z. B. das Attribut "Farbe", in diesem Fall dargestellt durch den bool'schen Wert "schwarz", oder die Methode "ziehen()").

public abstract class Figur {
private boolean schwarz;
private int pos_x, pos_y;
public Figur(boolean farbe_neu, int pos_x_neu, int pos_y_neu) {
schwarz = farbe_neu;
pos_x = pos_x_neu;
pos_y = pos_y_neu;
}
private boolean ziehen(int x, int y);
}

Dann brauchst du für jede Figurenklasse eine Unterklasse, in diesem Beispiel für die Figur des Bauers (ich bin mir nicht ganz sicher, ob man die Attribute nochmal hinschreiben muss ...)

public class Bauer extends Figur {
//evtl. private boolean schwarz; ...
public Bauer(boolean schwarz_neu, int pos_x_neu, int pos_y_neu) {
super(schwarz_neu); //sollte so funktionieren ...
}
public boolean ziehen(int x, int y) {
if (x > 0 && x < 3 && y < 2 && y > -2) { //nicht vollstaendig
pos_x = pos_x + x;
pos_y = pos_y + y;
return true;
} else {
return false;
}
}

In der Hauptklasse legst du dann für jede Figur ein Objekt der jeweiligen Figur an (Beispiel Bauer:

Bauer bauer_w_1 = new Bauer(false, 2, 1); //1. weisser Bauer

). Diese kannst du dann auch in einem Array speichern:

Figur[] figuren = new Figur[32];
figuren[0] = new Bauer(false, 2, 1); //theoretisch sollte es so funktionieren ...

Du musst vielleicht noch ein bisschen rumprobieren, ich habe es jetzt nicht getestet, aber im Prinzip sollte es so funktionieren ...

2

Danke ich werde es mal probieren. Aber was meint die public und privat class in deinem code?

0
33
@credist

Du willst ein Schachspiel programmieren und hast nicht einmal ein Anfängertutorial für OOP gemacht?

Kapselung/Polymorphie/Vererbung/Abstraktion muss man kennen und können um irgendwas zu machen.

Und die Zugriffsmodifikatoren public/protected/private sind nichtmal OOP sondern elementares Basiswissen.

0
2
@EightSix

ya sry eightsix.....ich habe informatik mit processing seit circa 5monaten da ich gerade in der 10.klasse bin und wir haben uns nur mit dem anfängerzeugs beschäftigt....

0

du hast dir ja mächtig was vorgenommen - das Programmieren von Schach- und Gospielen steht nicht am Anfang, sondern eher am Höhepunkt der Programmiererausbildung.

Wenn du nur zwei menschliche Spieler im Sinn hast, und das in Java, dann schau mal da in diese Seite, da gibts jede Menge Futter:

http://www.java-forum.org/thema/schach-array-und-gui-verknuepfung-enum.116294/

wenn du Mensch:Computer Spieler im Sinn hast, musst du dich mit KI, Backtracking und Regel-Algorithmen firm machen, da gibts keine Gutefrage-Gute Antworten. Leider. Spieleprogrammierung ist ein Lernberuf, ein hartes Brot.

2

danke für den link. Ya ich hatte vor es auf ein 2 spieler spiel auszurichten, weil um eine KI zu programmieren fehlt mir noch einiges.....ich hab grad erst vor ein paar monaten in der 10.  mit informatik angefangen. ^^

1

Dir ist schon klar, dass du dir damit ein wirklich hartes Stück Arbeit vorgenommen hast?

Wie man Unterklassen erzeugt, steht im Ullenboom und 100.000 anderen Java-Lehrbüchern.

Über diesem „Klassen-Gedöns“ steht das berühmte Entwurfsmuster „MVC“ – Modell(klassen), View(klassen) und Control(klassen)!

Zur Programmlogik gehören nicht nur der Aufbau des Brettes, Figurenfarben und Figurenzüge, sondern insbesondere Bewertungsfunktionen und dazugehörige Berechnungsfunktionen, damit das Programm auch eine „Spielstärke“ entwickeln kann.

Bei aller Sympathie zum Schachspiel und Programmieren. Du solltest erst mal kleinere Brötchen backen … :-)

php array als alert ausgeben

Hallo zusammen,

ich stehe gerade vor einem Problem, das mich in den Wahnsinn treibt.

Ich möchte den Inhalt eines php arrays in einer alert - box ausgeben. Also habe ich einfach mal standartmäßig eine Schleife mit dem array erstellt:

for ($i = 0; $i < $durchlauf; $i++) {
echo $ergebnis[$i] ."<br>"; 
}

Nun frage ich mich aber, wie ich den Inhalt, also $ergebnis, in einer alert - box ausgeben kann. Wenn ich es in die Schleife packe, kommt ja immer ein alert, für jeden Index.

Ich stehe gerade irgendwie auf dem Schlauch^^

Über Antworten wäre ich sehr dankbar!

Grüße, Hummel

...zur Frage

Frage zu einem C# Programm mit User input?

Hallo liebe Community :-)!
Ich wollte ein C# Programm schreiben, welches ein Array erstellt.
Nun soll die Größe dieses Arrays vom User bestimmt werden.

 int eingabe;

      Console.Write("Geben Sie die Größe der Matrix an: ");

      try

      {

 eingabe = Convert.ToInt32(Console.ReadLine());

        Console.WriteLine("Ihre Zahl lautet " + eingabe);

      }

      catch

      {

        Console.WriteLine("Bitte geben Sie eine Zahl ein");

      }

      Console.ReadLine();

Das wäre bis jetzt mein "Code". Nur weiß ich nicht wie man die Eingabe abspeichert um mit dieser dann das Array zu erstellen.
Ich verlange kein fertiges Programm, nur paar Tipps und Verbesserungsvorschläge :-)

...zur Frage

Processing: Schachfiguren durch Klassen bewegen?

Hallo,

ich bin gerade dabei ein Schachspiel mit Processing zu programmieren und habe jetzt ein Schachbrett mit einem zweidimensionalen Array versehen und mehrere Klassen für die einzelnen Figuren erstellt: class Figuren class Schwarz extend Figuren .......

Nun weiß ich nicht genau wie ich es mit dem Bewegen der Figuren machen soll. Wenn ich z.B, Figuren [i] [j] machen würde und dann die figuren über die Klassen durch z.B. i+2 bewegen würde dann würde dieses ya für alle Figuren gelten. Außerdem weiß ich nicht genau wie es am besten mache, dass durch das erste Klicken auf die Figur die Figur und die begehbaren Felder markiert werden und durch das zweite Klicken die Figuren bewegt werden, auch wenn dann im Weg der Figur eine andere steht, dass dann erkannt wird, dass diese dort steht und dann entsprechende Felder nicht markiert werden oder gar begehbar sind. Am besten wäre es wahrscheinlich wenn man einen ValidMove definieren würde und dann dadurch festlegt welche Felder begehbar und welche nicht etc. Zusammen: Hilfe bitte bei der Bewegung der Figuren über die Klassen und beim Markieren der begehbaren Felder.

Vielen Dank im Voraus.

...zur Frage

Wie Position in einem zweidimensionalen Array in einem eindimensionalen Array speichern (java)?

Hallo. Ich mochte einen Backtracking-Algorythmus schreiben und dafür Positionen eines 2D-Arrays in ein eindimensionales Stack-Array schreiben. Wie mache ich das am besten? (ich arbeite in Java)

Danke für eure Antworten! :)

...zur Frage

Winkel und Diagonale im Microsoft Programm

Ich muss für den Matheunterricht ein Arbeitsblatt erstellen am Computer. Für Geometrie. So, jetzt habe ich also meine Figuren im Microsoft Word Programm erstellt (also keine Bilder aus dem Internet, sondern von Einfügen und Formen). Das Problem ist, ich weiß nicht, wie ich in die Figuren eine Diagonale und rechte Winkel bekomme. Also, wie bekomme ich das hin? MfG, Melyn

...zur Frage

Was möchtest Du wissen?