• Welcome to TUKE FÓRUM - Fórum pre Å¡tudentov Technickej Univerzity v KoÅ¡iciach.
 

Programovanie

Started by esperian, 18.02.2011, 22:35:36

« predchádzajúce - ïal¹ie »

RiTChi

Quote from: kade on  29.03.2011, 02:23:47
ako vymazem obrazovku?  ??? resp. co mam presne napisat do draw a ake kniznice pridat.... any idea ?

jedna idea by tu bola, precitat si obsah cvicenia...

hardest

robim si prave 6. cviko a chcel som pouzit tu funkciu sleep() aby som videl ako sa prekresluje ten karel napriklad pri otacani, aby to neslo bleskovou rychlostou ... v cviku sa pise ze funkcia sleep() je deklarovana v hlavickovom subore windows.h, tak som pridal  #include <windows.h>  .. no nejde mi to ajtak ... ten windows.h si musim odniekial najskor stiahnut do netbeansu ?

esperian

a davas nejaku hodnotu do sleep(tu treba dat nejaku hodnotu )  ,teraz som to skusal a mne to ide .. skusal som to na turnLeft() konkretne som to napisal takto sleep(1);system("cls"); daj to pred draw() funkciu do turnLeftu napr
                 

hardest

furt mi pise vykricnik pri tom riadku kde dam sleep(1); ze Unable to resolve identifier sleep

esperian

tak neviem mne tam tez vykricnik svieti ale zbehne to dobre .. tak potom neviem

esperian

a sice akurat pozeram ze ten vykricnik tam svieti pre system("cls"); a nie sleep

hardest

no neviem, mne furt pise kompilator, ze -> main.c:76: warning: implicit declaration of function 'sleep' 

esperian

#232
alebo stranu dozadu tu jeden pisal ze , no len potom neviem preco mne to ide so sleep a dokonca ked dam Sleep tak mi to vobec neberie do uvahy
"neexistuje sleep() ale existuje Sleep()"

orsi

toto dopiste na koniec draw() a malo by to fungovať. cislo v Sleep si dajte podla uváženia.


   Sleep(500);
   system("cmd /c cls");


hardest

orsi .. a nejaky hlavickovy subor .h si nepridaval ? ... lebo mne to nejak nejde .. toto: system("cmd.exe /c cls"); na vymazanie obrazovky mi funguje ale sleep nie

orsi

tieto hlavickove mam:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <windows.h>


a Sleep s velkym S. s malym mi to neslo. skús.

hardest

#236
aha, tak tam bol problem, ja som to daval s maly s .. Sleep(); uz funguje

aj ked nie je to najlepsia vec, lebo ked dam vacsie cislo tak potom velmi vidno ze sa prepisuje cely svet a nie len karel


orsi

ako na tu funkciu move() ? nemohol by niekto vysvetlit?

esperian

no ja som to skusal tak ze ak frontIsClear() tak potom podla karlovej orientacie napr ak je orientacia 0 tak som dal ze karel_x=karel_x+1; ono to fungovalo do lava aj doprava ale akonahle som ho dal hore alebo dole tak ten riedok v ktoroom sa karel nachadzal sa zmencil o 1 poziciu pretoze tam chybal karel , a ked uz presiel do dalsieho riadka tak tam uz bol o jeden znak viac pretoze tam presiel karel .. tak som to zmazal ale skus mozno to nejako rozbehas

ppeess

#239
Quote from: esperian on  31.03.2011, 01:58:33
no ja som to skusal tak ze ak frontIsClear() tak potom podla karlovej orientacie napr ak je orientacia 0 tak som dal ze karel_x=karel_x+1; ono to fungovalo do lava aj doprava ale akonahle som ho dal hore alebo dole tak ten riedok v ktoroom sa karel nachadzal sa zmencil o 1 poziciu pretoze tam chybal karel , a ked uz presiel do dalsieho riadka tak tam uz bol o jeden znak viac pretoze tam presiel karel .. tak som to zmazal ale skus mozno to nejako rozbehas
A y-novu suradnicu mas kde? :)

edit esp//no mozno aj preto mi to tak robilo xD

xxxx

ako ste robili funkciu move() ?

mne to ide, ale takym sposobom, ze sa karel zmaze z aktualnej pozicie a da sa do pozicie o jednu dopredu ... lenze teraz mam problem, ked je vo svete na mieste karola beeper, tak sa zmaze aj ten beeper nie len karol ... ako inak sa to da bez toho mazania predchadzajucej pozicie ?

dikes

mirek

Quote from: xxxx on  01.04.2011, 19:15:03
ako ste robili funkciu move() ?

mne to ide, ale takym sposobom, ze sa karel zmaze z aktualnej pozicie a da sa do pozicie o jednu dopredu ... lenze teraz mam problem, ked je vo svete na mieste karola beeper, tak sa zmaze aj ten beeper nie len karol ... ako inak sa to da bez toho mazania predchadzajucej pozicie ?

dikes
sak poziciu karla mas ulozenu v troch premennych - karel_x, karel_y a karel_direction. preco tieto informacie duplikujes a ukladas ich aj do sveta? akurat pri vykreslovani si daj potom pozor, aby si na vykreslenie karla nezabudol vo funkcii draw()
So say we all!

xxxx

nechapem, ako by som ich duplikoval a ukladal do sveta?

v turnOn() ked natrafi na znacku karla tak da do karel_x=x, karel_y=y; a potom v draw() ked je v poli world karel, tak ho vykresli a to je prave problem, lebo pri move() mam napr. pre orientaciu na zapad: if(world[karel_x][karel_y]==ROBOT); karel_y++; world[karel_x][karel_y]=ROBOT; clrscr(); draw(); break;  ... lenze pri tomto mam dvoch karlov vedla seba lebo ked spravi draw() tak ho nakresli aj na to predchadzajuce miesto a neviem ako spravit aby ho tam nekreslilo aj na to predchadzajuce miesto bez toho vymazania, ze aby ho len presunulo z tej povodnej karel_x, karel_y do novej pozicie karel_x a karel_y a vykreslilo len tam

esperian

s pouzitim akej  kniznice by som mohol vykreslit krajsie karlov svet ??

mirek

Quote from: xxxx on  01.04.2011, 19:48:07
nechapem, ako by som ich duplikoval a ukladal do sveta?

kolkokrat sa teda v tvojom programe nachadza informacia o tom, kde sa karel nachadza? ak je to viac, ako raz, tak duplikujes tento udaj. ked sa na to kuknem, tak vidim, ze tuto informaciu mas 2x:
- karel_x, karel_y, karel_direction => to je prvykrat
- world[karel_x][karel_y]==ROBOT => (vycuc z tvojho kodu) - tu je to druhykrat

moja rada znela, ze neukladaj ROBOT-a do world-u - uz mas jeho poziciu ulozenu v premennych karel_x, karel_y, karel_direction. ale ked budes svet vykreslovat vo funkcii draw(), tak:
- vykresluj ho postupne znak po znaku (prvok po prvku)
- ak prides na to, ze mas vykreslit znak na pozicii, na ktorej sa nachadza karel, tak nevykresli obsah sveta, ale vykresli aktualny svat karla (teda jeho smer)
So say we all!

mirek

#245
Quote from: esperian on  01.04.2011, 20:25:36
s pouzitim akej  kniznice by som mohol vykreslit krajsie karlov svet ??
curses.h?

edit esp//dikes mirek
So say we all!

xxxx

#246
diky mirek, uz chapem kde bol problem

len mam este jeden problem, ked mi to vykresli cely svet tak celkom dole kde je ohranicenie sveta mriezkami, tak za poslednou osmou mriezkou je este jedna bodka, cize EMPTY ... ked prejdem char* map tak ulozim do world EMPTY alebo WALL ... no tu nemam uz nic za poslednou mriezkou, tak ma napadlo ci tam nie ten znak ukoncenia retazca \0 ... skusal som teda pridat jednu vetvu case, ze ak je '\0' tak nech robi len break, ale nejak to nejde, ajtak to tam da bodku pri vykreslovani

akoby to pri turnOn vobec nebralu tu vetvu case '\0': break;

zaky

#247
Quote from: xxxx on  01.04.2011, 21:09:59
diky mirek, uz chapem kde bol problem

len mam este jeden problem, ked mi to vykresli cely svet tak celkom dole kde je ohranicenie sveta mriezkami, tak za poslednou osmou mriezkou je este jedna bodka, cize EMPTY ... ked prejdem char* map tak ulozim do world EMPTY alebo WALL ... no tu nemam uz nic za poslednou mriezkou, tak ma napadlo ci tam nie ten znak ukoncenia retazca \0 ... skusal som teda pridat jednu vetvu case, ze ak je '\0' tak nech robi len break, ale nejak to nejde, ajtak to tam da bodku pri vykreslovani

akoby to pri turnOn vobec nebralu tu vetvu case '\0': break;


for(k=0;k<strlen(map);k++)

mensie ako dlzka map
ci blud vravim? :)

// jo jasne :D

92% teenagerů neposlouchá svojí maminku. Patříš-li mezi zbývajících 8%, dej si tohle do podpisu

xxxx

mam to takto:

int dlzka=strlen(map);
for(i=0; i<dlzka; i++)

a robi mi to tam tu bodku na konci

ppeess

Quote from: xxxx on  01.04.2011, 21:53:19
mam to takto:

int dlzka=strlen(map);
for(i=0; i<dlzka; i++)

a robi mi to tam tu bodku na konci
Sak to je to iste len si dlzku map(tych jej znakov) priradil premennej a hej to k ma byt mensie nie vacsie