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 | 12 |
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 | 12 |
nikto nic
|
|
Registrovaný: 13.05.10 Prihlásený: 13.05.10 Príspevky: 1 Témy: 0 | 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 | 12 |
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 | 0 |
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 | 12 |
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 | 105 Bydlisko: Košice/Rožň... |
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ý: 05.05.24 Príspevky: 1385 Témy: 9 | 9 Bydlisko: Hrinova |
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 | 105 Bydlisko: Košice/Rožň... |
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ý: 05.05.24 Príspevky: 1385 Témy: 9 | 9 Bydlisko: Hrinova |
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 | 105 Bydlisko: Košice/Rožň... |
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ý: 05.05.24 Príspevky: 1385 Témy: 9 | 9 Bydlisko: Hrinova |
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 | 105 Bydlisko: Košice/Rožň... | |
Registrovaný: 29.04.11 Prihlásený: 29.04.11 Príspevky: 1 Témy: 0 | 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 |
---|
| v Počítačové hry | 1 | 1428 | 28.12.2005 23:41 Jimmymen | | v Assembler, C, C++, Pascal, Java | 18 | 2169 | 29.10.2018 15:43 vaci | | v Video programy | 1 | 380 | 19.10.2011 22:36 89Aquarius | | v Assembler, C, C++, Pascal, Java | 2 | 761 | 17.11.2017 11:13 Vetrolam | | v Assembler, C, C++, Pascal, Java | 2 | 748 | 31.10.2017 13:42 Yami21 | | v Ostatné | 2 | 579 | 30.12.2010 13:50 sasalopepo | | v Assembler, C, C++, Pascal, Java | 11 | 1037 | 12.05.2010 22:09 Shwollo | | v Assembler, C, C++, Pascal, Java | 18 | 594 | 10.05.2013 22:44 Sue271 | | v Kôš | 1 | 26 | 05.11.2018 19:56 michalesku | | v PHP, ASP | 5 | 643 | 13.06.2007 14:21 Tominator | | v Smartfóny a tablety | 4 | 668 | 20.07.2011 19:26 Qpkqkma | | v Ponuka práce | 1 | 1312 | 25.10.2006 16:35 JanoF | | v Assembler, C, C++, Pascal, Java | 19 | 1121 | 12.09.2012 8:39 Fico | | v Ostatné | 3 | 640 | 16.07.2010 10:22 Echo | | v Ostatné | 6 | 1005 | 12.10.2007 21:45 Tominator | | v Ostatné | 14 | 582 | 15.11.2021 16:11 eon5 |
|