Monopoly je stolová hra, ktorú hrajú 2-4 hráči. Počas hry hráči hádžu kockou, pohybujú sa po hracom pláne a obchodujú s nehnuteľnosťami. Pre jednoduchosť implementácie zavedieme zjednodušené pravidlá.
Herné prvky:
Hrací plán obsahuje 24 očíslovaných polí (poradové čísla začínajú od 1). Polia sú rozdelené podľa typu na tieto kategórie:
Nehnuteľnosti
Nehnuteľnost (z angl. property) predstavuje pole na hracom pláne, ktoré hráči kupujú alebo zaň platia nájomné vlastníkovi. Ak hráč stúpi na nikým nevlastnenú nehnuteľnosť, musí ju kúpiť. Ak hráč stúpi na nehnuteľnosť vlastnenú protihráčom, musí mu zaplatiť nájomné.
Každá nehnuteľnosť má nasledovné atribúty:
Na hracom pláne je dokopy 16 rôznych nehnuteľností (8 dvojíc rôznej farby). Ak hráč vlastní obidve nehnuteľnosti rovnakej farby, hovoríme, že vlastní monopol. Viac o monopole sa dozviete nižšie. Cena nehnuteľnosti vyjadrená v EUR zároveň predstavuje výšku nájomného, ktorú platia hráči vlastníkovi po stúpení na pole.
Špeciálne polia
Okrem nehnuteľností obsahuje hrací plán 8 špeciálnych polí. Špeciálne pole sa nedá kúpiť. Ak hráč stúpi na špeciálne pole, vykoná príslušnú akciu. Existujú nasledovné typy špeciálnych polí.
Štart
Na tomto poli hráči začínajú hru. Vždy, keď hráč počas hry prekročí alebo stúpi na toto pole, dostane odmenu 2 EUR. Pole Štart má poradové číslo 1.
In jail
Toto pole predstavuje väzenie. Po stúpení na toto pole sa nič nedeje. Na tomto poli sú umiestnení hráči, ktorí stúpili na pole Go to jail. Vo väzení môže byť súčasne viacero hráčov. Pole In jail má poradové číslo 7. Viac informácií sa dočítate ďalej.
Go to jail
Ak hráč stúpi na toto pole, okamžite ide do väzenia, t.j. vráti sa na pole In jail. Presun do väzenia neznamená prejdenie kola (jedná sa o vrátenie sa na pole In jail v rámci toho istého kola). Pole Go to jail má poradové číslo 19. Viac informácií sa dočítate ďalej.
Priepustka
Priepustka zabráni tomu, aby hráč išiel do väzenia, keď stúpi na pole Go to jail. Hráč môže vlastniť neobmedzený počet priepustiek. Na hracom pláne sú umiestnené 4 priepustky na poliach s číslami 4, 10, 16 a 22. Viac informácií sa dočítate ďalej.
Free parking
Pole bez významu. Po stúpení na toto pole sa nič nedeje. Toto pole má poradové číslo 13.
Hru môžu hrať 2-4 hráči. Hráči sa svojimi figúrkami pohybujú po hracom pláne v smere hodinových ručičiek. Pohyb figúrkou je určený číslom, ktoré padne na kocke.
Atribúty hráča:
Banka má nekonečne veľa peňazí. Je to fiktívna inštitúcia, ktorej hráči platia za nákup nehnuteľností. Z banky dostanú hráči na začiatku hry štartovaciu hotovosť. Banke sa platí pokuta pred opustením väzenia. Banka vypláca odmenu za prejdenie kola.
Každý hráč vo svojom ťahu hádže 1 kockou. Kocka určí počet miest na hracom pláne, o ktoré sa hráč pohne dopredu. Čísla hodené na kocke sa načítavajú z klávesnice, pokiaľ nie je zadaná nenumerická hodnota. Číslo na kocke je z intervalu $\langle1,6\rangle$.
Hlavné fázy hry:
Inicializácia
Vykonajú sa 3 kroky:
Rozdanie úvodnej hotovosti hráčom:
Hra
Počas hry sa hráči striedajú na ťahu, posúvajú sa po hracom pláne a vykonávajú rôzne akcie. Kompletná špecifikácia ťahu so všetkými detailami je v kapitole Špecifikácia ťahu. Každý ťah má svoju pevne danú postupnosť krokov.
Ťah:
Po ťahu:
Aby bolo možné sledovať priebeh hry, po každom ťahu môže nastať výpis v stanovenom formáte (okrem ťahu, v ktorom niektorý hráč skrachuje). Výpis po ťahu aktivujú zadané prepínače v termináli. Rozlišujeme nasledovné typy výpisov.
-s
)-p
)-g
)Určenie víťaza hry
Hra končí, keď niektorý z hráčov skrachuje. Po skrachovaní niektorého z hráčov sa určí víťaz. Viac sa dozviete v kapitole Víťaz hry.
Na začiatku ťahu hodí hráč kockou. Predpokladáme, že vždy sa načíta z klávesnice platné číslo, t.j. 1-6 (iné situácie netreba ošetrovať). Ak sa načíta nenumerický vstup (niečo, čo nie je číslo), hra končí.
Predtým, ako sa hráč posunie dopredu treba:
Hráč môže stúpiť na jedno z nasledovných typov polí a podľa toho vykoná príslušnú akciu.
Nehnuteľnosť
Nehnuteľnosť môže byť:
Nehnuteľnosť vlastnená protihráčom:
Hráč vtedy musí zaplatiť vlastníkovi nájomné vo výške ceny nehnuteľnosti. Ak je nehnuteľnosť monopolom (t.j. niekto vlastní obidve nehnuteľnosti danej farby), tak mu hráč musí zaplatiť 2-násobné nájomné. Ak hráč nemá peniaze na zaplatenie nájomného, tak skrachuje a hra končí.
Nikým nevlastnená nehnuteľnosť:
Ak nehnuteľnosť nikto nevlastní, hráč ju musí kúpiť. Cenu za nehnuteľnosť hráč zaplatí banke. Ak hráč nemá peniaze na kúpu nehnuteľnosti, tak skrachuje a hra končí.
Štart
Ak hráč stúpi na Štart, dostane odmenu 2 EUR za prejdenie kola. Odmenu dostane, aj keď dopadne za pole Štart.
Free parking
Po stúpení na toto pole sa nič nevykoná.
In jail
Toto pole predstavuje väzenie. Po stúpení na toto pole sa nič nedeje. Na tomto poli sú umiestnení hráči, ktorí stúpili na pole Go to jail. Vo väzení môže byť naraz viac hráčov. Ak hráč vychádza von z väzenia, musí zaplatiť banke pokutu 1 EUR. Ak hráč nemá peniaze na zaplatenie pokuty, zostáva vo väzení, skrachuje a hra končí.
Go to jail
Ak hráč stúpi na toto pole, môžu nastať 2 situácie:
Priepustka
Po stúpení na toto pole sa hráčovi zvýši počet priepustiek o 1. Hráč môže počas hry nazbierať neobmedzený počet priepustiek.
Vyhráva ten hráč, ktorý má najviac peňazí (t.j. má najvyššiu hotovosť) po tom, ako niektorý z hráčov skrachuje.
Ak majú viacerí zostávajúci hráči rovnakú najvyššiu hotovosť, nie je možné jednoznačne identifikovať víťaza. Ak nastane takáto situácia, tak si každý z nich spočíta ceny vlastnených nehnuteľností a pripočíta si túto hodnotu k celkovej hotovosti. Následne sa víťazom stane najbohatší hráč.
Ak by nastala aj napriek tomu zhoda vo výške financíí hráčov, hra končí remízou - nemá určeného víťaza.
Kedy hráč skrachuje?
Počas behu programu bude dochádzať k rôznym výpisom, ktoré budú informovať o priebehu hry. Výpisy budeme rozdeľovať na 2 kategórie:
Vždy sa vypíše
Po každom ťahu sa vypíše:
-s
-p
-g
Jedinou výnimkou je ťah, v ktorom hráč skrachuje - vtedy sa po skončení ťahu nič nevypíše a namiesto toho sa vypíše koncový stav hry.
Program môžeme spustiť s týmito prepínačmi:
-n num_players
-s
-p
-g
Prepínače -s
/-p
/-g
sa nebudú kombinovať. Vždy sa použije len jeden z nich. Situáciu kombinovania prepínačov netreba ošetrovať.
-n
Tento prepínač určuje počet hráčov. Platný počet hráčov je 2-4. Iné situácie netreba ošetrovať.
Na prevod reťazca param
na číselnú hodnotu odporúčame použiť funkciu
sscanf
.
Ak používateľ nezadá prepínač -n
, hra začne s 2 hráčmi.
Situáciu zadania prepínača -n
bez jeho povinného parametra
netreba ošetrovať.
./z4 -n param
-s
Tento prepínač aktivuje výpis hracieho plánu po skončení ťahu hráča. Ak hráč v danom ťahu skrachuje, výpis sa neuskutoční.
./z4 -s
-s
. Výpis sa bude opakovať po každom ťahu.
Každý z riadkov tohto výpisu spadá do jednej z týchto kategórií:
-p
Tento prepínač aktivuje výpis informácií o hráčoch po skončení ťahu hráča. Ak hráč v danom ťahu skrachuje, výpis sa neuskutoční.
./z4 -p
-p
. Príklad ukazuje situáciu 2 hráčov. Výpis sa bude opakovať po
každom ťahu.
Výpis každého hráča sa skladá z 2 častí:
Dôležitá poznámka: vlastnené nehnuteľnosti hráča sa musia vypísať v takom poradí, v akom boli nakúpené.
-g
Tento prepínač aktivuje výpis stavu hry po skončení ťahu hráča. Ak hráč v danom ťahu skrachuje, výpis sa neuskutoční.
./z4 -g
-g
. Výpis sa bude opakovať po každom ťahu.
Výpis stavu hry sa skladá z 3 častí:
-p
)-s
)V tomto prípade sa uskutoční len výpis, ktorý je popísaný v časti Výpisy, ktoré sa uskutočnia vždy.
Na tomto diagrame je znázornený herný algoritmus od spustenia programu až po jeho ukončenie.
V rámci tohto zadania budete pracovať na projekte, ktorý sa skladá z viacerých súborov. Štruktúra projektu je znázornená na obrázku nižšie.
Tento hlavičkový súbor obsahuje:
struct
a
enum
)extern
)#ifndef Z4_MONOPOLY_H
#define Z4_MONOPOLY_H
#include <stdio.h>
// Makra
#define MAX_NAME 100 // max. dlzka nazvu (bez znaku '\0')
#define NUM_PROPERTIES 16 // pocet nehnutelnosti na hracom plane
#define NUM_SPACES 24 // pocet poli na hracom plane
#define MAX_PLAYERS 4 // max. pocet hracov
#define NUM_SPACE_TYPES 6 // pocet typov poli na hracom plane
#define NUM_COLORS 8 // pocet farieb nehnutelnosti
// Definicie vlastnych datovych typov
// Typy poli na hracom plane
typedef enum _space_type {
Property, // nehnutelnost
Start, // startovacie pole
Free_parking, // specialne pole bez akcie
In_jail, // specialne pole, predstavuje vazenie
Go_to_jail, // specialne pole, ktore presunie hraca do vazenia
Jail_pass // specialne pole s priepustkou
} SPACE_TYPE;
// Farba nehnutelnosti
typedef enum _color {
Brown,
Skyblue,
Purple,
Orange,
Red,
Yellow,
Green,
Blue
} COLOR;
// Struktura pre nehnutelnost
typedef struct _property {
char name[MAX_NAME + 1]; // nazov
int price; // cena nehnutelnosti/vyska najomneho
COLOR color; // farba
} PROPERTY;
// Struktura pre pole na hracom plane
typedef struct _space {
SPACE_TYPE type; // typ pola na hracom plane
PROPERTY *property; // pointer na nehnutelnost ak je pole
// typu Property, inak NULL
} SPACE;
// Struktura pre hraca
typedef struct _player {
int number; // cislo hraca (1, 2, 3 alebo 4)
int space_number; // cislo pola, na ktorom stoji (pole Start ma cislo 1)
int cash; // hotovost hraca
int num_jail_pass; // pocet nazbieranych priepustiek z vazenia
int is_in_jail; // info, ci je hrac vo vazeni: 0 - nie je; 1 - je
PROPERTY *owned_properties[NUM_PROPERTIES]; // zoznam kupenych nehnutelnosti
int num_properties; // pocet kupenych nehnutelnosti
} PLAYER;
// Deklaracie premennych
extern const char *space_types[NUM_SPACE_TYPES]; // nazvy typov poli na hracom plane
extern const char *property_colors[NUM_COLORS]; // nazvy farieb nehnutelnosti
extern PROPERTY properties[NUM_PROPERTIES]; // zoznam vsetkych nehnutelnosti
extern SPACE game_board[NUM_SPACES]; // hraci plan s 24 poliami
#endif //Z4_MONOPOLY_H
Tento zdrojový súbor obsahuje:
#include "monopoly.h"
// nazvy typov poli na hracom plane
const char *space_types[NUM_SPACE_TYPES] = {
"PROPERTY",
"START",
"FREE PARKING",
"IN JAIL",
"GO TO JAIL",
"JAIL PASS"
};
// nazvy farieb nehnutelnosti
const char *property_colors[] = {
"Brown",
"Skyblue",
"Purple",
"Orange",
"Red",
"Yellow",
"Green",
"Blue"
};
// zoznam nehnutelnosti na hracom plane
PROPERTY properties[NUM_PROPERTIES] = {
{.name = "FOOD TRUCK", .price = 1, .color = Brown},
{.name = "PIZZA RESTAURANT", .price = 1, .color = Brown},
{.name = "DOUGHNUT SHOP", .price = 1, .color = Skyblue},
{.name = "ICE CREAM SHOP", .price = 1, .color = Skyblue},
{.name = "MUSEUM", .price = 2, .color = Purple},
{.name = "LIBRARY", .price = 2, .color = Purple},
{.name = "THE PARK", .price = 2, .color = Orange},
{.name = "THE BEACH", .price = 2, .color = Orange},
{.name = "POST OFFICE", .price = 3, .color = Red},
{.name = "TRAIN STATION", .price = 3, .color = Red},
{.name = "COMMUNITY GARDEN", .price = 3, .color = Yellow},
{.name = "PET RESCUE", .price = 3, .color = Yellow},
{.name = "AQUARIUM", .price = 4, .color = Green},
{.name = "THE ZOO", .price = 4, .color = Green},
{.name = "WATER PARK", .price = 5, .color = Blue},
{.name = "AMUSEMENT PARK", .price = 5, .color = Blue}
};
// inicializacia hracieho pola
SPACE game_board[NUM_SPACES] = {
{.type = Start, .property = NULL},
{.type = Property, .property = &properties[0]},
{.type = Property, .property = &properties[1]},
{.type = Jail_pass, .property = NULL},
{.type = Property, .property = &properties[2]},
{.type = Property, .property = &properties[3]},
{.type = In_jail, .property = NULL},
{.type = Property, .property = &properties[4]},
{.type = Property, .property = &properties[5]},
{.type = Jail_pass, .property = NULL},
{.type = Property, .property = &properties[6]},
{.type = Property, .property = &properties[7]},
{.type = Free_parking, .property = NULL},
{.type = Property, .property = &properties[8]},
{.type = Property, .property = &properties[9]},
{.type = Jail_pass, .property = NULL},
{.type = Property, .property = &properties[10]},
{.type = Property, .property = &properties[11]},
{.type = Go_to_jail, .property = NULL},
{.type = Property, .property = &properties[12]},
{.type = Property, .property = &properties[13]},
{.type = Jail_pass, .property = NULL},
{.type = Property, .property = &properties[14]},
{.type = Property, .property = &properties[15]}
};
Toto je hlavný zdrojový súbor, v ktorom vypracujete zadanie. Je v ňom už správne vložený hlavičkový súbor
monopoly.h
(tento riadok nemeňte).
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include "monopoly.h" // NEMENIT !!!
// TODO vlastne funkcie
int main(int argc, char *argv[]) {
// TODO
return 0;
}
Jedná sa o projektový súbor pre CLion. Je predkonfigurovaný tak, aby sa dal projekt skompilovať. V prípade nesprávnej verzie nástroja CMake, zmeňte číslo verzie na vyhovujúce.
cmake_minimum_required(VERSION 3.24)
project(z4 C)
set(CMAKE_C_STANDARD 11)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -lm")
add_executable(z4 src/z4.c src/monopoly.c)
target_include_directories(z4 PRIVATE ${PROJECT_SOURCE_DIR}/include)
Odovzdávací systém otestuje a ohodnotí nasledovné oblasti funkcionality vášho programu. Na získanie bodov za konkrétny testovací scenár je nutné, aby testom prešli všetky testovacie prípady v danom scenári.
Scenár 1
Spustenie bez prepínačov
-s /-p /-g , výpis stavu hry
na začiatku
|
0,5 b |
Scenár 2
Spustenie bez prepínačov
-s /-p /-g , základné
situácie, celý výpis
|
1,0 b |
Scenár 3
Spustenie bez prepínačov
-s /-p /-g , pokročilé
situácie, celý výpis
|
1,0 b |
Scenár 4
Prepínač
-s , základné situácie,
celý výpis
|
1,0 b |
Scenár 5
Prepínač
-s , pokročilé situácie,
celý výpis
|
1,5 b |
Scenár 6
Prepínač
-p , základné situácie,
celý výpis
|
1,0 b |
Scenár 7
Prepínač
-p , pokročilé situácie,
celý výpis
|
1,5 b |
Scenár 8
Prepínač
-g , základné situácie,
celý výpis
|
1,0 b |
Scenár 9
Prepínač
-g , pokročilé situácie,
celý výpis
|
1,5 b |
Súčet | 10 b |
Táto sekcia obsahuje testovacie príklady pre jednotlivé scenáre. Ku každému
testovaciemu príkladu sú s k dispozícii na stiahnutie TXT súbory.
Každý testovací príklad predstavuje jedno spustenie programu so zadanými CMD argumentmi a sú k nemu
pripojené dva TXT súbory (jeden súbor pre stdin
a druhý súbor pre správny
stdout
).
TXT súbory pre stdin
:
.
)Poznámka: ideálny spôsob testovania vášho programu je prostredníctvom presmerovania štandardného vstupu v termináli z príslušného TXT súboru, ktorý obsahuje vstupy (aby ste sa tak vyhli komplikáciám pri kopírovaní údajov a ich zadávaní pomocou klávesnice).
Zoznam testovacích scenárov:
-s
/-p
/-g
, výpis stavu hry na začiatku
-s
/-p
/-g
, základné situácie, celý výpis
-s
/-p
/-g
, pokročilé situácie, celý
výpis-s
, základné situácie, celý výpis
-s
, pokročilé situácie, celý
výpis-p
, základné situácie, celý výpis
-p
, pokročilé situácie, celý
výpis-g
, základné situácie, celý výpis
-g
, pokročilé situácie, celý
výpisZákladné situácie:
-n
Pokročilé situácie:
-s
/-p
/-g
,
výpis stavu hry na začiatku
s01
./z4 -n 2
Vstup: stdin_01.txt |
Výstup: stdout_01.txt
./z4 -n 2
Vstup: stdin_02.txt |
Výstup: stdout_02.txt
./z4 -n 2
Vstup: stdin_03.txt |
Výstup: stdout_03.txt
./z4 -n 3
Vstup: stdin_04.txt |
Výstup: stdout_04.txt
./z4 -n 3
Vstup: stdin_05.txt |
Výstup: stdout_05.txt
./z4 -n 3
Vstup: stdin_06.txt |
Výstup: stdout_06.txt
./z4 -n 4
Vstup: stdin_07.txt |
Výstup: stdout_07.txt
./z4 -n 4
Vstup: stdin_08.txt |
Výstup: stdout_08.txt
./z4 -n 4
Vstup: stdin_09.txt |
Výstup: stdout_09.txt
-s
/-p
/-g
, základné situácie, celý výpis
s02
./z4 -n 2
Vstup: stdin_01.txt |
Výstup: stdout_01.txt
./z4 -n 2
Vstup: stdin_02.txt |
Výstup: stdout_02.txt
./z4 -n 2
Vstup: stdin_03.txt |
Výstup: stdout_03.txt
./z4 -n 3
Vstup: stdin_04.txt |
Výstup: stdout_04.txt
./z4 -n 3
Vstup: stdin_05.txt |
Výstup: stdout_05.txt
./z4 -n 3
Vstup: stdin_06.txt |
Výstup: stdout_06.txt
./z4 -n 4
Vstup: stdin_07.txt |
Výstup: stdout_07.txt
./z4 -n 4
Vstup: stdin_08.txt |
Výstup: stdout_08.txt
./z4 -n 4
Vstup: stdin_09.txt |
Výstup: stdout_09.txt
-s
/-p
/-g
, pokročilé situácie, celý výpis
s03
./z4 -n 2
Vstup: stdin_01.txt |
Výstup: stdout_01.txt
./z4 -n 2
Vstup: stdin_02.txt |
Výstup: stdout_02.txt
./z4 -n 2
Vstup: stdin_03.txt |
Výstup: stdout_03.txt
./z4 -n 3
Vstup: stdin_04.txt |
Výstup: stdout_04.txt
./z4 -n 3
Vstup: stdin_05.txt |
Výstup: stdout_05.txt
./z4 -n 3
Vstup: stdin_06.txt |
Výstup: stdout_06.txt
./z4 -n 4
Vstup: stdin_07.txt |
Výstup: stdout_07.txt
./z4 -n 4
Vstup: stdin_08.txt |
Výstup: stdout_08.txt
./z4 -n 4
Vstup: stdin_09.txt |
Výstup: stdout_09.txt
-s
, základné situácie, celý výpis
s04
./z4 -n 2 -s
Vstup: stdin_01.txt |
Výstup: stdout_01.txt
./z4 -n 2 -s
Vstup: stdin_02.txt |
Výstup: stdout_02.txt
./z4 -n 2 -s
Vstup: stdin_03.txt |
Výstup: stdout_03.txt
./z4 -n 3 -s
Vstup: stdin_04.txt |
Výstup: stdout_04.txt
./z4 -n 3 -s
Vstup: stdin_05.txt |
Výstup: stdout_05.txt
./z4 -n 3 -s
Vstup: stdin_06.txt |
Výstup: stdout_06.txt
./z4 -n 4 -s
Vstup: stdin_07.txt |
Výstup: stdout_07.txt
./z4 -n 4 -s
Vstup: stdin_08.txt |
Výstup: stdout_08.txt
./z4 -n 4 -s
Vstup: stdin_09.txt |
Výstup: stdout_09.txt
-s
, pokročilé situácie, celý výpis
s05
./z4 -n 2 -s
Vstup: stdin_01.txt |
Výstup: stdout_01.txt
./z4 -n 2 -s
Vstup: stdin_02.txt |
Výstup: stdout_02.txt
./z4 -n 2 -s
Vstup: stdin_03.txt |
Výstup: stdout_03.txt
./z4 -n 3 -s
Vstup: stdin_04.txt |
Výstup: stdout_04.txt
./z4 -n 3 -s
Vstup: stdin_05.txt |
Výstup: stdout_05.txt
./z4 -n 3 -s
Vstup: stdin_06.txt |
Výstup: stdout_06.txt
./z4 -n 4 -s
Vstup: stdin_07.txt |
Výstup: stdout_07.txt
./z4 -n 4 -s
Vstup: stdin_08.txt |
Výstup: stdout_08.txt
./z4 -n 4 -s
Vstup: stdin_09.txt |
Výstup: stdout_09.txt
-p
, základné situácie, celý výpis
s06
./z4 -n 2 -p
Vstup: stdin_01.txt |
Výstup: stdout_01.txt
./z4 -n 2 -p
Vstup: stdin_02.txt |
Výstup: stdout_02.txt
./z4 -n 2 -p
Vstup: stdin_03.txt |
Výstup: stdout_03.txt
./z4 -n 3 -p
Vstup: stdin_04.txt |
Výstup: stdout_04.txt
./z4 -n 3 -p
Vstup: stdin_05.txt |
Výstup: stdout_05.txt
./z4 -n 3 -p
Vstup: stdin_06.txt |
Výstup: stdout_06.txt
./z4 -n 4 -p
Vstup: stdin_07.txt |
Výstup: stdout_07.txt
./z4 -n 4 -p
Vstup: stdin_08.txt |
Výstup: stdout_08.txt
./z4 -n 4 -p
Vstup: stdin_09.txt |
Výstup: stdout_09.txt
-p
, pokročilé situácie, celý výpis
s07
./z4 -n 2 -p
Vstup: stdin_01.txt |
Výstup: stdout_01.txt
./z4 -n 2 -p
Vstup: stdin_02.txt |
Výstup: stdout_02.txt
./z4 -n 2 -p
Vstup: stdin_03.txt |
Výstup: stdout_03.txt
./z4 -n 3 -p
Vstup: stdin_04.txt |
Výstup: stdout_04.txt
./z4 -n 3 -p
Vstup: stdin_05.txt |
Výstup: stdout_05.txt
./z4 -n 3 -p
Vstup: stdin_06.txt |
Výstup: stdout_06.txt
./z4 -n 4 -p
Vstup: stdin_07.txt |
Výstup: stdout_07.txt
./z4 -n 4 -p
Vstup: stdin_08.txt |
Výstup: stdout_08.txt
./z4 -n 4 -p
Vstup: stdin_09.txt |
Výstup: stdout_09.txt
-g
, základné situácie, celý výpis
s08
./z4 -n 2 -g
Vstup: stdin_01.txt |
Výstup: stdout_01.txt
./z4 -n 2 -g
Vstup: stdin_02.txt |
Výstup: stdout_02.txt
./z4 -n 2 -g
Vstup: stdin_03.txt |
Výstup: stdout_03.txt
./z4 -n 3 -g
Vstup: stdin_04.txt |
Výstup: stdout_04.txt
./z4 -n 3 -g
Vstup: stdin_05.txt |
Výstup: stdout_05.txt
./z4 -n 3 -g
Vstup: stdin_06.txt |
Výstup: stdout_06.txt
./z4 -n 4 -g
Vstup: stdin_07.txt |
Výstup: stdout_07.txt
./z4 -n 4 -g
Vstup: stdin_08.txt |
Výstup: stdout_08.txt
./z4 -n 4 -g
Vstup: stdin_09.txt |
Výstup: stdout_09.txt
-g
, pokročilé situácie, celý výpis
s09
./z4 -n 2 -g
Vstup: stdin_01.txt |
Výstup: stdout_01.txt
./z4 -n 2 -g
Vstup: stdin_02.txt |
Výstup: stdout_02.txt
./z4 -n 2 -g
Vstup: stdin_03.txt |
Výstup: stdout_03.txt
./z4 -n 3 -g
Vstup: stdin_04.txt |
Výstup: stdout_04.txt
./z4 -n 3 -g
Vstup: stdin_05.txt |
Výstup: stdout_05.txt
./z4 -n 3 -g
Vstup: stdin_06.txt |
Výstup: stdout_06.txt
./z4 -n 4 -g
Vstup: stdin_07.txt |
Výstup: stdout_07.txt
./z4 -n 4 -g
Vstup: stdin_08.txt |
Výstup: stdout_08.txt
./z4 -n 4 -g
Vstup: stdin_09.txt |
Výstup: stdout_09.txt
Nasledujúce zdroje vám môžu pomôcť pri programovaní zadania. Odporúčame si tieto zdroje preštudovať. Na prístup k niektorým zdrojom potrebujete byť prihlásení vo vašom Google STU konte.
Prednášky
Jazyk C
Funkcie printf
a scanf
Zdroje obrázkov