Portál AbcLinuxu, 27. dubna 2024 07:45

Šášek, můj Qt 4 program pro hraní šachu

1.4.2010 23:29 | Přečteno: 2160× | Programování | Výběrový blog | poslední úprava: 21.8.2011 13:00

Čau lidi. Koukám, že vymýšlíte pěkný kraviny, abyste se navzájem nachytali. Já nikoho nachytat nechci, ale s kravinou přicházím taky...

Asi tejden zpátky jsem si zas po delší době vzpomněl na šachy, párkrát jsem dostal pekelnym způsobem na prdel, jelikož jsem znal pouze pravidla, ale nic víc. Tak jsem si sehnal nějaký knížky a poněkud mě to chytlo. Po chvíli jsem byl schopen (3x za sebou) porazit tátu, se kterým jsem naposledy hrál jako malej a kterýho jsem tenkrát nikdy neporazil. Pravda, není to moc silnej soupeř, ale známka zlepšení je evidentní.

Jelikož už jsem delší dobu nic nenaprogramoval, řekl jsem si, že by byla sranda zas něco začít, abych úplně nezakrněl, tak jsem oprášil svoje Qt4 znalosti a začal jsem řádit. Vývoj začal na Windows u přítelkyně, kde jsem naprogramoval jednoduchej board, doma jsem dodělal popisky os, zlepšil figury, přidal pár checků tahů ("teamkilly", kdo je na řadě, pěšci), rotace boardu a už se objevujou i počátky podpory šachové notace. Viz screenshot.

Vím, že existuje hafo vymazlenýho šachovýho software, ale to je mi vcelku jedno, pro mě je výzvou projektu detekce matu a patu. Milestone je pak kontrola tahů (zatím můžete hrát úplný kraviny, třeba brát dámu hned jako první tah :-D) a podpora tažení zadáním šachové notace (k tomu už se docela blížím). Patrně udělám i síťovej multiplayer (ale nevim jestli se k tomu někdy dostanu, abych pravdu řekl). Hráč bude mít možnost hrát třemi způsoby: drag&drop (to už jsem naprogramoval), source&dest. click a šachovou notací.

FAQ: AI? Ne, to psát nehodlám. Kdybych to někdy chtěl do programu integrovat, asi bych použil Crafty, to je hustodémonskej engine, kterej podle mě při správný konfiguraci musí vyklepnout (v nejhorším zpatit) hru s každým.

V současnosti je hra ve stavu "jo a ne" :-D Vyjde to skoro na stejno jako když použijete fyzickou šachovnici – žádná kontrola tahů (kromě pěšců), atd. Ale aspoň vidíte historii tahů a kdo je na řadě... Hlavní problém je, že chybí podpora rošády, proměny pěšců a braní mimochodem, ale vzhledem k aktuální anarchii celé hry to lze nějak obejít.

Jestli budete koukat na kód, tak ten taky berte s rezervou, chystám různý sjednocení věcí a podobně. Ale připomínkám se nebráním.

Takže tady je odkaz na Gitweb: http://git.watzke.cz/?p=sasek.git;a=summary. Takhle to můžete vyzkoušet:

git clone git://git.watzke.cz/sasek.git
cd sasek
qmake # nebo qmake-qt4
make # případně s -j3 (nebo víc)
./sasek
       

Hodnocení: 88 %

        špatnédobré        

Obrázky

Šášek, můj Qt 4 program pro hraní šachu, obrázek 1 Šášek, můj Qt 4 program pro hraní šachu, obrázek 2 Šášek, můj Qt 4 program pro hraní šachu, obrázek 3

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

Komentáře

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

Vložit další komentář

2.4.2010 00:41 dementni.lojzik | skóre: 19 | blog: ze zivota na vsi
Rozbalit Rozbalit vše Re: Šášek, můj Qt 4 program pro hraní šachu
Odpovědět | Sbalit | Link | Blokovat | Admin
co je to za zahajeni? (myslim to na ty sachovnici)
David Watzke avatar 2.4.2010 00:47 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: Šášek, můj Qt 4 program pro hraní šachu
Náhodně jsem táhnul figurama jak mi přišly pod ruku, abych demonstroval záznam tý hry ve sloupci vpravo.
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
Fuky avatar 2.4.2010 01:32 Fuky | skóre: 52 | blog: 4u
Rozbalit Rozbalit vše Re: Šášek, můj Qt 4 program pro hraní šachu
Odpovědět | Sbalit | Link | Blokovat | Admin

Nazdárek, možná znáš, mě se líbí hraní na FreeChess.org, člověk si tam zahraje v jakoukoliv denní dobu a přeci jen je to zábavnější než hraní s robotem. ;-) A pokud tam budeš hrát pravidelně, určitě brzy zaznamenáš další nárůst ELO.

-- RÁMO: psí tábor , ETriatlon: Výuka plavání
Ilfirin avatar 2.4.2010 11:22 Ilfirin | skóre: 32 | blog: ilfblog | Liberec
Rozbalit Rozbalit vše Re: Šášek, můj Qt 4 program pro hraní šachu
Nebo Red Hot Pawn.

Ale poslední dobou mi přijde jako nejmenší zlo použít největší zlo, aneb šachy na facebooku (pravda, teď víc nechoděj než choděj).

Čímž chci říci, přijímám výzvy ;-)
2.4.2010 06:26 pasmen | skóre: 45 | blog: glob | Praha
Rozbalit Rozbalit vše Re: Šášek, můj Qt 4 program pro hraní šachu
Odpovědět | Sbalit | Link | Blokovat | Admin
Fakt dobrý, ty šachy se mi libí.
2.4.2010 08:01 void
Rozbalit Rozbalit vše Re: Šášek, můj Qt 4 program pro hraní šachu
Odpovědět | Sbalit | Link | Blokovat | Admin
No a co to teda umí, když to nemá ani kontrolu tahů nebo hru proti počítači? :) Ono když se řekne "naprogramoval jsem šachy", tak to většinou znamená naprogramovat tu umělou inteligenci, ne jen GUI. GUI nakliká každej, (dobrou) umělou inteligenci jen ti nejlepší (a nejvytrvalejší).
2.4.2010 08:26 Robert Krátký | skóre: 94 | blog: Robertův bloček
Rozbalit Rozbalit vše Re: Šášek, můj Qt 4 program pro hraní šachu
GUI nakliká každej, (dobrou) umělou inteligenci jen ti nejlepší (a nejvytrvalejší).
Je zbytečné programovat znovu engine. Crafty, GNU Chess a další jsou dostatečně dobré. Naopak dobrých GUI pro jejich použití v Linuxu moc není.
Fluttershy, yay! avatar 2.4.2010 09:04 Fluttershy, yay! | skóre: 92 | blog:
Rozbalit Rozbalit vše Re: Šášek, můj Qt 4 program pro hraní šachu
Naopak dobrých GUI pro jejich použití v Linuxu moc není.

Ještě aby! Cpát do jádra GUI pro hraní šachu, to jsou mi nápady...

🇵🇸Touch grass🇺🇦 ✊ no gods, no masters
2.4.2010 09:13 Robert Krátký | skóre: 94 | blog: Robertův bloček
Rozbalit Rozbalit vše Re: Šášek, můj Qt 4 program pro hraní šachu
Jako modul.... proč ne? Ostatně, neznáš FBUI? To je okenní GUI přímo v jádře. Btw, už dlouho sháním někoho, kdo by o tom napsal článek.
2.4.2010 11:27 void
Rozbalit Rozbalit vše Re: Šášek, můj Qt 4 program pro hraní šachu
"AI? e, to psát nehodlám. Kdybych to někdy chtěl do programu integrovat, asi bych použil Crafty (...)"

Takže není jeho současným cílem engine zabzudovat. To, co udělal, už je asi finální produkt.
David Watzke avatar 2.4.2010 12:11 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: Šášek, můj Qt 4 program pro hraní šachu
Není to zdaleka finální produkt. Teprv jsem začal a mám před maturitou, tak klid :-)
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
David Watzke avatar 2.4.2010 12:25 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: Šášek, můj Qt 4 program pro hraní šachu
No a co to teda umí, když to nemá ani kontrolu tahů nebo hru proti počítači? :)
Zatím nic moc :-) Ale rýsuje se to zatím (řekl bych) vcelku rychle.
(dobrou) umělou inteligenci jen ti nejlepší (a nejvytrvalejší).
To je jasný.
Ono když se řekne "naprogramoval jsem šachy", tak to většinou znamená naprogramovat tu umělou inteligenci, ne jen GUI.
No, nevím kdo určuje, co to znamená většinou, ale podstatný pro mě je se něco naučit nebo aspoň oprášit znalosti Qt4.
GUI nakliká každej
Věř mi, že moc klikání se při vyvíjení projektu nekonalo. Kód má v tuhle chvíli ~600 řádků (resp. ~470 bez hlaviček).
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
2.4.2010 08:28 Robert Krátký | skóre: 94 | blog: Robertův bloček
Rozbalit Rozbalit vše Re: Šášek, můj Qt 4 program pro hraní šachu
Odpovědět | Sbalit | Link | Blokovat | Admin
Tak tomuhle fandím, doufám, že to dotáhneš do stavu, kdy to bude dobře použitelné. Měl jsem rád Knights, ale už to dlouho nikdo nevyvíjí a verze pro Qt4/KDE4 tedy asi nevznikne.
David Watzke avatar 6.4.2010 23:41 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: Šášek, můj Qt 4 program pro hraní šachu
Btw. verze pro KDE4 už vznikla, akorát toho moc neumí... viz kde-apps.org
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
2.4.2010 08:43 trekker.dk | skóre: 72
Rozbalit Rozbalit vše Re: Šášek, můj Qt 4 program pro hraní šachu
Odpovědět | Sbalit | Link | Blokovat | Admin
Jen tak mimochodem - víš o braní mimochodem?
Quando omni flunkus moritati
David Watzke avatar 2.4.2010 12:10 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: Šášek, můj Qt 4 program pro hraní šachu
Jo, vím. To jsem jen zapomněl vyjmenovat :-)
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
2.4.2010 09:51 Murry | skóre: 16 | Brno
Rozbalit Rozbalit vše Re: Šášek, můj Qt 4 program pro hraní šachu
Odpovědět | Sbalit | Link | Blokovat | Admin
Fandim ;-)
Ja take vyvijim sachovy program. Zatim jsem ho neuverejnil nikde, nicmene na zaklade jeho jsem dostal praci, udelal maturitu,... (skoda ze na vysku neberou na zaklade referenci, musel jsem tenkrat delat zkousky)..
tmr avatar 2.4.2010 12:13 tmr | skóre: 17 | blog: Offtopic | Praha 5
Rozbalit Rozbalit vše Re: Šášek, můj Qt 4 program pro hraní šachu
Odpovědět | Sbalit | Link | Blokovat | Admin
Celkem pěkný... Taky dělám šachy, akorát mobilní - jestli máte někdo Androida, otestujte prosím vývojovou verzi Chess Walku (viz patička), jsou to šachy s online (freechess.org) i offline (zatím velmi slabý engine) hrou.
Josef Kufner avatar 5.4.2010 01:02 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Šášek, můj Qt 4 program pro hraní šachu
Odpovědět | Sbalit | Link | Blokovat | Admin
Kdysi jsem napsal univerzální hrací desku. Obstarává to síťovou komunikaci, GUI a vůbec všechny tyhle blbosti. Stačí napsat modul pro hru a je to. Akorát to je takové maličko nedodělané, ale opravdu jen maličko.
Hello world ! Segmentation fault (core dumped)

Založit nové vláknoNahoru

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