Bin gerade dabei Schach in XNA zu programmieren.
Das Feld ist eingefügt & die Figuren auch.
Habe die Figuren als Rechtecke definiert und sie auf dem Feld platziert.
Die einzelnen Felder wurden nicht definiert.
Habe die Rechtecke (Schachfiguren) einfach auf bestimmte Koordinaten
gesetzt.
Code:
spriteBatch.Begin();
spriteBatch.Draw(rook_b, new Rectangle(0, 0, 75, 75), null, Color.White);
spriteBatch.End();
Jetzt meine Frage: Wie mache ich es, dass ich eine Schachfigur anwähle und sie dann auf ein
bestimmtes Feld setzte?
& Wie kann ich die Schachregeln definieren?
Habe schon das ganze Internet durchforstet, aber bin nicht wirklich fündig geworden.
Hoffe jemand von euch kann mir helfen.
Würde ganz intuitiv die einzelnen Schachbrettfelder auf ein 2-dimensionales Array abbilden. Wenn du das hast, dann kann man auch einfach Regeln definieren.
Ehm, ich kenn da jetzt kein Link oder Tutorial zu. Einfach den Kopf anstrengen Du weißt welche Maße das Spielbrett hat. Und dann teilst du die Breite oder Höhe durch 8, weil du in jeder Zeile/Spalte 8 Schachbrettfelder hast. Dann weißt du welche Maße ein einzelnes Schachbrettfeld hat (falls es dir nicht schon bekannt ist). So. Dann musst du in dem Array speichern, welche Figur sich dort befindet. Am besten erstellst du für alle Figuren ein allgemeines Enum. Dann füllst du das Array mit den Spielfiguren. Die Indizes bekommst du über einfache Mathematik heraus.
Es gibt keine Universalregel und kein Tutorial, in dem dir vermutlich jeder Schritt zum eigenen Schachspiel erklärt wird.
Teil dein Problem in beherrschbare Teilprobleme auf. Niemand wird für "Schach mit XNA" sofort eine Lösung parat haben, aber du kannst anfangen zu überlegen, welche Repräsentation die Figuren haben sollen, wie die Logik intern aufgebaut sein soll und wie das dann präsentiert werden soll, das ist nämlich alles voneinander trennbar.
So habe ich das übrigens 2012 in Java gemacht, ganz ohne Tutorial oder sonst was.
Wenn ich mich richtig erinnere, habe ich dafür ein GridLayout verwendet und dann ein Array mit 64 Elementen verwendet. Ich habe mal den Code dafür rausgesucht:
Code:
public class Mainframe {
private int k = 0;
private final JFrame chessFrame = new JFrame("Chess 0.1");
private final JPanel chessPanel = new JPanel(new BorderLayout());
public InfoPanel infoPanel;
public Data d = new Data(this);
public NDPanel[] panels = new NDPanel[64];
public Mainframe(String player1, String player2) {
chessPanel.setLayout(new GridLayout(8, 8));
for (int i = 0; i < 64; i++) {
if (i % 8 == 0)
++k;
panels[i] = new NDPanel(d.getLaunchFigure(i), k % 2, (i < 16 ? 0 : i > 47 ? 1 : -1), this);
chessPanel.add(panels[i]);
panels[i].setIndex(i);
++k;
}
infoPanel = new InfoPanel(player1, player2);
infoPanel.setPreferredSize(new Dimension(240, 700));
chessPanel.setSize(700, 700);
chessFrame.setLayout(new BorderLayout());
chessFrame.setSize((int)(940), (int)(chessPanel.getSize().height));
chessFrame.setMinimumSize(new Dimension(740, 500));
chessFrame.setResizable(false);
chessFrame.add(infoPanel, BorderLayout.EAST);
chessFrame.add(chessPanel);
chessFrame.setLocationRelativeTo(null);
chessFrame.setVisible(true);
}
public Mainframe() {
new Mainframe("Player1", "Player2");
}
}
Ja ja, bitte nicht hauen für den Code, das war 2012, 2 Wochen nachdem ich das erste Mal Java angefasst hatte. :<
Pushen ist verboten, wir sind ja nicht gezwungen dir zu helfen :3
qqdev hat doch schon was gutes geschrieben, genauso wie das Beispiel von snow.
Du hast 8 Spalten/Zeilen, erstelle dir ein 2D-Array ( )
Danach bestimmst du für die jede Figur einen Wert der in dem Array gespeichert wird. Kannst auch den kompletten Namen darein schreiben.
Bei jedem Zug musst du natürlich deine Figur in dem Array auch ändern.
Weiß grad nicht ob das mit Array.sort gehen würde ( )
Nach dem Array change event eine Abfrage machen ob eine Figur geschlagen worden ist oder nicht.
Notfalls nimm dir mal ein Stück papier und male/schreibe es auf, mache ein Ablaufdiagramm oder Schreibtischtest
[XNA/C#] Schach erstellen, Figuren bewegen 03/27/2015 - C/C++ - 4 Replies Hallo Community!
Ich wollte mit ein paar Freunden Schach mit Hilfe XNA programmieren.
Wir haben schon alle Figuren auf den richtigen Felder und die Figuren als Rechteck definiert, aber wir schaffen es nicht die Figuren zu bewegen.:confused:
Hoffe ihr könnt mir helfen.
Ich bedanke mich für jede Hilfe.
[B]Schach[S]e*Gold 01/11/2013 - elite*gold Trading - 7 Replies Guten Tag ich habe da mal meine kleines Schach Game:)
So sieht das ganz aus
http://img3.fotos-hochladen.net/uploads/schachoqp jsft0ln.png
Ich verkaufe die complete Source dieses Programmes,was in C# geschrieben wurde. Es besitzt eine eigen KI gegen die der Spiel spielen soll:), in dem Archive ist die Source sowie die Exe schon fertig kompiliert;)
Wer kennt sich mit dem erstellen einer .dll aus / kann eine erstellen ? 11/15/2011 - All Points Bulletin - 3 Replies Hallöchen erstmal. Eine kleine frage werf ich mal kurz in die Runde: Kennt sich jemand mit dem erstellen von .dll's aus bzw. kann eine mit einem entsprechendem Source Code erstellen (für APB )? Ich weiß nicht, ob das unter Thema "Hack Request" fällt, aber naja. Wäre super, wenn jemand irgendwie ein DEUTSCHES TuT findet (ich hab keines gefunden, aber auch nicht gründlich gesucht) für irgendwas, womit man die dll's eben herstellen kann. Ansonsten wäre es sehr gut, wenn jemand, der sich mit dem...
[C#]Gibts Tutorial für Spiele erstellen oder Hacks erstellen? 05/01/2011 - .NET Languages - 19 Replies Hey gibs hier in epvp Tutorials wie man Ein Spiel erstellt z.B. einen Shooter und wie man einen Hack erstellt?
Oder habt ihr auf Youtube iwas gefunden?
Naja Hoffe auf Antwort :D
Das ganze mit C#
Und ich meine keine Minigames sondern eher große Spiele.
THX iM VORRAUS
Online Schach 12/15/2006 - General Gaming Discussion - 0 Replies HI,
weis jemand ob ich mir ein online schach spiel wo ich gegen menschliche spieler =) antreten kann kostenlos saugen kann ?? Also ein gutes online schachspiel