| | |
| Stránka: 1 z 1
| [ Príspevkov: 14 ] | |
Autor | Správa |
---|
Registrovaný: 14.12.08 Prihlásený: 07.01.21 Príspevky: 34 Témy: 12 | Napísal noff: 08.05.2010 14:10 | |
|
Ahojte, myslim si ze poniektory poznate Karel-a
Dostal som ulohu:
Karel dostal za úlohu naučiť sa písať písmeno B, pretože rohy jeho sveta budú použité ako body veľkoplošnej čierno/bielej obrazovky pre Majstrovstvá sveta v hokeji 2010. Prázdne pozície sveta predstavujú bielu farbu a značky (beepre s počtom 8) čiernu farbu. Písmeno musí byť vykresliteľné na ľubovoľnú obrazovku, ktorej rozmery sú minimálne 4x4. To znamená, že písmeno je potrebné pre rozličné rozmery sveta vhodne zväčšiť/zmenšiť, pričom vypísať ho je potrebné cez všetky riadky sveta a zachovať jeden voľný stĺpec pred písmenom a jeden za ním.
Karel sa po vykreslení písmena bude nachádzať v pravom dolnom rohu.
.8888..
.8...8.
.8888..
.8...8.
.8...8.
.8888.>
tak a mam napisany zdrojak (main.c):
Kód: int sirka=0; // premenna pre nameranie sirky int vyska=0; // premenna pre nameranie vysky
void turnRight(){ // otocenie doprava turnLeft(); turnLeft(); turnLeft(); }
void pickEightBeepers(){ // polozenie 8 beeprov int i=8; while (i>0){ pickBeeper(); i--;} }
void turnBack(){ // otocenie dozadu turnLeft(); turnLeft(); }
int main(){ turnOn("svet.kw"); while (notFacingEast()) turnLeft(); // urcenie smeru na east, kedze zakladny smer moze byt udany akokolvek while (frontIsClear()) movek(); // presun uplne napravo if (rightIsClear()){ // ak je pod nim este riadok tak sa otoci dole turnRight(); while (frontIsClear()) movek(); turnRight(); // presun uplne dole } else turnBack(); // ak sa po presune uplne napravo nachadza na spodnom riadku tak sa len otoci while(frontIsClear()){ // presun uplne nalavo, pridom pocita sirku sveta movek(); sirka++; } turnBack();movek();turnLeft();pickEightBeepers(); // navrat dozadu while (frontIsClear()){ // vykreslenie lavej casti pismena B - stlpec dva movek(); vyska++; pickEightBeepers(); } turnRight(); int sirka1=sirka-3; // odpocitavame 3 volne miesta ktore nevykreslujeme while (sirka1>0){ // zakreslenie hornej ciary pismena B movek(); pickEightBeepers(); sirka1--; } movek(); turnRight(); int vyska1=(vyska-2)/2; // vyska1 je rovna celkovej vyske minus dve volne miesta - hore a dole, a podelena dvoma, je to vyska vrchneho bruska pismena B int vyska2=(vyska-2)-vyska1; // vyska2 je zvysok pravej casti pismena ktory vykreslujeme int vyska3=vyska2+1; // tu je vzdialenost strednej casti pismena B odspodu, cize vyska spodneho bruska pismena plus 1 while(vyska1>0){ movek(); pickEightBeepers(); vyska1--; // vykreslenie pravej casti horneho bruska } movek(); while(vyska2>0){ movek(); pickEightBeepers(); vyska2--; // vykreslenie pravej casti spodneho bruska } movek(); turnRight(); sirka1=sirka-3; // vykreslenie spodnej casti while(sirka1>0){ movek(); pickEightBeepers(); sirka1--; } turnRight(); while(vyska3>0) {movek();vyska3--;} // presun dostredu turnRight(); sirka1=sirka-3; // vykreslenie strednej casti pismena while(sirka1>0){pickEightBeepers(); movek(); sirka1--;} while(frontIsClear())movek(); // presun dole doprava turnRight(); while(frontIsClear())movek(); turnLeft(); system("PAUSE"); return 0; } a mam vytvoreny svet (svet.kw.c): Kód: 8 8 7 6 E 999 a pise mi chybu : Kód: syntax error before numeric constant build error svet.kw.c error 1
pracujem v devc++,
viete mi niekto stym pomoct?
Dakujem
|
|
Registrovaný: 14.12.08 Prihlásený: 07.01.21 Príspevky: 34 Témy: 12 | Napísal autor témy noff: 09.05.2010 9:40 | |
|
nikto nic
|
|
Registrovaný: 13.05.10 Prihlásený: 13.05.10 Príspevky: 1 Témy: 0 |
no ja som tento tvoj kod skusil a mne to normalne zbehne...ale kukam na to o 12tej v noci tak mozno ze ked som ho pisposoboval aby mi isiel s mojimi premennymi a kniznicou tak som spravil aj tu chybu...nevime fakt co by tam mohlo byt zle
|
|
Registrovaný: 14.12.08 Prihlásený: 07.01.21 Príspevky: 34 Témy: 12 | Napísal autor témy noff: 14.05.2010 19:24 | |
|
mischesn píše: no ja som tento tvoj kod skusil a mne to normalne zbehne...ale kukam na to o 12tej v noci tak mozno ze ked som ho pisposoboval aby mi isiel s mojimi premennymi a kniznicou tak som spravil aj tu chybu...nevime fakt co by tam mohlo byt zle
nazdar, a nemohol by si mi poslat to upravene aj stou tvojou kniznicou na moj e-mail?
Dikes
|
|
Registrovaný: 21.04.10 Prihlásený: 19.05.10 Príspevky: 4 Témy: 0 | Napísal JR55: 19.05.2010 22:33 | |
|
noff píše: nazdar, a nemohol by si mi poslat to upravene aj stou tvojou kniznicou na moj e-mail? Dikes
pocuj skus si premenovat ten subor svet.kw.c iba na svet.kw
malo by ti to pomoct
|
|
Registrovaný: 14.12.08 Prihlásený: 07.01.21 Príspevky: 34 Témy: 12 | Napísal autor témy noff: 20.05.2010 16:54 | |
|
JR55 píše: pocuj skus si premenovat ten subor svet.kw.c iba na svet.kw malo by ti to pomoct
to som uz skusal ale neislo,
ale uz som to vyriesil inak, pomohli ine kniznice a upravenie zdrojaku, ale vdaka vsetkym
|
|
Registrovaný: 03.02.07 Prihlásený: 25.04.18 Príspevky: 478 Témy: 105 Bydlisko: Košice/Rožň... | Napísal M4rek: 17.04.2011 21:28 | |
|
je tu tema o karlovi, tak to napisem sem.
Mam taky problem v progrma,e ktory nechapem. Mam spravene funkcie turnOn, kde sa z nejakej mapy postupne nacitavaju znaky do pola world, ktore sa potom pomocou funkcie draw vypisuje.
Potom mam funkciu move, ktorou sa karel hybe, ovlada sa sipkami. Vsetko funkguje ako ma. Teraz by som mal spravit nieco take, aby karel vedel posuvat krabicu, ktoru reprezentuje znak "$"
dal som teda podmienku:
Kód: case EAST : if(world.data[krabica.x][krabica.y] == world.data[karel.x][karel.y++]) {krabica.y++; karel.y++;} else printw("nie je "); clear(); draw();
cize ked je karel otoceny na vychod a o jeden stlpec doprava od karla je krabica, tak sa ma posunut krabica aj karel .. lenze problem je v tom, ze krabica sa mi posuva nie len vtedy, ale vzdy ked sa posuva karel hocikde na mape smerom na vychod tak sa posunie aj krabica ... nechapem preco, akoby sa stale vyhodnotila podmienka kladne pri pohybe na vychod
edit// v karel.x a karel.y je riadok a stlpec v ktorom je karel a v krabica.x a krabica.y je riadok a stlpec v ktorom je krabica
|
|
Registrovaný: 11.01.09 Prihlásený: 24.04.24 Príspevky: 1385 Témy: 9 Bydlisko: Hrinova | Napísal Fico: 17.04.2011 22:12 | |
|
Ta podmienka je zle. Uz si presne nepamatam, co vsetko bolo ulozene v poli world.data, ale tusim ze iba stena alebo prazdne policko. Cize ty vzdy porovnas, co sa nachadza na policku kde je Karol a co je na policku kde je krabica a to je vzdy - logicky - prazdne policko. Uprav podmienku nejako takto:
Kód: if( ( krabica.x == karel.x ) && ( krabica.y == karel.y + 1 ) { krabica.y++; karel.y++; } else printw( "nie je " );
|
|
Registrovaný: 03.02.07 Prihlásený: 25.04.18 Príspevky: 478 Témy: 105 Bydlisko: Košice/Rožň... | Napísal M4rek: 18.04.2011 9:30 | |
|
a zaujimave, ze aj ked tam do tej podmienky dam uplny blud, napr: world.data[karel.x][karel.y+3] ... co urcite nie je pravda, tak to robi stale to iste, ze sa posunie karel aj krabica pri kazdom pohybe na vychod, nech je krabica aj karel kdekolvek v mape
diky skusim to co si napisal a potom sem napisem
edit// nemam teraz uz velmi cas, ale zajtra sem este napisem, zatial to vyzera ze ide, diky
// pridané po 11 hodinách 17 minútach od posledného príspevku
zaujimave, neviem teraz preco, ked posunie tu krabicu tak karel skoci o jeden riadok vyssie. Musim tam ku krabica.y++; karel.y++; pridat este karel.x++ aby ot islo ako ma .. no neviem preco to skoci o riadok vyssie
|
|
Registrovaný: 11.01.09 Prihlásený: 24.04.24 Príspevky: 1385 Témy: 9 Bydlisko: Hrinova | Napísal Fico: 18.04.2011 9:34 | |
|
Ak to nevies ty, ako to mozme vediet my, ak nevieme, ako to mas implementovane...
// neviem preco, ale 90% kodov Karla, ktore som videl, je os X zamenena s osou Y. Neviem, ci vas to takto ucia, alebo vsetci nemate paru, ako su orientovane osi, ale potom ak po niekom chcete pomoc, tak sa v tom dost blbo orientuje.
|
|
Registrovaný: 03.02.07 Prihlásený: 25.04.18 Príspevky: 478 Témy: 105 Bydlisko: Košice/Rožň... | Napísal M4rek: 18.04.2011 9:45 | |
|
tiez to mam asi opacne ... no mam to tak, ze x su riadky a y stlpce ... takze y+1 je dalsi stlpec
no netusim preco to tak je, lebo robi to pri vsetkych smeroch okrem pohybu na JUH .. a pritom vsetky smery su rovnakym stylom zapisane a bez tej krabice ide karel normalne ako ma do kazdeho smeru a neskace nikam
|
|
Registrovaný: 11.01.09 Prihlásený: 24.04.24 Príspevky: 1385 Témy: 9 Bydlisko: Hrinova | Napísal Fico: 18.04.2011 9:49 | |
|
Ak chces pomoc, napis sem cely switch, kde riesis pohyb ( ak sa nebojis, ze ti to niekto skopiruje. V tom pripade mi to mozes poslat cez SS - ja nie som student, neboj sa )
_________________ Ak potrebujete pomoc s diagnostikou/opravou vasej elektroniky ( notebook, motherboard, GPU, a ine ), kontaktujte ma cez SS. |
|
Registrovaný: 03.02.07 Prihlásený: 25.04.18 Príspevky: 478 Témy: 105 Bydlisko: Košice/Rožň... | Napísal M4rek: 18.04.2011 10:05 | |
|
PM .. diky
|
|
Registrovaný: 29.04.11 Prihlásený: 29.04.11 Príspevky: 1 Témy: 0 |
Na youtube som uploadol videa o karolovi urcene pre tych, ktory s tym maju problemy
Samozrejme ze kvalita videii je nizka , ale snad to niekomu pomoze
http://www.youtube.com/watch?v=I8F4xframKg je prva cast a potom aj dalsie na ucte StevenCarline
enjoy or hate it
|
|
| Stránka: 1 z 1
| [ Príspevkov: 14 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| Emulátory DOS prostředí v Počítačové hry | 1 | 1427 | 28.12.2005 23:41 Jimmymen | | Robot Karel v Assembler, C, C++, Pascal, Java | 18 | 2167 | 29.10.2018 15:43 vaci | | Datove formaty videa v heterogennom prostredi. v Video programy | 1 | 380 | 19.10.2011 22:36 89Aquarius | | Zadanie Karel - trojuholníky v Assembler, C, C++, Pascal, Java | 2 | 759 | 17.11.2017 11:13 Vetrolam | | Robot Karel gitlab v Assembler, C, C++, Pascal, Java | 2 | 746 | 31.10.2017 13:42 Yami21 | | Router (mode Repeater) v sídliskovom zarušenom prostredí v Ostatné | 2 | 578 | 30.12.2010 13:50 sasalopepo | | karel v C - nefunguje cyklus v Assembler, C, C++, Pascal, Java | 11 | 1036 | 12.05.2010 22:09 Shwollo | | Karel : "undefined reference to `world' " v Assembler, C, C++, Pascal, Java | 18 | 593 | 10.05.2013 22:44 Sue271 | | programovanie v Ponuka práce | 1 | 1309 | 25.10.2006 16:35 JanoF | | programovanie v Assembler, C, C++, Pascal, Java | 19 | 1121 | 12.09.2012 8:39 Fico | | Programovanie v Ostatné | 3 | 637 | 16.07.2010 10:22 Echo | | PROGRAMOVANIE v Ostatné | 6 | 1003 | 12.10.2007 21:45 Tominator | | Programovanie? v Ostatné | 3 | 582 | 10.03.2011 20:06 Echo | | Programovanie v Ostatné | 14 | 580 | 15.11.2021 16:11 eon5 | | programovanie v Ostatné | 11 | 841 | 08.01.2011 18:44 TommyHot | | Programovanie :?? v PHP, ASP | 5 | 642 | 13.06.2007 14:21 Tominator |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|