←
↑
⇑
↓
→

Ласло Краус |
Објектно програмирање
Домаћи задатак за 2002/03
|
Поставка задатка
Пројектовати на језику C++ следећи систем класа:
- Поље шаховске табле обележава се са две кординате: ознаком врсте (цифре 1 ... 8) и ознаком колоне (слова a ... h).
- Шаховска фигура налази се на неком пољу дате шаховске табле, може да се дохвати њена боја и врста, може да се премести на друго поље табле (према правилима игре) и може да се састави листа њених могућих потеза у датом тренутку.
- Пешак, топ, скакач, ловац, дама и краљ су шаховске фигуре са одређеним правилима кретања. Сваки од њих може да буде беле и црне боје, а за ознаке врсте фигуре користи се једно слово (P, p - пешак, T, t - топ, S, s - скакач, L, l - ловац, D, d - дама, K, k - краљ; велика слова за беле и мала за црне фигуре). (Упутство: За све врсте фигура могуће је увести по две поткласе, једну за белу и једну за црну боју. Свака (пот)класа се идентификује на одговарајући начин. Бели и црни пешак се крећу на различите начине. Рокада не мора да се реализује, али ако се реализује, бели и црни краљ на различите начине изводе рокаду.)
- Потез се састоји од почетног и крајњег поља табле и фигуре која изводи потез.
- Шаховска табла има 8x8 поља и на сваком од њих може да се налази највише једна фигура. Табла се ставара празна, после чега може да се постави за почетак игре, али може да се попуњава и постављањем фигура једна по једна (на пример, за решавање шаховских проблема). Фигуре могу да се премештају са једног на друго поље према правилима игре. Може да се прикаже тренутно стање на табли исписивањем ознака фигура на поједним пољима у матричном распореду.
- Игра се састоји од почетног и тренутног изгледа шаховске табле и листе исправних потеза који су одиграни од почетка игре. Игра се ствара са задатом почетном таблом (подразумевано таблом постављеном за почетак игре), назнаком боје играча који игра први (подразумевано бела) и празном листом потеза. Игра се одвија додавањем потеза играча један по један. После сваког потеза приказује се тренутно стање на табли. Додатне могуће радње су: враћање игре у почетно стање, приказивање списка одиграних потеза од почетка, приказивање стања табле после сваког потеза од почетка игре до последње одиграног потеза, приказивање списка могућих потеза у тренутном стању игре са фигуром на датом пољу или за играча дате боје.
Саставити на језику C++ интерактивни главни програм за организовање партије између два играча са могућношћу приказивања стања на табли у току игре и приказивања целог тока игре.
а) Детаљи решења (унутрашња структура објеката, списак операција, начин спољашњег приказивања објеката) препуштају се студентима. Све класе треба да буду снабдевене неопходним елементима за безбедно коришћење у било ком окружењу (конструктори, деструктор, додела вредности). Конфликтне ситуације разрешавати изузецима типа класа специјално пројектованих за то.
б) Дозвољено је да студенти сами формулишу себи задатак за решавање, који по сложености није једноставнији од горе наведеног задатка. Употреба полиморфизма и изузетака је неопходна.
в) Решење домаћег задатка се припрема у потребном броју датотека са изворним текстовима програма (не користити редове дуже од 70 знакова) и у једној пратећој датотеци објашњења. Пратећа датотека треба да садржи:
- податке у студенту (име и презиме, број индекса),
- текст самостално састављеног задатка у случају решавања сопственог задатка (довољно детаљан за схватање проблема, али не би требало да буде обимнији од 20 до 25 редова дужине до 70 знакова по реду), и
- списак имена датотека који чине решење проблема по логичком редоследу за читање (прво заглавље класе па дефиниције метода; прво основна класа па изведене класе; главни програм на крају).
г) Решење домаћег задатка предаје се на дискети на самом практичном испиту. Домаћи задатак се брани неколико дана после успешно положеног практичног испита.
д) Студенти којима се практични део испита признаје на основу приказаних резултата на лабораторијским вежбама (само у јануарском испитном року) домаће задатке бране за време практичног испита. Они своје домаће задатке треба да пошаљу електронском поштом на адресу kraus@etf.rs најкасније три дана пре заказаног датума за практични испит у облику једне архивске датотеке (.zip
).
(садржај)
←
↑
⇑
↓
→
Аутор: Ласло Краус
Е-пошта: kraus@etf.rs
Copyright © 2004, Laslo Kraus
Последња ревизија: 6.5.2004.