You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

Ciele cvičenia

Cvič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í.   

  • Práca s 2R poľom

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

  1. Inicializácia hracieho poľa
  2. Vytvorenie funkcie pre vykreslenie hracieho poľa
  3. Vytvorenie funkcie pre načítanie kroku hráča
  4. Vytvorenie funkcie pre vyhodnotenie či niektorý z hráčov vyhral 

1. míľnik  -  kostra programu

#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 

void draw(const int size, const int grid[][size]);
int main()
{
  int size = 5;
  int player=1;
  int grid[size][size] ={ 
                    {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 },
                  };
  draw(size, grid);
  return 0;
}
void draw(const int size, const int grid[][size])
{
 // tu bude kód pre implementáciu funkcie
}

Výsledok funkcie draw(const int size, const int grid[][size]) môže vyzerať takto:

+-------------------+
|   |   | X |   |   |
+-------------------+
| O |   |   | X |   |
+-------------------+
| X | O |   |   | O |
+-------------------+
|   |   | X | X | X |
+-------------------+
|   |   | O | O |   |
+-------------------+

  • No labels