Info |
---|
Ciele cvičeniaCvičenie bude zamerané na prácu s dvojrozmerným (2R) poľom. Študenti si osvoja spôsob deklarácie a inicializácie 2R poľa a tiež si prehĺbia poznanie v problematike indexácie polí.
|
Info |
---|
Odporúčaná literatúra a dôležité odkazy[1] KPI-FEI-TUKE: [2] KPI-FEI-TUKE: [3] [4] |
Úloha 1
Naprogramujte hru "piškvorky" .
Vstupné predpoklady:
- Veľkosť hracieho poľa je statická 5 x 5 prvkov
- Informácie o polohe piškôriek sú uložené v matici (2R pole) typu int takto:
- 0 - prázdna bunka
- 1 - Hráč č. 1 → X
- 2 - Hráč č. 2 → O
- Matica polohy piškvoriek je inicializovaná nulamy!
- Hra bude bežať v slučke while dovtedy, dokiaľ jeden z hráčov nevyhrá
- Po každom ťahu hráča sa vykreslí hracie pole
Dôležité míľniky v procese developmentu
- Inicializácia hracieho poľa
- Vytvorenie funkcie pre vykreslenie hracieho poľa
- Vytvorenie funkcie pre načítanie kroku hráča
- Vytvorenie funkcie pre vyhodnotenie či niektorý z hráčov vyhral
1. míľnik - kostra programu
Code Block | ||
---|---|---|
| ||
#include <stdio.h>
// deklarácie funkcii
int is_won(const int size, const int player, const int grid[][size]);
void draw(const int size, const int grid[][size]);
void player_move(const int size, const int player, int grid[][size]);
int main()
{
int size = 5;
int player=1;
int i, j;
int grid[size][size];
for(i=0; i<size; i++)
for(j=0; j<size; j++)
{
grid[i][j] = 0;
}
draw(size, grid);
while(1)
{
if (is_won(5, 1, grid) || is_won(5, 2, grid)) // Ukončenie nekonečného cyklu funkciu is_won() je potrebné vyvinúť
break;
// tu sa bude volať funkcia pre vykreslenie hracieho poľa draw()
// tu bude funkcia pre krok 1. alebo 2. hráča player_move()
}
return 0;
} |
2. míľnik - Vykreslenie hracieho poľa
Vykreslenie hracieho poľa môžete skúšať na takto inicializovanom hracom poli
Code Block | ||
---|---|---|
| ||
int grid[5][5] ={
{0 , 0, 1, 0, 0 },
{2 , 0, 0, 0, 0 },
{1 , 2, 0, 0, 0 },
{0 , 0, 1, 0, 1 },
{0 , 0, 2, 2, 0 },
}; |
Výsledok funkcie draw(const int size, const int grid[][size]) môže vyzerať takto:
Code Block | ||
---|---|---|
| ||
+-------------------+
| | | X | | |
+-------------------+
| O | | | X | |
+-------------------+
| X | O | | | O |
+-------------------+
| | | X | X | X |
+-------------------+
| | | O | O | |
+-------------------+
|