Author Topic: Programovanie  (Read 187671 times)

darktemplar999

  • Jr. Member
  • **
  • Posts: 69
    • View Profile
Re: Programovanie
« Reply #50 on: 26.02.2011, 19:18:13 »
asi len ta spirala bude davat zmysel, rozmyslal som, ci sa to nebude dat cez funkciu schodov urobit z rohu sveta, zeby nejak beepre obkladal z prveho rohu schody aj z opacneho rohu, ale netusim jak dalej s tym ked sa ta diagonala vyplni, este by mohlo byt nieco ako vybeeprovanie pismena x a tak najist stred :O

farkasdvd

  • Newbie
  • *
  • Posts: 15
    • View Profile
Re: Programovanie
« Reply #51 on: 26.02.2011, 20:18:07 »
tvoj napad je jednoduchsi (vykreslit x), ved sa opakuje len toto:
putBeeper();
turnLeft();
movek();
turnRight();
movek();
toto sa opakuje kym nenajde stenu, pototm to urobis aj z druhej strany a kde budu 2 beepre, tak tam bude stred. hned sa na to aj pozrem. diky

darktemplar999

  • Jr. Member
  • **
  • Posts: 69
    • View Profile
Re: Programovanie
« Reply #52 on: 26.02.2011, 20:29:26 »
no hej ale ked bude svet rozmerov 5 krat 7 tak to fungovat nebude napriklad :( preto som to nedaval ako riesenie :O

farkasdvd

  • Newbie
  • *
  • Posts: 15
    • View Profile
Re: Programovanie
« Reply #53 on: 26.02.2011, 21:06:11 »
vyskusal som toto x-ko a funguje perfektne, koncova pozicia vizera tak ako na obrazku :)
mas pravdu, to funguje len pri svetoch ktore maju tvar stvorca a tie 2 middleearth.kw su take, ale ine by sa asi dali riesit len pomocou premennych.
zdrojak je dost dlhy, podla mna este sa to da zjednodusit, ale uz s tym nech babra iny :)
hned to dam sem

radsej som to upol, lebo je dost dlhy:
http://leteckaposta.cz/887819588
« Last Edit: 26.02.2011, 21:15:10 by farkasdvd »

darktemplar999

  • Jr. Member
  • **
  • Posts: 69
    • View Profile
Re: Programovanie
« Reply #54 on: 26.02.2011, 21:26:24 »
vecer ked stihnem tak to nakodim jednoduchsie :)

hardest

  • Sr. Member
  • ****
  • Posts: 338
    • View Profile
Re: Programovanie
« Reply #55 on: 26.02.2011, 22:22:06 »
tu siestu ulohu s tym hradom mate niekto spravenu ?

esperian

  • Hero Member
  • *****
  • Posts: 873
    • View Profile
Re: Programovanie
« Reply #56 on: 26.02.2011, 22:38:28 »
a stalo sa vam niekomu ze ste vyrobili "perpetum mobile " ?? xD myslim to tak ze ak dam zlu podmienku  ten program bude bezat do nekonecna , neviete niekto ako ten program vypnem ?? lebo sa mi nechce stale to puty vypinat a zase sa prihlasovat

darktemplar999

  • Jr. Member
  • **
  • Posts: 69
    • View Profile
Re: Programovanie
« Reply #57 on: 26.02.2011, 22:51:16 »
napis reset a daj enter :D aspon tak pisu na moodli :O

esperian

  • Hero Member
  • *****
  • Posts: 873
    • View Profile
Re: Programovanie
« Reply #58 on: 26.02.2011, 22:54:40 »
tak moje perpeta boli asi zlozitejsie, mne to tak nefungovalo xDDD

hardest

  • Sr. Member
  • ****
  • Posts: 338
    • View Profile
Re: Programovanie
« Reply #59 on: 26.02.2011, 22:55:24 »
daj CTRL+C

Inak, ako ste robili tu tretiu ulohu, aby zozbieral vsetky znacky a potom ich dal do rohu ?

Lebo vedel by som to spravit ked viem dopredu kolko bude riadkov a stlpcov tak, ze by som ho nechal prejst vsetky pozicie zhora-nadol a ked skonci bude v pravom dolnom rohu a polozi tam vsetky beepre ktore zozbieral a potom ide znovu az kym sa nestane ze po prejdeni zhora-nadol nebude mat ziadne beepre vo vacku (cize svet je prazdny), ale ked neviem dopredu kolko je riadkov a stlpcov, tak nejak ma nenapada ako to spravit.

darktemplar999

  • Jr. Member
  • **
  • Posts: 69
    • View Profile
Re: Programovanie
« Reply #60 on: 26.02.2011, 23:09:59 »
tretia doplnkova uloha, tak to som navrhol ja a funguje

#include <karel.h>

void turnRight()
{
   setStepDelay(0);
   turnLeft();
   turnLeft();
   turnLeft();
   setStepDelay(1000);
}

void riadok()
{
   while(frontIsClear())
   {
      if (beepersPresent())
      {   
         while(beepersPresent())
         {
            pickBeeper();
         }
      }
      movek();
   }
   if (facingNorth())
      {
         turnRight();
      }
   else
      {
         turnLeft();
      }   
}

void vyloz()
{
   while(beepersInBag())
   {
      putBeeper();
   }
}      


int main()
{
   turnOn("collector2.kw");
   turnLeft();
   riadok();
   while((leftIsClear()||frontIsClear())&&(rightIsClear()||frontIsClear()))
   {
      if(beepersPresent())
      {
         while(beepersPresent())
         {
            pickBeeper();
         }
      }
      movek();
      if(leftIsBlocked())
      {
         turnRight();
         riadok();
      }
      else
      {
         turnLeft();
         riadok();
      }
   }   
   if(leftIsBlocked()||frontIsBlocked())
   {
      turnRight();
      while(frontIsClear())
      {
         movek();
      }
      vyloz();
   }
   if(rightIsBlocked()||frontIsBlocked())
      {
      vyloz();
      }
   turnRight();
   while(frontIsClear())
   {
   movek();
   }
   turnOff();
}


   

hardest

  • Sr. Member
  • ****
  • Posts: 338
    • View Profile
Re: Programovanie
« Reply #61 on: 26.02.2011, 23:31:16 »
uz som na to prisiel aj sam, ale diky :)

hardest

  • Sr. Member
  • ****
  • Posts: 338
    • View Profile
Re: Programovanie
« Reply #62 on: 26.02.2011, 23:37:54 »
este jedna vec, pri tych bludiskach ... zrejme ste to robili tak, ze ak je pred nim stena a zaroven napravo od neho stena tak pojde dolava ... a potom opacne, ked je pred nim stena a nalavo stena tak pojde doprava ... ale co ak je iba pred nim stena a moze ist aj doprava aj dolava ?

// nejak sa mi casto stava, ze sa vracia tam kde uz bol a donekonecna sa mota tam a naspät

darktemplar999

  • Jr. Member
  • **
  • Posts: 69
    • View Profile
Re: Programovanie
« Reply #63 on: 26.02.2011, 23:39:39 »
uz to tu niekto upol to bludisko :) tak pozri na predchadzajucu stranu :)

hardest

  • Sr. Member
  • ****
  • Posts: 338
    • View Profile
Re: Programovanie
« Reply #64 on: 27.02.2011, 01:19:09 »
este tu 6. doplnujucu ulohu by nebol niekto ochotny sem dat ? ... nejak som to spravil ale mam velmi dlhy kod, ze ci to nema niekto jednoduchsie spravene

orsi

  • Full Member
  • ***
  • Posts: 182
    • View Profile
Re: Programovanie
« Reply #65 on: 27.02.2011, 01:41:02 »
aj ja som si myslel ze nakodim jednoduchsie ako farkasdvd ten stred sveta, a nakoniec to skoncilo tiez asi 115 riadkami a pritom som robil elegantnejsie niektore veci. no a dako sa mi to nevydarilo lebo kód mám asi 2x zložitejší a robí aj o trochu viacej krokov ten karel. ale funguje a serem na to.  :D

esperian

  • Hero Member
  • *****
  • Posts: 873
    • View Profile
Re: Programovanie
« Reply #66 on: 27.02.2011, 01:44:39 »
no ved to je zaklad ze to aspon funguje , horsie by bolo keby to bolo 2x dlhsie a nefungovalo xD

venegur

  • Newbie
  • *
  • Posts: 11
    • View Profile
Re: Programovanie
« Reply #67 on: 27.02.2011, 01:53:16 »
Ja som za vami trosku pozadu :-), nemozte mi poradit s kodom pre ulohu c. 2, pre lubovolne vysoke respektive siroke prekazky, lebo neviem to spravit, aby to fungovalo pre lubovolnu mapu, cize to neviem spravit :D

hardest

  • Sr. Member
  • ****
  • Posts: 338
    • View Profile
Re: Programovanie
« Reply #68 on: 27.02.2011, 02:14:33 »
ale ajtak sem dajte prosim niekto ako ste robili ten hrad ... kus lamersky to mam az na prilis vela krokov :D

upnite niekam pls, ked je to dlhy kod
« Last Edit: 27.02.2011, 02:20:07 by hardest »

BuliWyf

  • Jr. Member
  • **
  • Posts: 53
    • View Profile
Re: Programovanie
« Reply #69 on: 27.02.2011, 02:25:09 »
PREKAZKY:

#include <karel.h>

void turnRight()
{   
   setStepDelay(0);
   turnLeft();
   turnLeft();
   setStepDelay(500);
   turnLeft();
}

void jump()
{
   turnLeft();
   while (rightIsBlocked())
   {
      movek();
   }
   turnRight();
   movek();
   while (rightIsBlocked())
   {
      movek();
   }
   turnRight();
   while (frontIsClear())
   {
      movek();
   }
   turnLeft();
}

int main()
{
   setStepDelay(500);
   turnOn("olympics6.kw");
   while (noBeepersPresent())
   {   
      while (frontIsClear())
      {   
         movek();
         if (beepersPresent())
         {
            turnOff();
         }
      }
      jump();
   }
   turnOff();
   return 0;
}

edit: ten stred som urobil vyplnenim celej plochy ale mam to az na 106 riadkov...hrad ma dokonca 115 riadkov...
btw ake je heslo na druhu prednasku z asemblera?
« Last Edit: 27.02.2011, 02:37:02 by BuliWyf »

darktemplar999

  • Jr. Member
  • **
  • Posts: 69
    • View Profile
Re: Programovanie
« Reply #70 on: 27.02.2011, 02:44:09 »
hentie prekazky:

#include <karel.h>

void turnRight()
{
   setStepDelay(0);
   turnLeft();
   turnLeft();
   turnLeft();
   setStepDelay(1000);
}


void jumpOver()
{
   turnLeft();
   while(rightIsBlocked())
   {
      movek();
   }
   turnRight();
   movek();
   while(rightIsBlocked())
   {
      movek();
   }
   turnRight();
   movek();
   while(frontIsClear())   
   {
      movek();
   }
   turnLeft();
      
}



int main()
{

   turnOn("olympics6.kw");
   while(noBeepersPresent())   
   {
   if(frontIsBlocked())
      jumpOver();
   else
   {   
      while(frontIsClear())
      {
         movek();
      }

   }
   }
   turnOff();

}

orsi

  • Full Member
  • ***
  • Posts: 182
    • View Profile
Re: Programovanie
« Reply #71 on: 27.02.2011, 02:45:26 »
ten hrad mám na 40 riadkov :D

RiTChi

  • Full Member
  • ***
  • Posts: 218
    • View Profile
Re: Programovanie
« Reply #72 on: 27.02.2011, 02:56:47 »
celkom fajna sluzba na zdielanie zdrojakov: http://www.sdilejkod.cz/ :)

hardest

  • Sr. Member
  • ****
  • Posts: 338
    • View Profile
Re: Programovanie
« Reply #73 on: 27.02.2011, 02:56:56 »
ja mam ten hrad na 56 riadkov, ale tak zalezi od toho ako rozkladas kod :D

// uz len tu spiralu nemam, aj ked viem ako by sa to dalo celkom jednoducho no nechce sa mi uz :D

// riadne vela casu nato treba .. a to som si chcel dnes este pozriet aj elektrotechniku ale uz nic z toho
« Last Edit: 27.02.2011, 03:01:03 by hardest »

darktemplar999

  • Jr. Member
  • **
  • Posts: 69
    • View Profile
Re: Programovanie
« Reply #74 on: 27.02.2011, 03:11:34 »
ten hrad vam ide aj ked su stlpy lubovolne vysoke?