====== Reversi II ====== * Kontrola Reverzi * hráč odehraje hru bez jakýchkoliv problémů (legální tahy, bez vyjímek) - diskutovat krok [[courses:a4b99rph:cviceni:reversi:krok2|krok 2]]. * Diskuze: stavový prostor a heuristika * Použití heuristik v příbuzných problémech Nadcházející neděli (tedy 6.12.2015) do 23:59:59 je třeba odevzdat základního korektně hrajícího hráče, viz [[courses:a4b99rph:cviceni:reversi:start|reversi]]. > {{page>courses:a4b99rph:internal:cviceni:tyden10#reversi}} ====== Hádanka ====== > {{page>courses:a4b99rph:internal:cviceni:tyden10#hadanka}} ====== Debugging ====== Při psaní programů mohou nastat dva základní druhy chyb - //syntaktické// a //sémantické//. Zatímco syntaktické chyby odhalí kompilátor (v našem případě je vidíme již při psaní programu v IDE NetBeans), sémantické chyby musí obvykle odhalit sám programátor a to buď pomocí ladění programu (debugging), nebo pomocí testování (testing). Zatímco s testováním jste se setkali v úloze spam, kde jste měli k dispozici unit testy, tentokrát se naučíme používat debugger. ==== NetBeans Debugger ==== Debbuger je software, který umožňuje sledovat při běhu programu jeho vnitřní stav, případně ho simulovat. V NetBeans je debugger přímo součástí IDE. Pro lepší představu o debuggeru se podívejte na následující video [[http://www.youtube.com/watch?v=joWldbcp1So|Using NetBeans Debugger]]. Mezi základní způsoby použití debuggeru patří následující: * **Krokování programu** - v debug módu je možné krokovat program řádek po řádku a sledovat tak exekuci programu, hodnotu jednotlivých proměnných, vyhodnocování výrazů a mnoho dalšího. * **Vložení breakpointu** - na daný řadek lze vložit breakpoint. Breakpoint je bod, na kterém se zastaví vykonávání programu, když program spustíme v debug módu. Máme-li tedy podezření na chybu na určité řádce programu, vložíme na tuto řádku breakpoint a následně krokujeme. * **Sledování proměnných** - při krokování lze sledovat hodnoty proměnných * **Sledování stacku** - lze sledovat historii volání jednotlivých metod Možnosti debugování v NetBeans IDE si teď ukážeme na jednoduchém prográmku. Stáhněte si připravený {{:courses:a4b99rph:cviceni:files:binarysearch.zip|ukázkový program}} a otevřete si ho jako nový projekt ve vašem IDE. Jde o jednoduchou implementaci binárního vyhledávání v seřazeném seznamu čísel. > {{page>courses:a4b99rph:internal:cviceni:tyden10#debug}} ====== Debug v praxi ====== Stáhněte si připravený {{:courses:a4b99rph:cviceni:files:test1.zip|testovací program}}. Tento program pracuje s daty, vyhledává první datum a také je všechny třídí. Jako vstup je parametr odkazující na datový soubor. V programu jsou více či méně zřejmé chyby. Pokuste se co nejvíce chyb nalézt a opravte je (minimálně na přiložených datech). Dodržujte myšlenku programu a chyby opravujte lokálními změnami (většina chyb se dá opravit v rámci jednoho řádku), případně program doplňte, ale nepřepisujte celé sekce a neměňte datové struktury. > {{page>courses:a4b99rph:internal:cviceni:tyden10#Chyby v debugovacim kodu:}}