IRC-Schach

Hier kommt alles herein, was in die anderen Kategorien thematisch nicht passt

Moderator: Team SW-AT

Antworten
Benutzeravatar
Jake
Erfahrener User
Beiträge: 257
Registriert: Do 24. Sep 2009, 05:51
Geschlecht:
Kontaktdaten:

IRC-Schach

Beitrag von Jake » So 17. Feb 2013, 13:44

Ich hab ein kleines Schachspiel programmiert (naja, fertig ist es noch nicht ganz), das über IRC kommuniziert. Das heißt, es gibt einen Channel ([url]irc://irc.euirc.net/#cmnSchach[/url]) in den alle Clients joinen, man sieht dann die anderen in dem Channel und kann sie zu einem Spiel auffordern.

Derweil kann man Ziehen und Figuren schlagen (ganz intuitiv per Drag&Drop ^^)[-], leider hab ich noch nicht alle Regeln dafür wie eine Figur ziehen kann, deswegen kann man mit ein paar Figuren noch überall hin ziehen, und Bilder anstatt Text im Feld gibt's auch noch nicht. Aber grundsätzlich funktioniert es ja schon mal, und wenn die Spieler die Schachregeln selber einhalten lässt sich ein Spiel schon ordentlich spielen. Toll, ne?[/-]

Inzwischen sind alle Regeln implementiert. Nur eins fehlt noch, dass der König nicht auf ein "bedrohtes" Feld ziehen darf und ein Check ob der König Matt ist bzw ein Patt besteht. Ansonsten ist es soweit fertig, denke ich.

Wenn man einen Nick in der Nicklist auswählt, kann man entweder drauf doppelklicken und ihn damit zu nem Spiel auffordern, oder ihm mit einem Rechtsklick eine Nachricht schicken (da poppt dann ein Fenster auf, wo man die Nachricht eingibt). Man kann aber auch ganz normal wie in einem Chatclient (mit ein paar kleineren Mankos noch der weil, etwa falsch dargestellte Sonderzeichen durch fehlerhaftes Character-Decoding) chatten, es gibt ein kleines Fenster in dem man sieht was im Channel geschrieben wird und man kann darunter in nem Textfeld Text eingeben.

Hier noch der Link zum Download (ist in Java programmiert, darum ein .jar): http://lejap.at/IRChessCMN.jar

Wer's mal ausprobieren will, ich bin eig derzeit fast immer dort.

Ach ja, weil es mir gerade auffällt: man muss das neueste Java Runtime Environment installiert haben (Version 7), kriegt man unter http://www.java.com/. Da Java updaten generell nicht schadet, sowieso zu empfehlen.

[-]Sollte jemand für das Spiel Figuren-Bilder machen wollen, gerne! Am passendsten für das aktuelle Layout wäre 50x50 oder so.[/-] Hab Figuren von Wikimedia Commons: http://commons.wikimedia.org/wiki/Categ ... ess_pieces
Danke an Dragon_GT für den Tip.

Vorschau im Anhang / ein bisschen größer im Spoiler
Spoiler :
Bild
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Zuletzt geändert von Jake am Mo 18. Feb 2013, 06:51, insgesamt 3-mal geändert.
MfG
Benutzeravatar
ColaCheater
Administrator
Beiträge: 282
Registriert: Mo 7. Sep 2009, 14:51
Wohnort: Speyer
Kontaktdaten:

Re: IRC-Schach

Beitrag von ColaCheater » So 17. Feb 2013, 14:40

Du darfst dann noch ne genaue Erklärung schreiben wie deine Befehle aufgebaut sind und dann schreib ich i.wann auch noch meinen Client :P

(Und dann gibts den nächsten Contest wer den besten Client baut :D )
Benutzeravatar
Jake
Erfahrener User
Beiträge: 257
Registriert: Do 24. Sep 2009, 05:51
Geschlecht:
Kontaktdaten:

Re: IRC-Schach

Beitrag von Jake » So 17. Feb 2013, 16:44

Klar, kannst du haben:

Command := (FULL_REC_NICK | SHORT_REC_NICK) ":" CMD [ ":" CMD-ARGS]

FULL_REC_NICK := "[cmn]" SHORT_REC_NICK ("[o]" | "[a]")

SHORT_REC_NICK := IRC-Nick (bel.)

CMD := ("NEW" | "MSG" | "END" | "MOV" | "ACC" | "DEC" | "ILL")

CMD-ARGS hängt von CMD ab, sieht aber grundsätzlich so aus:

CMD-ARGS := ARG [":" CMD-ARGS]

für CMD =

NEW: ( "B" | "S" | "W" | "BLACK" | "SCHWARZ" | "WEISS" | "WEIß" ) (IgnoreCase)

ACC: [Text]

MOV: XY ":" XY wobei XY := [ABCDEFGH][12345678] (Case-Sensitive)

MSG: Text

DEC: [Text]

ILL: [Text]

END: Text

was ist wofür gedacht?

NEW -> Spiel-Anfrage, Argument steht für "Ich biete dir diese Farbe zum Spielen an." Der Anfragende hat also die andere Farbe.

ACC -> Annehmen einer Anfrage

DEC -> Ablehnen einer Anfrage

MOV -> Spielzug von Argument 1 nach Argument 2

ILL -> Der Spielzug den der Gegner grade gemacht hat ist laut dem Wissen dieses Clients nicht erlaubt

MSG -> Nachricht senden

END -> Das Spiel ist beendet, weil der Spieler nicht mehr will o.Ä. oder eine Schachmatt- bzw. Patt-Situation eingetreten ist.
MfG
Antworten