Zápočet 31.5.2007

Osiris
Supermatfyz(ák|ačka)
Příspěvky: 403
Registrován: 11. 11. 2006 14:10
Typ studia: Informatika Mgr.
Bydliště: Praha
Kontaktovat uživatele:

Zápočet 31.5.2007

Příspěvek od Osiris »

Dnešní úkol : Naprogramovat PacMana, který žere hvězdičky ze zadaného bludiště. Musi je sezrat uplne vsechny

# - stena
* - jidlo
. - volno

Dale bludiste bylo obdelnikove, mohli jsme pocitat s tim, ze je spravne zadane. Pohyb po bludisti jsme meli udelat randomizovane, PacMan nemuze jit pres steny. Start byl na pozici 0,0.

Priklad bludiste :

Kód: Vybrat vše

*#****#
*###***
....**#

Bludiste se zadavalo ze souboru, pri prepinaci -v se melo vypisovat kazdy tah.

Byly 3 hodiny času, já jsem to měl asi za hodinku, STL bylo povoleno.
Osiris
Eddie
Matfyz(ák|ačka) level I
Příspěvky: 11
Registrován: 14. 1. 2007 16:44
Typ studia: Informatika Bc.
Kontaktovat uživatele:

Příspěvek od Eddie »

Ještě dodám, že jediný háček byl v tom, že velikost pole nebyla předem známa, takže bylo potřeba v průběhu načítání pole doalokovávat. Někteří to ale dělali i tak, že si soubor prošli dvakrát - v prvním průchodu si zjistili počet řádků a sloupců a v druhém pak už věděli kolik toho mají číst. Co jsem slyšel, tak i toto řešení opravující uznával, ale řekl, že příště radši zadá, že vstup bude na stadardním vstupu, což už tak obejít nejde.

Jinak mi to přišlo hodně jednoduché, oproti tomu zadání trace je to nesrovnatelné.
God is real ... unless declared integer.
Uživatelský avatar
Lucas
Matfyz(ák|ačka) level I
Příspěvky: 15
Registrován: 15. 1. 2007 20:34
Typ studia: Informatika Mgr.

alokacia

Příspěvek od Lucas »

A ja len za seba .. ze od kedy viem pouzivat STL .. resp. co to je .. tak alokovat a dealokovat ziadne pole nemusim .. a ci to bolo bludisko konecne alebo nekonecne .. tak to je pri tom uplne jedno.
Takze len moja rada pre neuspesnych - hodi sa vam naucit nieco o stringoch resp. vektoroch z STL-ka .. :wink:
S nimi mi to dnes slo jedna baasen..
Hele mozku, nemáš rád mně a ja zas tebe. Ale tohle musíme udělat a pak tě vyřídim jedním pivem.
Osiris
Supermatfyz(ák|ačka)
Příspěvky: 403
Registrován: 11. 11. 2006 14:10
Typ studia: Informatika Mgr.
Bydliště: Praha
Kontaktovat uživatele:

vektory

Příspěvek od Osiris »

doalokovavat se to nemuselo, resp. kdyz se pouzily veci z STL tak to bylo strasne snadne :

Kód: Vybrat vše


vector<string> radky;

string nacitanaradka;

int c;

while ((c=getc(soubor))!=EOF)
{
	if (c == '
')
	{
		radky.push_back(nacitanaradka);
		nacitanaradka = "";
	}
	else
	{
		nacitanaradka = nacitanaradka + (char)c;
	}
}

radky.push_back(nacitanaradka);

z tohohle ti vylezlo nadherne cele hraci pole...
Osiris
Wolda
Matfyz(ák|ačka) level I
Příspěvky: 27
Registrován: 25. 10. 2006 22:27
Typ studia: Informatika Ph.D.
Kontaktovat uživatele:

Reseni bez STL

Příspěvek od Wolda »

Ja jsem ulohu resil bez STL (s tim, ze jsem vstupni soubor cetl 2x) a prislo mi to i tak dost snadne. Rozhodne jsem STL nikde nepotreboval a odchazel jsem zhruba paty (pricemz poslednich 20minut jsem uz jen ruzne blbnul se svym testovacim bludistem).

Kdyby bylo zakazano cist vstup 2x (napr. by se nacital ze standardniho vstupu), tak bych ho holt nejprve nacetl do bufferu, ktery bych dynamicky zvetsoval, dokud by bylo stale co cist (neboli mel bych 2 buffery a ty stridal). Mozna se pletu, ale neprijde mi, ze by tento zpusob byl v necem zdlouhavy, takze i tak by se to dalo stihnout bez STL.
--
Wolda
Uživatelský avatar
hippies
Admin(ka) level I
Příspěvky: 990
Registrován: 29. 9. 2004 12:46
Typ studia: Informatika Mgr.
Bydliště: Mladá Boleslav
Kontaktovat uživatele:

Příspěvek od hippies »

neni to o stihani, je to o pohodlnosti;) ale myslim, ze STL by melo byt zakazane, od toho je OOP
Odpovědět

Zpět na „2006“