naprogramovanie - karel
naprogramovanie - karel
mám spravený svet pre karla v jazyku C, a uz len potrebujem vykreslit pismeno A, nevedel by mi niekto poradit aspon podstatu, alebo ako by som mala zacat??
Re: naprogramovanie - karel
Tymto by si mal zacat: http://www.hojko.com/citajte-pred-zaloz ... 23064.html
Ked nedokazes pochopit pointu Karla, tak sa do programovania ani len nepustaj.
Ked nedokazes pochopit pointu Karla, tak sa do programovania ani len nepustaj.
-
harrison314
Hardcore addict
- Príspevky: 8224
- Registrovaný: 27 máj 2009, 20:42
- Bydlisko: Bratislava
- Kontaktovať používateľa:
Re: naprogramovanie - karel
V poslednom case je tu kazdy treti prispevok typu : " Spravte mi zadanie"
-
audiotrack
VIP
- Príspevky: 25958
- Registrovaný: 09 sep 2005, 18:39
- Kontaktovať používateľa:
Re: naprogramovanie - karel
to sa opakuje každý rok ku koncu školyharrison314 napísal:V poslednom case je tu kazdy treti prispevok typu : " Spravte mi zadanie"
Re: naprogramovanie - karel
dobre, tieto vaše príspevky tu nepotrebujem, ja som vas ziadala o pomoc lebo to neviem, ale toto pomoc nie je
a take ze spravte mi zadanie to som vobec nechcela, len na neviem pohnut dalej
a take ze spravte mi zadanie to som vobec nechcela, len na neviem pohnut dalej
Re: naprogramovanie - karel
A kde si sa zasekla?
-
reDo
Star
- Príspevky: 661
- Registrovaný: 26 apr 2009, 18:36
- Bydlisko: 00100100
- Kontaktovať používateľa:
Re: naprogramovanie - karel
nikdy som v karlovi neprogramoval ale co tak skusit urobit txt subor v ktorom mas nakreslene z pismen pismeno A a potom len nacitas a vypises ten subor?
-
hojko
Site Admin
- Príspevky: 38515
- Registrovaný: 24 apr 2004, 18:29
- Bydlisko: Európa
- Kontaktovať používateľa:
Re: naprogramovanie - karel
reDo: A prave v tom je problem, ze Karel nie je programovaci jazyk a to co si napisal je uplna kravina. Nedokaze pracovat so ziadnymi subormi ani nic, mozno tak maximalne ulozit a nacitat si svoj projekt. Ale program ako taky je viacmenej ako detska hra na pochopenie algoritmov a logiky.
Re: naprogramovanie - karel
hojko, nemas pravdu, ten karel o ktorom hovori ona je implementovany ako Cckovska kniznica, cize sa v nom pise normalne v C.
-
reDo
Star
- Príspevky: 661
- Registrovaný: 26 apr 2009, 18:36
- Bydlisko: 00100100
- Kontaktovať používateľa:
Re: naprogramovanie - karel
ano to som myslel vravi ze to ma spravene v C a ja som jej len navrhol ako to vypisat v C
Re: naprogramovanie - karel
potreboval by som aj ja trochu pomôcť... Ak sa s tým niekomu chce babrať
niečo som zbúchal, ale nechápem prečo mi cyklus
prebehne iba raz.
Je v 8. riadku
dik
niečo som zbúchal, ale nechápem prečo mi cyklus
Kód: Vybrať všetko
while (beepersPresent()){
pickBeeper();
beep++;
if (beep == 4) domov();}
Je v 8. riadku
dik
Kód: Vybrať všetko
int main(){
int beep = 0;
turnOn("world.txt");
draw();
while (frontIsClear()){ // cyklus, aby sie K stale dopredu
movek();
beep:
while (beepersPresent()){
pickBeeper();
beep++;
if (beep == 4) domov();}
if (frontIsBlocked() && facingSouth()){ //ak narazi na stenu a je otoceny dole
turnLeft();
if (frontIsBlocked() && rightIsBlocked()){ //ak dojde do rohu sveta
turnLeft();
turnLeft();
while (frontIsClear())
movek();
while (frontIsClear()){
movek();
while (frontIsBlocked())
if (beepersInBag()){
putBeeper();
int beep = 0;}
else goto koniec;
}
}
else movek();
if (rightIsClear())
okoloDole(); // obide stenu vo vnutri sveta
else turnLeft();
}
if (frontIsBlocked() && facingNorth()){ //ak narazi na stenu a je otoceny hore
turnRight();
if (frontIsBlocked() && leftIsBlocked()){ //ak dojde to rohu sveta
turnLeft();
turnLeft();
while (frontIsClear())
movek();
while (frontIsBlocked())
if (beepersInBag()){
putBeeper();
int beep = 0;}
else goto koniec;
}
else movek();
if (leftIsClear())
okoloHore(); //obide stenu
else turnRight();
}
}
koniec:
system("PAUSE");
return 0;
}-
audiotrack
VIP
- Príspevky: 25958
- Registrovaný: 09 sep 2005, 18:39
- Kontaktovať používateľa:
Re: naprogramovanie - karel
čo presne robí metoda pickBeeper()?
Re: naprogramovanie - karel
Kód: Vybrať všetko
pickBeeper()
{
if (svet.world[karel.x][karel.y] > 0)
{
svet.world [karel.x][karel.y] -= 1;
karel.beepers++;
draw();
}
else printf("chyba, na tomto mieste nie je beeper\n\n");
}karel.beepers je počet tých beeprov, ktoré má momentálne "pri sebe".
draw() je funkcia na vykreslenie sveta.
Môžem sem hodiť celú moju implementáciu, ale pochybujem, že sa do toho niekto pozrie.
moje zadanie:
Kód: Vybrať všetko
Karel sa rozhodol tráviť Veľkú noc v Amerike. Domáci ho zatiahli do zvyku hľadania vajec na záhrade. Karel teda zoberie košík a hľadá vajcia. Do košíka sa zmestia maximálne 4 vajcia, takže keď ich Karel toľko nájde, vráti sa do domčeka, vyloží ich a vracia sa naspäť hľadať vajíčka. Karel chce nájsť všetky vajcia, preto hľadá, kým nenájde všetky.
Počiatočná situácia:
Karel začína v domčeku. Záhrada môže byť ľubovoľne veľká a na niektorých miestach sa môžu nachádzať kvetináče (voľne pohodené steny). Záhrada môže byť ľubovoľne veľká.
v#.1...
....11.
.2..3..
Koncová situácia:
Po zozbieraní všetkých vajec sa Karel postaví pred domček.
8#.....
v......
.......tou funkciou som chcel spraviť, aby sa po zobratí 4 beeprov vrátil na začiaok. Lenže mi to spraví iba raz.
-
audiotrack
VIP
- Príspevky: 25958
- Registrovaný: 09 sep 2005, 18:39
- Kontaktovať používateľa:
Re: naprogramovanie - karel
a čo robí beepersPresent()? Ono na začiatku máš beep ako nula, čiže ak to prejde, znamená že táto funkcia ti vráti true v prípade že je to nula (a ty chceš opak). Keď tam zvýšiš beep tak to už neprejde. To je jediné logické vysvetlenie, lebo iné chyby tam nevidím. Skús si tú funkciu pozreť či tam nemáš niečo zle (ak je to tvoja funkcia, lebo nepoznám toho karla čo všetko tam je a čo si robil ty)
Re: naprogramovanie - karel
táto funkcia kontroluje či je na súradnici, kde sa práve karel nachádza, beeper.
v tejto funkcii by nemalo byť nič zle. Kontroloval som to.
čo si chel povedať tým, že sa tá funkcia vráti ako true? Vôbec som ťa nepochopil
ten Karel fungue podľa tohto
//edit: tak už mi to ide
Kód: Vybrať všetko
beepersPresent()
{
if (svet.world[karel.x][karel.y] > 0) return 1;
else return 0;
}
noBeepersPresent()
{
return !beepersPresent();
}čo si chel povedať tým, že sa tá funkcia vráti ako true? Vôbec som ťa nepochopil
ten Karel fungue podľa tohto
//edit: tak už mi to ide