Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 14 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Programovanie C v prostredi Karel

Registrovaný: 14.12.08
Prihlásený: 07.01.21
Príspevky: 34
Témy: 12
Príspevok NapísalOffline : 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


Offline

Užívateľ
Užívateľ
Programovanie C v prostredi Karel

Registrovaný: 14.12.08
Prihlásený: 07.01.21
Príspevky: 34
Témy: 12
Príspevok Napísal autor témyOffline : 09.05.2010 9:40

nikto nic :cry:


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 13.05.10
Prihlásený: 13.05.10
Príspevky: 1
Témy: 0
Príspevok NapísalOffline : 13.05.2010 23:48

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


Offline

Užívateľ
Užívateľ
Programovanie C v prostredi Karel

Registrovaný: 14.12.08
Prihlásený: 07.01.21
Príspevky: 34
Témy: 12
Príspevok Napísal autor témyOffline : 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


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.04.10
Prihlásený: 19.05.10
Príspevky: 4
Témy: 0
Príspevok NapísalOffline : 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 :)


Offline

Užívateľ
Užívateľ
Programovanie C v prostredi Karel

Registrovaný: 14.12.08
Prihlásený: 07.01.21
Príspevky: 34
Témy: 12
Príspevok Napísal autor témyOffline : 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 ;)


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 03.02.07
Prihlásený: 25.04.18
Príspevky: 478
Témy: 105
Bydlisko: Košice/Rožň...
Príspevok NapísalOffline : 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


Offline

Skúsený užívateľ
Skúsený užívateľ
Programovanie C v prostredi Karel

Registrovaný: 11.01.09
Prihlásený: 24.04.24
Príspevky: 1385
Témy: 9
Bydlisko: Hrinova
Príspevok NapísalOffline : 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 " );


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 03.02.07
Prihlásený: 25.04.18
Príspevky: 478
Témy: 105
Bydlisko: Košice/Rožň...
Príspevok NapísalOffline : 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


Offline

Skúsený užívateľ
Skúsený užívateľ
Programovanie C v prostredi Karel

Registrovaný: 11.01.09
Prihlásený: 24.04.24
Príspevky: 1385
Témy: 9
Bydlisko: Hrinova
Príspevok NapísalOffline : 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.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 03.02.07
Prihlásený: 25.04.18
Príspevky: 478
Témy: 105
Bydlisko: Košice/Rožň...
Príspevok NapísalOffline : 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


Offline

Skúsený užívateľ
Skúsený užívateľ
Programovanie C v prostredi Karel

Registrovaný: 11.01.09
Prihlásený: 24.04.24
Príspevky: 1385
Témy: 9
Bydlisko: Hrinova
Príspevok NapísalOffline : 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.
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 03.02.07
Prihlásený: 25.04.18
Príspevky: 478
Témy: 105
Bydlisko: Košice/Rožň...
Príspevok NapísalOffline : 18.04.2011 10:05

PM .. diky


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 29.04.11
Prihlásený: 29.04.11
Príspevky: 1
Témy: 0
Príspevok NapísalOffline : 29.04.2011 19:15

Na youtube som uploadol videa o karolovi urcene pre tych, ktory s tym maju problemy
Samozrejme ze kvalita videii je nizka :D , 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


Odpovedať na tému [ Príspevkov: 14 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. Emulátory DOS prostředí

v Počítačové hry

1

1427

28.12.2005 23:41

Jimmymen Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Robot Karel

v Assembler, C, C++, Pascal, Java

18

2167

29.10.2018 15:43

vaci Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Datove formaty videa v heterogennom prostredi.

v Video programy

1

380

19.10.2011 22:36

89Aquarius Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Zadanie Karel - trojuholníky

v Assembler, C, C++, Pascal, Java

2

759

17.11.2017 11:13

Vetrolam Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Robot Karel gitlab

v Assembler, C, C++, Pascal, Java

2

746

31.10.2017 13:42

Yami21 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Router (mode Repeater) v sídliskovom zarušenom prostredí

v Ostatné

2

578

30.12.2010 13:50

sasalopepo Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. karel v C - nefunguje cyklus

v Assembler, C, C++, Pascal, Java

11

1036

12.05.2010 22:09

Shwollo Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Karel : "undefined reference to `world' "

v Assembler, C, C++, Pascal, Java

18

593

10.05.2013 22:44

Sue271 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. programovanie

v Ponuka práce

1

1309

25.10.2006 16:35

JanoF Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. programovanie

v Assembler, C, C++, Pascal, Java

19

1121

12.09.2012 8:39

Fico Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Programovanie

v Ostatné

3

637

16.07.2010 10:22

Echo Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. PROGRAMOVANIE

v Ostatné

6

1003

12.10.2007 21:45

Tominator Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Programovanie?

v Ostatné

3

582

10.03.2011 20:06

Echo Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Programovanie

v Ostatné

14

580

15.11.2021 16:11

eon5 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. programovanie

v Ostatné

11

841

08.01.2011 18:44

TommyHot Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Programovanie :??

v PHP, ASP

5

642

13.06.2007 14:21

Tominator Zobrazenie posledných príspevkov


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

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra