Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > .NET Languages
You last visited: Today at 05:29

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[XNA/C#] Schach erstellen

Discussion on [XNA/C#] Schach erstellen within the .NET Languages forum part of the Coders Den category.

Reply
 
Old   #1

 
sexualising's Avatar
 
elite*gold: 1472
The Black Market: 206/0/3
Join Date: Jun 2014
Posts: 2,665
Received Thanks: 544
Question [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:
()
sexualising is offline  
Old 04/11/2015, 14:02   #2

 
snow's Avatar
 
elite*gold: 724
Join Date: Mar 2011
Posts: 10,479
Received Thanks: 3,318
Arrow C/C++ -> .NET Languages

#moved
snow is offline  
Old 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.
qqdev is offline  
Old 04/11/2015, 14:07   #4

 
sexualising's Avatar
 
elite*gold: 1472
The Black Market: 206/0/3
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?
sexualising is offline  
Old 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.
qqdev is offline  
Old 04/11/2015, 14:22   #6

 
snow's Avatar
 
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.
snow is offline  
Old 04/11/2015, 14:48   #7

 
sexualising's Avatar
 
elite*gold: 1472
The Black Market: 206/0/3
Join Date: Jun 2014
Posts: 2,665
Received Thanks: 544
@snow

Würdest du es auch mit 2D Arrays machen?
sexualising is offline  
Old 04/11/2015, 15:09   #8

 
snow's Avatar
 
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. :<
snow is offline  
Thanks
1 User
Old 04/11/2015, 15:13   #9

 
sexualising's Avatar
 
elite*gold: 1472
The Black Market: 206/0/3
Join Date: Jun 2014
Posts: 2,665
Received Thanks: 544
Danke, mal sehen ob ich was damit anfange. ^^
sexualising is offline  
Old 04/24/2015, 18:02   #10

 
sexualising's Avatar
 
elite*gold: 1472
The Black Market: 206/0/3
Join Date: Jun 2014
Posts: 2,665
Received Thanks: 544
Kann mir vielleicht noch jemand helfen?
sexualising is offline  
Old 04/25/2015, 20:47   #11



 
Shawak's Avatar
 
elite*gold: 0
The Black Market: 259/0/0
Join Date: Apr 2010
Posts: 10,289
Received Thanks: 3,613
Wo genau liegt denn dein Problem?
Shawak is offline  
Old 04/25/2015, 21:17   #12

 
sexualising's Avatar
 
elite*gold: 1472
The Black Market: 206/0/3
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.
sexualising is offline  
Old 04/28/2015, 16:59   #13
dotCom
 
Devsome's Avatar
 
elite*gold: 9842
The Black Market: 107/0/0
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 ? Wikipedia
Schreibtischtest ? Wikipedia
Devsome is offline  
Thanks
1 User
Reply

Tags
bewegen, figuren, regeln, schach, xna


Similar Threads 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.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.