[ 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 | 12
NapísalOffline : 08.05.2010 14:10 | Programovanie C v prostredi Karel

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 | 12
Napísal autor témyOffline : 09.05.2010 9:40 | Programovanie C v prostredi Karel

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 | 0
NapísalOffline : 13.05.2010 23:48 | Programovanie C v prostredi Karel

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 | 12
Napísal autor témyOffline : 14.05.2010 19:24 | Programovanie C v prostredi Karel

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 | 0
NapísalOffline : 19.05.2010 22:33 | Programovanie C v prostredi Karel

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 | 12
Napísal autor témyOffline : 20.05.2010 16:54 | Programovanie C v prostredi Karel

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 | 105
Bydlisko: Košice/Rožň...
NapísalOffline : 17.04.2011 21:28 | Programovanie C v prostredi Karel

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ý: 05.05.24
Príspevky: 1385
Témy: 9 | 9
Bydlisko: Hrinova
NapísalOffline : 17.04.2011 22:12 | Programovanie C v prostredi Karel

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 | 105
Bydlisko: Košice/Rožň...
NapísalOffline : 18.04.2011 9:30 | Programovanie C v prostredi Karel

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ý: 05.05.24
Príspevky: 1385
Témy: 9 | 9
Bydlisko: Hrinova
NapísalOffline : 18.04.2011 9:34 | Programovanie C v prostredi Karel

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 | 105
Bydlisko: Košice/Rožň...
NapísalOffline : 18.04.2011 9:45 | Programovanie C v prostredi Karel

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ý: 05.05.24
Príspevky: 1385
Témy: 9 | 9
Bydlisko: Hrinova
NapísalOffline : 18.04.2011 9:49 | Programovanie C v prostredi Karel

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 | 105
Bydlisko: Košice/Rožň...
NapísalOffline : 18.04.2011 10:05 | Programovanie C v prostredi Karel

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 | 0
NapísalOffline : 29.04.2011 19:15 | Programovanie C v prostredi Karel

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


 [ Príspevkov: 14 ] 


Programovanie C v prostredi Karel



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

1428

28.12.2005 23:41

Jimmymen

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

Robot Karel

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

18

2169

29.10.2018 15:43

vaci

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

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

Zadanie Karel - trojuholníky

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

2

761

17.11.2017 11:13

Vetrolam

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

Robot Karel gitlab

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

2

748

31.10.2017 13:42

Yami21

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

Router (mode Repeater) v sídliskovom zarušenom prostredí

v Ostatné

2

579

30.12.2010 13:50

sasalopepo

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

karel v C - nefunguje cyklus

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

11

1037

12.05.2010 22:09

Shwollo

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

Karel : "undefined reference to `world' "

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

18

594

10.05.2013 22:44

Sue271

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

Programovanie

v Kôš

1

26

05.11.2018 19:56

michalesku

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

Programovanie :??

v PHP, ASP

5

643

13.06.2007 14:21

Tominator

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

programovanie

v Smartfóny a tablety

4

668

20.07.2011 19:26

Qpkqkma

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

programovanie

v Ponuka práce

1

1312

25.10.2006 16:35

JanoF

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

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

Programovanie

v Ostatné

3

640

16.07.2010 10:22

Echo

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

PROGRAMOVANIE

v Ostatné

6

1005

12.10.2007 21:45

Tominator

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

Programovanie

v Ostatné

14

582

15.11.2021 16:11

eon5



© 2005 - 2024 PCforum, edited by JanoF