|
You last visited: Today at 05:29
Advertisement
[XNA/C#] Schach erstellen
Discussion on [XNA/C#] Schach erstellen within the .NET Languages forum part of the Coders Den category.
04/11/2015, 13:57
|
#1
|
elite*gold: 1472
Join Date: Jun 2014
Posts: 2,665
Received Thanks: 544
|
[XNA/C#] Schach erstellen
Hallo e*pvp!
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.
So weit bin ich:
( )
|
|
|
04/11/2015, 14:02
|
#2
|
elite*gold: 724
Join Date: Mar 2011
Posts: 10,479
Received Thanks: 3,318
|
C/C++ -> .NET Languages
#moved
|
|
|
04/11/2015, 14:04
|
#3
|
elite*gold: 8
Join Date: Sep 2014
Posts: 625
Received Thanks: 178
|
Würde ganz intuitiv die einzelnen Schachbrettfelder auf ein 2-dimensionales Array abbilden. Wenn du das hast, dann kann man auch einfach Regeln definieren.
|
|
|
04/11/2015, 14:07
|
#4
|
elite*gold: 1472
Join Date: Jun 2014
Posts: 2,665
Received Thanks: 544
|
Kenne mich nicht gut mit XNA aus. Könntest du mir das vielleicht erklären bzw. einen Link
zu einem guten Tutorial geben?
|
|
|
04/11/2015, 14:14
|
#5
|
elite*gold: 8
Join Date: Sep 2014
Posts: 625
Received Thanks: 178
|
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.
|
|
|
04/11/2015, 14:22
|
#6
|
elite*gold: 724
Join Date: Mar 2011
Posts: 10,479
Received Thanks: 3,318
|
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.
|
|
|
04/11/2015, 14:48
|
#7
|
elite*gold: 1472
Join Date: Jun 2014
Posts: 2,665
Received Thanks: 544
|
@snow
Würdest du es auch mit 2D Arrays machen?
|
|
|
04/11/2015, 15:09
|
#8
|
elite*gold: 724
Join Date: Mar 2011
Posts: 10,479
Received Thanks: 3,318
|
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. :<
|
|
|
04/11/2015, 15:13
|
#9
|
elite*gold: 1472
Join Date: Jun 2014
Posts: 2,665
Received Thanks: 544
|
Danke, mal sehen ob ich was damit anfange. ^^
|
|
|
04/24/2015, 18:02
|
#10
|
elite*gold: 1472
Join Date: Jun 2014
Posts: 2,665
Received Thanks: 544
|
Kann mir vielleicht noch jemand helfen?
|
|
|
04/25/2015, 20:47
|
#11
|
elite*gold: 0
Join Date: Apr 2010
Posts: 10,289
Received Thanks: 3,613
|
Wo genau liegt denn dein Problem?
|
|
|
04/25/2015, 21:17
|
#12
|
elite*gold: 1472
Join Date: Jun 2014
Posts: 2,665
Received Thanks: 544
|
So weit bin ich:
 (  )
Ja, ich weiß, das Programm ist schlecht geschrieben, aber das ist das
erste mal das ich etwas in C# programmiere.
Nun denn. Das Problem jetzt, ich weiß nicht was ich weiter tun soll.
(Hintergrundmusik einfügen hat es nicht viel besser gemacht^^)
Würde mich sehr über Hilfe freuen.
|
|
|
04/28/2015, 16:59
|
#13
|
dotCom
elite*gold: 9842
Join Date: Mar 2009
Posts: 16,844
Received Thanks: 4,675
|
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
Ablaufdiagramm ? WikipediaSchreibtischtest ? Wikipedia
|
|
|
 |
Similar Threads
|
[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
|
All times are GMT +1. The time now is 05:29.
|
|