Portál AbcLinuxu, 25. dubna 2024 23:21


Dotaz: Jak vykreslit a "oživit" šachovnici (vlastní šachový program)?

6.1.2012 17:56 šachista
Jak vykreslit a "oživit" šachovnici (vlastní šachový program)?
Přečteno: 1149×
Odpovědět | Admin

Dobrý večer,

chtěl bych hlavně pro zábavu vytvořit vlastní šachový program pro Linux. Kdo si hraje, nezlobí... Nejde mi o to, aby porážel velmistry. Jde mi o to, abych se pěkně pobavil při jeho tvorbě a následném testování.

V hlavě už mám sesumírováno to, že použiju buď GTK+, nebo QT. Bude to program pro X Window. Programovacím jazykem může být C nebo C++.

První problém, který řeším. -- Jak vykreslit šachovnici a "oživit ji" (tedy, aby šlo pomocí myše nebo klávesnice zahrát tah). Věřím, že až se vypořádám s tímto problémem, tak ostatní už bude relativně jednoduché.

Děkuju předem za všechny reakce. Nejvíc mě tedy pálí to vykreslení a "oživení" šachovnice.

Poznámka: Jsem spíš amatér, co se týká programování.

Nástroje: Začni sledovat (2) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

wamba avatar 6.1.2012 19:00 wamba | skóre: 38 | blog: wamba
Rozbalit Rozbalit vše Re: Jak vykreslit a "oživit" šachovnici (vlastní šachový program)?
Odpovědět | | Sbalit | Link | Blokovat | Admin
xboard?
This would have been so hard to fix when you don't know that there is in fact an easy fix.
6.1.2012 19:23 šachista
Rozbalit Rozbalit vše Re: Jak vykreslit a "oživit" šachovnici (vlastní šachový program)?

Díky za tip.

Josef Kufner avatar 9.1.2012 15:17 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Jak vykreslit a "oživit" šachovnici (vlastní šachový program)?
Pokud chceš obecnější nástroj, koukni na netboard.
Hello world ! Segmentation fault (core dumped)
mess avatar 6.1.2012 19:05 mess | skóre: 43 | blog: bordel | Háj ve Slezsku - Smolkov
Rozbalit Rozbalit vše Re: Jak vykreslit a "oživit" šachovnici (vlastní šachový program)?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Já bych si vytvořil vlastní widget (v Qt odvozením od třídy QWidget), který by na sebe pomocí QPainteru maloval šachovnici. A události od myši bych řešil reimplementaci metody mousePressEvent. V této metodě se dá zjistit jaké tlačítko myši a kde bylo stisknuto (normálně souřadnice). A podle toho bych si spočítal, na kterém políčku šachovnice bylo stisknuto. No a poslední krok by byl překreslení šachovnice tak, aby reflektovala změny způsobené tím kliknutím nebo čímkoliv.
Cez párne mesiace zošíváš vaginy, cez neparne montuješ hajzle.
6.1.2012 19:22 šachista
Rozbalit Rozbalit vše Re: Jak vykreslit a "oživit" šachovnici (vlastní šachový program)?

Děkuju. Vyzkouším a dám vědět, jak jsem dopadnul.

8.1.2012 14:38 sachmat
Rozbalit Rozbalit vše Re: Jak vykreslit a "oživit" šachovnici (vlastní šachový program)?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Zdravim, ja som tiez podobny projekt pred casom ako zadanie a neskor z nudy a zaujatia zacal a mozem s niecim poradit. Kedze sa venujem Qt tak vrelo odporucam prave Qt a c++. Najdes kopu projektov, ktore ta mozu inspirovat a ktore maju otvoreny kod, takze inspiracia moze byt hlbsia=) Dobry projekt (i ked trochu stagnujuci) je napriklad ChessX.

Jednym z prvych tvojich rozhodnuti musi byt to, ako budes sachovnicu reprezentovat. ChessX napr. na reprezentaciu sachovnice pouziva bitboard. Je to datova struktura ktora je velmi rychla (hlavne na 64 bitovej platforme) ale jej zvladnutie je narocnejsie. Dalsou datovou strukturou je dvojrozmerne pole, nie az take rychle ale urcite viac intuitivne. Viac sa o tom da docitat napr. tu.

Co sa tyka vykreslovania, v Qt sa mozes rozhodnut medzi pouzitim QGraphicsView a vykreslovat QGrahicsItem ako policko, figurku a podobne alebo priamo overloadnut paint funkciu a kreslit pomocou painteru. Prva moznost sa mi zda jednoduchsia a poskytuje viac a jednoduchsich moznosti. Tutorialy ti napriklad ukazu aj to, ako implementovat drag and drop funkcionalitu. Dufam, ze prvotne problemy ta neodradia a ak budes mat este otazky, rad poradim.
9.1.2012 17:30 šachista
Rozbalit Rozbalit vše Re: Jak vykreslit a "oživit" šachovnici (vlastní šachový program)?

Děkuju za informace a vůbec ochotu mi pomoct.

V současné době jsem to zatím "vzdal" a pustil se do jiného programu, který není tak těžký na naprogramování.

Až bude šachový program aktuální, tak se určitě ovzu.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.