-
GAMEPOD.hu
Új hozzászólás Aktív témák
-
emitter
őstag
válasz Jester01 #1081 üzenetére
na neeee! ennyire nem lehetek lámer kicsit le vagyok fáradva...
oks, így megy a dolog, köszi
viszont újabb kérdésem akadt:
ha egy fv-nek kimenő paraméterként akarok átadni int értékeket, azt gondolom érték szerint nem lehet, vagy igen?
ez így nem műxik, hogyan írjam át, h jó legyen?
...
void load(char *fajl, int *mx, int *my, palya **mezo)
{
...
fscanf(fajl,''%d'',&mx);
fscanf(fajl,''%d'',&mx);
...
}
...
int main()
{
int mx, my;
...
load(''proba.txt'', mx, my, mezo);
...
}
az mx, my változóknak a load fv adna értéket, kimenő paraméterként
szal mikor meghívom a load fv-t, nem adok át neki bemenő mx,my értéket, viszont azt akarom, h ő adjon vissza mx,my-t
remélem érthető vok -
emitter
őstag
válasz Jester01 #1084 üzenetére
na, ma átnézettem a kódot az C-tanárommal, úgyhogy kicsit tisztább lett a kép a kimenő paramétereket illetően
azóta viszont újabb érdekes probléma adódott, futtatáskor ezt kapom:
[Warning] parameter names (without types) in function declaration
<pre>
int load(char *fajl, int *mx, int *my, palya **mezo)
{
...
char *temp;
...
temp=malloc((*mx)*(*my)*sizeof(char));
...
fscanf(fajl,''%s'',temp);
...
free(temp);
...
}
</pre><p> </p>
[Szerkesztve] -
emitter
őstag
válasz Jester01 #1088 üzenetére
oks, megint igazad volt
most műxik, de futás után rögvest bezárja a konzolablakot, pedig nem kéne neki
ha főprogramból nem hívom meg a load() fv-t (kikommentezem), akkor ok a progi futása,
amúgy meg bezáródik
int load(char *fajl, int *mx, int *my, palya **mezo)
{
FILE *fs;
int i=0, j=0;
char c;
char *temp;
fs=fopen(fajl,''rt'');
fscanf(fs,''%d'',mx);
printf(''%d\n'',*mx);
fscanf(fs,''%d'',my);
printf(''%d\n\n'',*my);
mezo=malloc((*my)*sizeof(palya*)); //dinamikus memoriafoglalas
if(mezo==NULL)
{
fprintf(stderr,''\nKeves a memoria!\n'');
return -1;
}
for(i=0;i<(*my);i++)
{
mezo=malloc((*mx)*sizeof(palya));
if(mezo==NULL)
{
fprintf(stderr,''\nKeves a memoria!\n'');
return -1;
}
}
temp=(char*)malloc((*mx)*(*my)*sizeof(char));
for(i=0;i<*my;i++) //az allas beolvasasa
{
fscanf(fs,''%s'',temp);
printf(''%s'',temp);
for(j=0;j<(4*(*mx));j++)
{
mezo[ i ][ j ].akna=c-48;
mezo[ i ][ j ].reveal=fgetc(fs)-48;
mezo[ i ][ j ].mark=fgetc(fs)-48;
mezo[ i ][ j ].szomsz=fgetc(fs)-48;
printf(''%d'',mezo[ i ][ j ].akna);
}
printf(''\n'');
}
free(temp);
fflush(fs);
fclose(fs);
}
egy pillanatra látom felvillanni az ablak tartalmát, és kiírja rendesen a beolvasott cuccokat, de aztán nagy semmi -
emitter
őstag
válasz Jester01 #1090 üzenetére
Igen, elég zavaros volt, kijavítottam a hibákat. A fájlban a mezőket mátrix-formában tárolom, szal Enterrel a sorok végén, ezért kell először egy átmeneti temp-változóba olvasni.
Most ott tartok, h műxik a dolog, kiírja a képernyőre a fájl helyes tartalmát, de rögtön lefutás után feldob egy hibaüzit, h a ''0x7c...'' címen található utasítás ''0x00...'' mem.címre hivatkozott. stb.
[link]
és ha kell, itt a file [link] -
emitter
őstag
-
emitter
őstag
#include <time.h>
int main()
{
double veletlenszam;
srand(time(NULL));
veletlenszam=rand();
printf(''%lf\n'',veletlenszam);
system(''pause'');
}
ez elvileg működőképes kell, h legyen, próbáld ki!
az a baj, hogy nemigazán tudom, hogyan lehet 0 és 1 közé szorítani a visszaadott értéket, mert nem találtam egy olyan fv-t se, amelyik két nagy szám hányadosának a törtrészét adta volna vissza, double értékűként.
persze lehet, h csak rosszul kerestem -
emitter
őstag
hát ezaz, csak nem tom, mi a rand_max értéke, sehol nem találtam hozzá ''útmutatót''
azt sem tudom, hogyan lehet adott tartományon belül generálni számot:
devc++ om nem akarja elfogadni a random() fv-t, pedig elvileg ez lenne a megoldás
#include <time.h>
#include <stdlib.h>
int main()
{
double veletlenszam;
srand((unsigned)time(NULL));
veletlenszam=random(10000)/10000;
printf(''%lf\n'',veletlenszam);
system(''pause'');
}
próbáld ki, neked megy-e -
emitter
őstag
Egy elég nehéz akadályba ütköztem aknakeresőm készítése közben:
ugye az úgy szép, meg elegáns, ha egy mezőnek a környezetében vmelyik másik mezőn nincs akna, és én erre a mezőre ''kattintok'', akkor addig tárja fel a szomszédos aknátlan mezőket, amíg csak lehet.
Hogy kicsit érthetőbb legyen, itt egy kép, h a májkroszofték ezt hogyan oldották meg:
Ha jól gondolkozom, akkor vmiféle rekurzív algoritmus kéne ehhez, de én az ilyenekben béna vagyok, nem nagyon tudnék magamtól ilyen algoritmus kitalálni.
Nálam így néz ki a dolog:
Pl. mikor a sárgán jelölt mezőre kattintottam, akkor csak azt az 1 mezőt tárta föl. Azt szeretném elérni, hogy az összes szomszédos nem-aknás mezőt tárja föl ilyenkor, tehát legalább a két fehér-keretes mezőig jusson el. (a fehér téglalap a kurzor akar lenni, azt nem kell nézni)
Szóval ha bárkinek bármilyen ötlete van, ne hallgassa el!
Előre is thx -
emitter
őstag
/*printf(''\nKivanja latni az adatokat? (0/1)'');
scanf(''%s \n'',&a);
if (a=='i')*/
ez gondolom nem műxik, ha már kikommentezted
helyesen így nézne ki:
printf(''\nKivanja latni az adatokat? (i/n)'');
a=getch();
if (a=='i')
egyébként sajnos nem sokat réünk a forráskóddal, mert ha bekopipésztelem akárhova, átalakítja a '' idézőjelet ' ' idézőjellé
próbáld meg felrakni 1 tárhelyre
egyébként a scanf() nem parázik azért, mert beleírtál egy '\n'-t? Nálam ugyanilyenért asszem ezért fagyott rendesen a progi[Szerkesztve]
-
emitter
őstag
azt nem tudjátok, hogy lehet C-ben pl. copyright-jelet írni? Meg az egyéb szimbólumokat, mondjuk a Unicode-kódokat kiiratni?
-
emitter
őstag
válasz Jester01 #1121 üzenetére
hali!
én is sokat szívtam nélküled de legalább kisebb simításokat tudtam végezni a ''holt időmben''
szóval a kérdésem az, h miért száll el a progim (lefut, rögtön bezáródik hibaüzi nélkül)
mindent kikommenteztem, csak a load() maradt, ez nem akar menni rendesen
[link]
megköszönném ha rá tudnál pislantani, köszi előre is! -
emitter
őstag
válasz emitter #1128 üzenetére
most palya**-t adtam vissza a load()-dal, most nem fagy
és műxik a betöltés is, eddig miden ok, köcce
még ott van viszont a szerencsétlen és átláthatatlan feltar() fv-em, ami szintén fagyaszt, de simán elronthattam benne akármit, mert rekurzív, és mint mondtam, ehhez nem sokat értek
bár ha te sem találod meg benne első ránézésre a hibát, akkor sztem ne fáradj vele, legfeljebb kihagyom a progiból ezt a fícsört mondjuk így majd sokkal többet kell kattintgatni... -
emitter
őstag
válasz Jester01 #1130 üzenetére
ok, javítottam, most jó kell legyen
meek csicsikálni, holnap a suliban még debuggolok
még azon a feltar()-on van mit csiszolni
meg a mentett pálya folytatása sem az igazi
ja, ha még nézegeted, akkor 'proba.txt' néven mentsd el a pályát, mert a load() is azt olvassa vissza (egyelőre)
jó éjt!
és köszi a segítséget[Szerkesztve]
-
emitter
őstag
válasz Jester01 #1132 üzenetére
kicsit bonyolultabb a helyzet, mint gondoljátok szóval ha lehet, máshogy oldom meg ezt a rekurzív cuccost:
kérdés, hogy lehet azt lekérdezni (''felfogni''), hogy ha én egy tömb nemlétező indexű elemét akarom elérni. Gondolom ilyen esetben a progi generál magának valahova egy hibaértéket (valami error-output-ba?) Van ilyen egyáltalán?
Csak mert ha ezt tudnám hasznosítani, akkor nem kellene ennyiféle if-elágazást csinálni a feltar() fv-emben, hanem elég lenne megnézni a szomszédos mezők akna-vizsgálatakor, hogy az igaz-e az error (azaz nem létezik ilyen indexű tömbelem, azaz túlléptem a pálya szélét).
Ha error==1, akkor break; vagy vmi ilyesmi, és folytatom a következő mezővel a vizsgálást.
Szal van ilyesmi error-cucc? -
-
emitter
őstag
válasz Jester01 #1139 üzenetére
na asszem ezt mára feladom, már nem fog az agyam ilyen későn
egyszerűen ez a rekurzív dolog nagyon bekavar, nem is értem a lényegét, hogy honnan hova ugrik a progi futása a rek. fv-hívások közben, stb...
másik kérdés:
konzolos módban végre rájöttem, hogyan lehet színeket kevergetni, de nincs vhol egy táblázat, hogy milyen kevergetéssel milyen színeket lehet előállítani?
ha jól számolok, összesen 22 színárnyalatot lehet csinálni, beleértve a fehéret, feketét, ugye? -
emitter
őstag
válasz emitter #1142 üzenetére
közben sikerült minden színt kikevernem:
#define color_white SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN|FOREGROUND_BLUE|FOREGROUND_RED|FOREGROUND_INTENSITY)
#define color_lightgray SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_BLUE|FOREGROUND_GREEN|FOREGROUND_RED)
#define color_gray SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY)
#define color_black SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), )
#define color_red SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED|FOREGROUND_INTENSITY)
#define color_darkred SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED)
#define color_lime SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN|FOREGROUND_INTENSITY)
#define color_green SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN)
#define color_blue SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_BLUE|FOREGROUND_INTENSITY)
#define color_darkblue SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_BLUE)
#define color_navyblue SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN|FOREGROUND_BLUE
#define color_cyan SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN|FOREGROUND_BLUE|FOREGROUND_INTENSITY)
#define color_fuchsia SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_BLUE|FOREGROUND_RED)
#define color_purple SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_BLUE|FOREGROUND_RED|FOREGROUND_INTENSITY)
#define color_brown SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN|FOREGROUND_RED)
#define color_yellow SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN|FOREGROUND_RED|FOREGROUND_INTENSITY)
sztem ennyi az összes lehetséges kombináció
azért csodálkozom, h C-ben ennyire alapszinten kezelik a színeket... pascalban simán rendelkezésre állt az összes szín... -
emitter
őstag
válasz Jester01 #1149 üzenetére
köszi, már be is építettem!
és ezennel jelentem, kész a második verzió, felraktam a táramra! [link]
egy probléma lép még föl néha: a képen látszódó 2 db 1-es rögtön indítás után (új játék) jelent meg magától, úgy, hogy nem is nyomtam még sehova
de ez teljesen random, néha csinálja néha nem, ha csinálja akkor mindig a baloldali első v második sorban egy-két mezőt előre felderít nekem ráadásul nem is mindig jól, mert volt, h feketével jelölt nekem egy mezőt, mire miztonságból rákattintottam, ásláss csodát: akna volt alatta halvány gőzöm sincs, h ez mitől lehet... -
emitter
őstag
válasz Jester01 #1153 üzenetére
Ne haragudj, de nem tudnád tételesen leírni, h hol mit kellene javítanom, mert igazából holnapra már kéne a működőképes progi, és én megpróbáltam kijavítani ahogy írtad, de csak rosszabb lett Felraktam a ''javított'' változatot.
szerk: a temp változót, amellyel a megjelölt/feltárt mezőket számoltam, az átláthatság és egyértelműség miatt átneveztem mezoszam-ra, és megszabadultam a lépésenkénti egyész pálya-vizsgálástól is, most még az újrarajzolás kihagyásán küzdök...
c4-eXp: zsír az aláírásod[Szerkesztve]
-
emitter
őstag
válasz Jester01 #1158 üzenetére
ezer köszönet!!! most már minden okés, remélem több számomra megoldhatatlan hiba nem fog felbukkanni...
akkor ha a screenshot alapján jól látom, linux alatt is tudtad futtatni a progit? mármint a színeket jól megjeleníteni? olyan üres téglalap-kurzort hogyan tudsz csinálni?
egyáltalán a kurzor méretén és láthatóságán kívül lehet még vmit állítani rajta? -
emitter
őstag
válasz Jester01 #1161 üzenetére
király! megvan a félévi egyetlen 5-ös tárgyam és ez a prog
na szal természetesen tanárbácsi ötösre értékelte közös mnkánkat s mivel a zh-k is jók lettek, megvan a félévi jójegy
végre egy tárgy ami felfelé húzza az átlagom...
mégegyszer köszönöm minden fáradozásodat!
(azért remélem te is jót játszottál vele ) -
emitter
őstag
akkor csak 1 év van köztünk
most kezdtem a BME-VIK-en (villanyszak), ráadásul német nyelvű képzésen vagyok
nem mondom h könnyű, de kb ilyesmire számítottam, nem ért túl nagy meglepetés
gondolom téged az infó szak érdekelne, (ezt azalapján gondolom, h ha jólláttam, nem 0 a prog tudásod )
Nálunk villanyon idén indult először C#, eddig Pascalt nyomtak (gondolom a kétszintű képzés miatt kötelező volt átállni így a XXI sz.-ban )
jövőre C++szal folytatjuk, aztán talán Java jön, ha jól értesültem
Villanyszakon nem tudom milyen a képzés, nálunk a német infósok is C-t tanulnak egyelőre ugyanolyan szinten, de mellette van még vmi más prog-szerű tárgyuk is
osztálytársam az Elte-re ment infóra, eddig nem sok örömöt lelt benne
aztmondta h van 6-féle matekjuk komoly! mindegyikből vizsga
és most 1. félévben még nem is tanulnak progot mindenesetre érdekes
Ha több infót szeretnél, ajánlom ezt a topikot: [link]
üdv:
Kristóf
mod: én is megkérdezhetem, hova jártál? akarom mondani hova jársz?[Szerkesztve]
-
emitter
őstag
hi!
tudtok segíteni, hogyan kell ''számlálót'' csinálni? Azt szeretném, hogy egy ciklus minden másodpercben kiírja az aktuális másodpercet, de eddig minden próbálkozásom sikertelen volt... és nem is találtam eddig sehol ilyenre példaprogit valami ötlet, trükk erre vonatkozóan?
köszi -
emitter
őstag
válasz Jester01 #1180 üzenetére
hát még mindig az aknakeresőmbe kéne, hogy a játék közben számlálja az eltelt sec-eket, (ki is írja) lehessen esetleg pause-zni, stb. Én is úgy próbáltam, hogy megnézem gyakorta, h eltelt-e már 1 másodperc, de nem sok sikerrel...
time(&t0); //kezdőidő
time(&t1);
for(i=1;i<500000;i++)
{
if(time(&t2)!=t1)
{
time(&t1);
diff=(int) t2-t0;
system(''cls'');
printf(''%d'',diff);
}
} -
emitter
őstag
válasz Jester01 #1182 üzenetére
A FillConsoleOutputCharacter()-nek hogyan tudom megmondani, h mettől meddig töröljön (azaz '' ''-t írjon)?
Úgy gondoltam, hogy híváskor megadom a kezdő és a végsorokat paraméterként, és akkor csak a két adott sor közti részt törli.
A kezdőpozicionálás könnyű, de azt nem tudom megcsinálni, h csak egy adott sorig töröljön
Gondolom arra nem szép apellálni, hogy csak 80 karakter széles a képernyő enélkül viszont hogyan? -
emitter
őstag
hi!
devc++t honnan tudok leszedni linux alá? az oldalán ugyanis csak winest találtam
vagy ha nincs linuxos változat, akkor milyen más progit ajánlotok?
[Szerkesztve] -
emitter
őstag
válasz Vilmoskorte #1221 üzenetére
kde is van, de gonme-ot használok inkább
azért leszedem kdevelopot, hátha az nem fagy ki tőle -
emitter
őstag
feltettem, ez jobb, nem fagy tőle, csak nem tudja futtatni..
cd '/home/emitter/aknakereso' && WANT_AUTOCONF_2_5=''1'' WANT_AUTOMAKE_1_6=''1'' make -f Makefile.cvs && cd '/home/emitter/aknakereso' && CC=''i586-mingw32msvc-c'' CXX=''i586-mingw32msvc-c++'' LD=''i586-mingw32msvc-ld'' ''/home/emitter/aknakereso/configure'' && cd '/home/emitter/aknakereso' && WANT_AUTOCONF_2_5=''1'' WANT_AUTOMAKE_1_6=''1'' make -j1
aclocal
aclocal: configure.in: 8: macro `AM_PROG_LIBTOOL' not found in library
make: *** [all] Error 1
*** Exited with status: 2 ***
mit kell csinálom? a wines libeket hogy tudom helyettesíteni (gondolom azok miatt parázik..)?
a progi itt van fönn: [link] -
emitter
őstag
válasz Jester01 #1225 üzenetére
cd '/home/emitter/aknakereso' && WANT_AUTOCONF_2_5=''1'' WANT_AUTOMAKE_1_6=''1'' make -f Makefile.cvs && cd '/home/emitter/aknakereso' && CC=''i586-mingw32msvc-c'' CXX=''i586-mingw32msvc-c++'' LD=''i586-mingw32msvc-ld'' ''/home/emitter/aknakereso/configure'' && cd '/home/emitter/aknakereso' && WANT_AUTOCONF_2_5=''1'' WANT_AUTOMAKE_1_6=''1'' make -j1
aclocal
autoheader
automake
autoconf
installing -c
checking whether build environment is sane... yes
checking whether make sets $(MAKE)... yes
checking for working aclocal-1.4... found
checking for working autoconf... found
checking for working automake-1.4... found
checking for working autoheader... found
checking for working makeinfo... missing
checking for C++ compiler default output file name...
configure: error: C++ compiler cannot create executables
See `config.log' for more details.
*** Exited with status: 77 ***
futtatáskor még azt is kiírta, hogy nincs Makefile ebben a könyvtárban, ezért először a 'Configure'-t futtatja
ezek után dobta ezt a hibaüzit -
emitter
őstag
válasz Jester01 #1227 üzenetére
belekukkantottam, de nem lettem okosabbb
én sem tudom, mi az a mingw-s cucc, a forráskódban nincs mingw, esetleg az zavarhatott be, hogy előtte többször is mingw-vel próbáltam uazt a kódot megnyitni, sikertelenül...
de nem értem, miért zavarna ez be, hiszen kdev-vel új projektet nyitottam és beleillesztettem a main.c-t
egyébként projekt nélkül miért nem lehet simán egy .c-t futtatni? -
emitter
őstag
hát nem vagyok (még ) egy prog-guru, de az az érzésem, hogy elég sokáig tartana végigpróbálgatni egy 128bites szám gyökéig az osztókat (mivel más módszer nem ismeretes erre, mint a próbálgatás)
mert ha olyan gyors lenne az algoritmus, akkor a titkosítások (amik min. 64-128 bittel dolgoznak) könnyen feltörhetők lennének
persze lehet, h rosszul gondolom, akkor majd úgyis kijavít vki
ui: megkérdezhetem, mihez kéne? -
emitter
őstag
válasz szijartg #1259 üzenetére
sztem az egy elég jó könyv, nekem is megvan, (a legújabb, 2005-ös, CD-s kiadás)
0-ról kezd, nem feltételez semmi előismeretet
bár nem ismerem még a c++t, de asszem, mivel az egy fejlettebb nyelv c-nél, érdemes előbb a c-vel elkezdeni, télleg, h csak az alapokat megértsd
vagy rosszul gondolom ?
mod: még nem használtam a CD-jét, ki se bontottam
[Szerkesztve] -
emitter
őstag
válasz Jester01 #1229 üzenetére
szia!
na, végre sikerült mindenből levizsgáznom, most teljes kapacitással tok a progimmal foglalkozni (nomeg a Linuxszal ismerkedni )
szóval: make main -> [link]
ezek â�� idézőjelek akarnak lenni és a main.c-met akarom fordítani konzolból, mivelhogy a graf. fejlesztőkörnyezetek elszállnak a kódomtól -
emitter
őstag
hát ezaz, mivel ez a két lib csak win alatt létezik, lévén wines libek
szal mégiscsak az a megoldás, h kiszedem ezeket a kódokat, és legfeljebb így nem használok színeket, meg ilyesmik...
bár Jester azt mondta régebben, h nem kell sokat átírni a kódomon h linuxon is fusson, bizonytalan vagyok...
kár h ő most nincs itt
mod: a kód itt van: [link]
[Szerkesztve]
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
Állásajánlatok
Cég: Ozeki Kft.
Város: Debrecen
Cég: Promenade Publishing House Kft.
Város: Budapest