Forum Sveta kompjutera

Nazad   Forum Sveta kompjutera > Test Run > Programiranje > Pravljenje igara

Pravljenje igara Programski jezici, tehnike, alatke u službi pravljenja igara...

Odgovor
 
Alatke vezane za temu Vrste prikaza
Stara 21.8.2006, 0:38   #221
holodoc
Deo inventara foruma
 
Član od: 5.12.2005.
Poruke: 6.785
Zahvalnice: 348
Zahvaljeno 1.893 puta na 1.078 poruka
Određen forumom Re: objasnjenja pocetniku

E sada ide glavni deo koda.

Prvo se deklarišu neke važne promenjljive koje će se koristiti u kodu:
Kod:
int iBrojac = 0;
int iRed, iKolona;
char cKomanda;
int nStatus;
Na ovom mestu jedna važna napomena u vezi promenjljive „cKomanda“. Ona se koristi u programu kada je potrebno učitati od korisnika određenu opciju iz menija, odnosno kada korisnik treba da izabere opciju u glavnom meniju. Iako su ovde u pitanju brojevi (0,1,2) da smo iskoristili „int“ umesto „char“ imali bi smo ozbiljan problem sa programom. Naime, glupostima korisnika programa nikad kraja pa programer uvek treba da se postavi u poziciju krajnjeg korisnika kada testira svoj program. Da smo ovde iskoristili „int“ tip podataka za skladištenje unetog broja imali bi smo problem ako bi korisnik recimo uneo neko slovo ili znak. U tom slučaju bi posledice bile nepredvidive i pored činjenice da je kasnije u „switch“ petlji ostavljeno mesta za „provokaciju“ programa. Zato se pri unosu opcije u glavnom meniju uvek koristi tip podataka „char“.
Kod:
do {
        //Glavna petlja Glavnog menija
        //Ispis izgleda glavnog menija
        for(iRed = 1 ;iRed <= 3;iRed++){
            for(iKolona = 1 ;iKolona <= 40; iKolona++){  
                if((iRed == 2) && (iKolona == 1)){
                    cout << "****** KOSTOLACKA NARODNA LUTRIJA ******";
                    iKolona += 39;
                    continue;
                } else {
                    cout << "*";
                }
            }
            cout << endl;   
        }
        cout << "\nIzaberite opciju:\n" << endl;
        cout << "\t1. Promena broja kuglica\n";
        cout << "\t2. Izvlacenje!!\n";
        cout << "\t0. Necu vise da se igram :)\n\n";
        cout << "\tVas izbor (0-3): ";
        cin >> cKomanda; // unos komande
        //switch petlja koja kontolise granjanje glavnog programa
        switch (cKomanda){
            case '0':
                // opcija za izlazak iz programa
                nStatus = 0;
            break;
            case '1':
                // promena broja kuglica
                PromenaNrKuglica();
            break;
            case '2':
                //izvlacenje 
                Izvlacenje();
                SortiranjeNiza();
                IspisKombinacije();
            break;
            default:
                // opcija koja se izvrsava po defaultu
                cout << "\nPrestanite da se izmotavate i unesite broj od 0 do 2!!!\n\n";
                cout << "ENTER za nastavak....!\n";
                fflush(stdin);
                cin.get();
        }     
    } while (nStatus);

Poslednja ispravka: holodoc (21.8.2006 u 0:57)
holodoc je offline   Odgovor sa citatom ove poruke
Stara 21.8.2006, 0:39   #222
holodoc
Deo inventara foruma
 
Član od: 5.12.2005.
Poruke: 6.785
Zahvalnice: 348
Zahvaljeno 1.893 puta na 1.078 poruka
Određen forumom Re: objasnjenja pocetniku

Dalje treba napomenuti da se kompletan program nalazi u jednoj „do...while“ petlji koja stalno proverava šta je korisnik uneo od komandi. U slučaju da je u pitanju nula program preko pomoćne promenjljive „nStatus“ završava program.

Sledi najvažniji deo glavne petlje koji demonstrira gde se koristi „switch“ komanda. Naime, switch se ovde koristi da bi u zavisnosti od izbora korisnika program krenuo određenim redosledom izvršavanja i pozivanja funkcija. Ovo je najčešća primena petlje switch u C++ programima i zbog toga je važno zapamtiti je na ovom mestu.
Inače, da bi se zaštitili od raznih unosa koji nisu u meniju postoji deo „switch“ komande koji se zove „default“ koji se po automatizmu izvršava ako nije ispunjen nijedan od prethodnih uslova. Svi programi koji su nekada pisani za DOS koristili su ovaj način kontrole.

Ostatak koda bi trebao da bude jasan. Znam da je ovaj primer malo poduži ali mislim da ne sadrži ništa što do sada nije obrađeno u ovim tutorijalima. Naravno da sam imao muke da se suzdržim od korišćenja klasa i ostalih C++ specijalki ali sam hteo da demonstriram kako je moguće napisati jedan program od same nule i pri tome imati apsolutnu kontrolu nad njegovim radom.

Poslednja ispravka: holodoc (21.8.2006 u 0:58)
holodoc je offline   Odgovor sa citatom ove poruke
Stara 21.8.2006, 2:30   #223
holodoc
Deo inventara foruma
 
Član od: 5.12.2005.
Poruke: 6.785
Zahvalnice: 348
Zahvaljeno 1.893 puta na 1.078 poruka
Određen forumom Re: objasnjenja pocetniku

Malo sam preturao po arhivi i naleteo na jedan interesantan program koji sam napisao pre mnogo, mnogo vremena. Program nije direktno vezan za game-dev i nije čak ni pisan u C++-u već u C-u ali mi se učinio kao jako interesantan pa sam rešio da ga podelim sa vama. Naravno da neću moći da objašnjavam sve delove koda jer sadrži dosta stvari koje još nisu ni pomenute na ovom mestu kao što su fajl pokazivači, operatori veličine tipa podatka itd.

Naime, ovaj program je nastao kao šala koju sam par puta upotrebio na svojim prijateljima kada su pokušali da se naprave pametni nekom svojom smicalicom Sećam se slučajeva kada su ljudi čupali kablove iz računara kako bi ga isključili da ovo malo programče ne bi nastavilo sa radom Čak se sećam kako mi se jedan prijatelj kleo kako mu je program izbrisao ceo hard disk sa preko 80GB-a muzike

Šta ovaj program uopšte radi?

U suštini proširuje ideju o „simulaciji“ formatiranja hard diska Znamo da je veoma lako napraviti program koji će da napiše nešto u fazonu „Ej bato saću da ti formatiram disk“ i na ekranu da odbrojava do 100% ali ovaj program je pored originalnog format „interface-a“ dobio i jedan mali facelift. Naime, većina korisnika može odmah da provali da se običan „format“ program samo šali kada počne da ispisuje one procente na ekranu jer fali jedan bitan faktor u celoj simulaciji da bi fora bila kompletna, rad hard diska odnosno njegove lampice Lično sam dobijao tone ovakvih kvaziformat programa ali odmah je bilo lako zaključiti da se radi o fake-u jer lampica zasija samo jednom a na ekranu se i dalje ispisuje nešto u fazonu „Seljo formatiram ti hard disk i stigao sam do 23% and counting“ Tu na scenu stupa jedan mali trik koji ovaj program koristi a to je da u toku rada lampica zaista radi sve vreme tako da žrtvu veoma brzo prođe duhovitost kada shvati da je vrag odneo šalu

Ovaj program na hard disku kreira dva fajla pod nazivom „dummy“ i „dummy2“ koji naizmenično razmenjuju svoj sadržaj odnosno „presipaju“ sadržaj iz jednog fajla u drugi. Znači, kompletnu ideju treba zamisliti kao dve identične čaše pri čemu se sve vreme vrši presipanje tečnosti iz jedne u drugu. Pošto su fajlovi veoma veliki to poprilično zapošljava IDE magistrale pa se lampica skoro nikada neće ugasiti Ceo proces prestaje po isteku onih pomenutih 100% kada se pojavljuje deo „Enter volume name:“. Inače, kod sadrži i jedan deo koji po defaultu nije sadržan u krajnjem izvršnom fajlu a koji je bio inspirisan jednim tekstom iz Sveta Kompjutera od pre par godina. Tekst je išao nešto u fazonu:
Citat:
"Hm,... ";
"Tip bi da cacka po kompijuteru,... "
"Okej! "
"Prvo sto bi trebalo da uradi je naravno da, FORMATIRA SVOJ DISK!!!"
„Sa druge strane formatirati disk je veoma ozbiljna stvar pa je tip najverovatnije veoma siguran u to sto radi."
Ako se neko od autora u SK-u seti da je ovako nešto napisao bilo bi lepo da se javi
Priloženi fajlovi
Tip fajla: zip Format.zip (2,6 KB, 37 puta viđeno)
Tip fajla: zip Format_exe.zip (47,1 KB, 37 puta viđeno)
holodoc je offline   Odgovor sa citatom ove poruke
Stara 21.8.2006, 2:31   #224
holodoc
Deo inventara foruma
 
Član od: 5.12.2005.
Poruke: 6.785
Zahvalnice: 348
Zahvaljeno 1.893 puta na 1.078 poruka
Određen forumom Re: objasnjenja pocetniku

Pre isprobavanja ovog koda par VEOMA VAŽNIH napomena!!!

Vodite računa ukoliko budete eksperimentisali šta menjate u kodu. Potreban prostor na hard disku zavisi od vrednosti koje imaju #define „CIKLUS“ i #define „PORUKA“. CIKLUS je ovde postavljen na 3 000 000 što bi otprilike trebalo da odgovara „potrebama“ hard diska na 7200 [o/min]. Za neki Raptor na 10 000 [o/min] bi možda vrednost mogla da se poveća na 4 000 000 ali ne preporučujem takvu rabotu. Kao što rekoh veličina izlaznog fajla zavisi i od „PORUKA“ #define-a i dobija se kada se pomnoži dužina „stringa“ „PORUKA“ u bajtovima i broja „CIKLUS“. U prevodu, ako je „PORUKA“ duga 25 bajtova a ciklus postavljen na 3 000 000 u tom slučaju će veličina jednog fajla biti oko 75MB! Pošto postoji dva fajla za ispravno funkcionisanje ovog programa je potrebno 150MB-a!!!
Inače, program je namenjen da radi u verziji u kojoj je jedan deo namerno izostavljen tako da bi „format“ komanda bila uverljivija. To je onaj deo sa komentarima na početku. U stvari, taj tekst je postojao od samog početka u kodu ali sam ga ja „komentovao“ da se ne bi našao u .exe varijanti Za one koji žele da vide program onako kako je prvi put kompajliran neka otkomentuju mesta u kodu na kojima je to naznačeno da treba da se uradi. Potražite komentare označene sa tačkom „A“ i tačkom „B“.

Inače, možete i da proverite sadržaj nastalog fajla ali nemojte da ga otvarate Word-om već najbolje WordPad-om ili sličnim

Od dodatnih korisnih stvari pomenuo bih ovde jednu veoma korisnu promenjljivu sadržanu u okviru standardnih zaglavlja a to je „CLOCKS_PER_SEC“. Ona sadrži broj clock ciklusa procesora koje je potrebno izbrojati da bi na datom sistemu prošao vremenski ciklus od jedne sekunde. Korišćenje ove promenjljive je veoma važno ako se žele pisati programi koji ne trebaju da se razlikuju po brzini izvršavanja na različitim platformama.

Toliko od mene za danas.
holodoc je offline   Odgovor sa citatom ove poruke
Stara 22.8.2006, 23:03   #225
holodoc
Deo inventara foruma
 
Član od: 5.12.2005.
Poruke: 6.785
Zahvalnice: 348
Zahvaljeno 1.893 puta na 1.078 poruka
Post Re: objasnjenja pocetniku

Izgleda da će sledeći kod da izgleda ovako:

Kod:
#include<ijaostream>

int main(){
while(holodoc_kucka){ 
     cout << "Raja posustaje";
}
return THE_END;
}
holodoc je offline   Odgovor sa citatom ove poruke
Stara 23.8.2006, 13:03   #226
Crusader88
Veteran
 
Član od: 10.6.2006.
Lokacija: Vasiona
Poruke: 1.080
Zahvalnice: 207
Zahvaljeno 90 puta na 71 poruka
Slanje poruke preko Yahooa korisniku Crusader88
Određen forumom Re: objasnjenja pocetniku

@ holodoc
ovaj dev c++
zamara jer nije sve tako lako, a i ovaj bagoviti sams isto zamara
jel ima neki drugi c++, za koji nista ne mora da se prepravlja, da mi lepo stoji u prozoru ZDRAVO ZILE li tako nesto, a ne da cim on to izvrsi odma zatvori prozor, i to psihicki degradira, i obeshrabruje(kao da nesto nisam uradio lepo).
pozz , i jos imas svoje verne ucenike.
Crusader88 je offline   Odgovor sa citatom ove poruke
Stara 23.8.2006, 13:39   #227
voodoo_
V.I.P. GNU/Linux
 
Avatar korisnika voodoo_
 
Član od: 1.11.2005.
Poruke: 11.190
Zahvalnice: 2.103
Zahvaljeno 4.936 puta na 2.869 poruka
Određen forumom Re: objasnjenja pocetniku

Brate mili, ako ti problem pravi to što ti Windows zatvori prozor a ti ne vidiš šta je u njemu, onda batali programiranje sad odma. To zadržavanje programa da ti vidiš šta je ispisano, iako je program gotov, je podilaženje početnicima i ne pomaže da shvatiš osnovne stvari.
Zamisli šta su radili programeri u vreme DOS-a i flopi diskova, kad ti je na jednoj disketi bio DOS a na drugoj "razvojno okruženje". Ili mučenici za vreme Commodorea 64, kad si morao 2 puta da razmisliš pre nego što bilo šta otkucaš. Danas može da programira svaka baba.
voodoo_ je offline   Odgovor sa citatom ove poruke
Stara 23.8.2006, 16:01   #228
holodoc
Deo inventara foruma
 
Član od: 5.12.2005.
Poruke: 6.785
Zahvalnice: 348
Zahvaljeno 1.893 puta na 1.078 poruka
Određen forumom Re: objasnjenja pocetniku

Pošto je postojala realna opasnost da na ovom mestu objavim tekst pod imenom "Mali Mukica - Revenge of the Compiler" odlučio sam da to ne uradim nego da pređem odmah na stvar.

@Crusader88
Već sam na samom početku ove teme rekao šta svako ko počinje sa programiranjem može da očekuje za vreme učenja. Brdo problema, brdo problema i još brdo problema. Da ironija bude veća ovo što si ti naveo nije čak ni problem. I da ironija bude još veća u ovoj temi imaš bar na jedno dvadesetak mesta rešenje problema za to zatvaranje prozora.

E sad ne želim nikoga da uvredim već samo da skrenem pažnju da programiranje spada u red umnih poslova. Znači, za isti je potreban mozak a ne snažna ruka koja će da vežba puko "copy-paste"-ovanje koda ili rutinsko prekucavanje. Trebate ljudi da počnete malo i da čitate tekst koji ide uz te kodove. Od čistog kopiranja nema ničega jer ćeš ako ništa bar morati na naučiš kako da uspešno kombinuješ te delove koje "copy-paste-uješ"

U revodu, ako imaš nameru da se ozbiljnije baviš programiranjem moraćeš da se uozbiljiš i da "nabaviš" mnogo, mnogo volje i motivacije. S obzirom koliko ti je godina još uvek imaš vremena za to

Pozdrav.
holodoc je offline   Odgovor sa citatom ove poruke
Stara 24.8.2006, 8:05   #229
BobaL
Član
 
Član od: 1.4.2006.
Poruke: 493
Zahvalnice: 85
Zahvaljeno 143 puta na 83 poruka
Određen forumom Re: objasnjenja pocetniku

JOJ, sams i knjige naucite sve za 21 dan za 24 casa itd. najgore knjige ikada,
Laslo Kraus: Programski jezik c++ sa resenim zadacima,
ali pre toga obavezno kupi
Laslo Kraus: Programski jezik c sa resenim zadacima, svi programi rade, a uvek mozes da ga pitas preko mail-a sta ti nije jasno oko koda i iz iskustva znam da ce ti on uvek odgovoriti inace Laslo Kraus ti je jedan od najboljih predavaca koje sam ja video na etf-u...
BobaL je offline   Odgovor sa citatom ove poruke
Stara 25.8.2006, 1:49   #230
holodoc
Deo inventara foruma
 
Član od: 5.12.2005.
Poruke: 6.785
Zahvalnice: 348
Zahvaljeno 1.893 puta na 1.078 poruka
Određen forumom Re: objasnjenja pocetniku

@BobaL

Pre bih se složio sa konstatacijom da je Laslo Kraus postao veoma rado korišćeno sredstvo za "žvakanje" u prepirkama oko toga koji je autor knjiga o programiranju "naj,naj,naj" bez trunke zdrave argumentacije na tu temu. Lično ne poznajem Krausa niti sam imao priliku da budem na nekom od njegovih predavanja pa ću na ovom mestu reći samo da sudeći po njegovoj reputaciji predstavlja stručnjaka u svojoj oblasti i to ne želim da osporavam.

Ono što hoću ovde da osporim jeste činjenica da je kao autor pogodan za početnike pošto su oni ovde ciljna grupa. Naime, sam Kraus u svim predgovorima svojih knjiga vezanih za C++ tvrdi kako je za njihovo korišćenje potrebno uspešno savladati C programski jezik. Da je to istina složiće se svako ko prođe par glava njegovih knjiga na temu C++-a. Ono što mi se posebno ne sviđa (sada kao već slobodno mogu da kažem iskusnijem C i C++ programeru) jeste način na koji pristupa objašnjenju klasa i onome što one u suštini treba da predstavljaju. Jednostavno, principijelno gledano previše se vezuje za C i zanemaruje da na praktičnom primeru demonstrira koje su njegove najbitnije prednosti. Ovo za posledicu ima "iz neba pa u rebra" pristup učenju koji definitivno nije za početnike.

Sledeća stvar koja nije vezana samo za njegove naslove već uopšte za sve knjige koje su prevedene na srpski jeste problem oko određenih naziva. Pomenuću samo najbanalniji primer kao što su "prevodioci" itd. Zato sam uvek bio za opciju da svako ko zna engleski jezik počne odmah sa učenjem iz originalnih stranih izdanja. Tačno je da su prva izdanja uvek puna grešaka (posebno u slučajevima kada je u pitanju kod kod koga je dovoljna jedna jedina greška da "ode mas' u propas'").

Što se tiče SAMS-a takođe nisi u pravo iz jednog veoma jednostavnog razloga što su sva SAMS-ova izdanja upravo namenjena početnicima i da je "Teach yourself in..." ubedljivo najprodavanija kolekcija knjiga u svetu za početnike.
Takođe, sve SAMS-ove knjige su precizne, "straight-to-the-point" orijentisane i što je veoma, veoma važno izuzetno vode računa o izboru primera na osnovu kojih se objašnjavaju najvažniji termini. Hoćemo li možda da uporedimo na par ljudi ko će pre da ukapira klase i to na primeru iz "Teach yourself C++ in 21 days" ili na onima koji se koriste u Krausovim knjigama. Prva knjiga se sada i posle petog izdanja drži starog dobrog "Meow()" primera dok je Kraus menjao primere.

Naravoučenije naravno treba da bude da za početak nikako ne treba koristiti Krausa već nešto iz SAMS-ove kolekcije a da kasnije, po želji, i Kraus može doći na red za seciranje
holodoc je offline   Odgovor sa citatom ove poruke
Stara 28.8.2006, 18:57   #231
Andross
Kekule Mekule
 
Avatar korisnika Andross
 
Član od: 8.12.2005.
Lokacija: Beograd
Poruke: 4.143
Zahvalnice: 651
Zahvaljeno 1.358 puta na 695 poruka
Slanje poruke preko Skypea korisniku Andross
Određen forumom Re: objasnjenja pocetniku

Ako cemo ko je naj naj uzmimo Programing Language C++ od Bjarne Stroustrupa pa cepajmo.
Kod:
/**************************************************************************************************
* Naziv Aplikacije: Recnik                                                                        *
* Verzija: 1.0.0.1                                                                                *
* Opis: Jednostavan Englesko - Srpski recnik                                                      *
* Autor: ANDROSS                                                                                  *
* Razvojno Okruzenje: Microsoft Windows XP SP2, Dev-C++ 4.9.9.2, Intel Celeron 2.0GHz, 768 MB RAM *
* Datum: 24/08/06 21:11                                                                           *
**************************************************************************************************/
#include "Recnik.h"
int main()                  // Ovo definitivno znamo :)
{
    NadjiRec();             // Pozivamo funkciju koja trazi rec
    // Moja izvedba system("pause")
    char x;
    cout << "***** Pretisnite si bilo sta pa enter da bi ste izasli *****" << endl;
    cin >> x;
    return 0;           // Sve je u redu pa ubise Milosa... ovaj Recnik :)
}
To ide u Recnik.cpp
Andross je offline   Odgovor sa citatom ove poruke
Stara 28.8.2006, 18:58   #232
Andross
Kekule Mekule
 
Avatar korisnika Andross
 
Član od: 8.12.2005.
Lokacija: Beograd
Poruke: 4.143
Zahvalnice: 651
Zahvaljeno 1.358 puta na 695 poruka
Slanje poruke preko Skypea korisniku Andross
Određen forumom Re: objasnjenja pocetniku

Kod:
#include <iostream>         // Ovo i vrapci znaju sta znaci :)
using namespace std;        // Ovo takodje :)
const char* reci[70][2] =   // Nasa baza reci - pointer na dvodimenzionalni niz.
{ 
{"dog", "pas"}, 
{"cat", "macka"},
{"sheep", "ovca"},
{"computer", "kompjuter"},
{"C++", "Najjaci OOP programski jezik!"},
{"basic", "osnova"},
{"dark", "mracno"},
{"brother", "brat"},
{"game", "igra"},
{"fear", "strah"},
{"ghost", "duh"},
{"shooter", "pucac"},
{"hell", "pakao"},
{"entertainment", "zabava"},
{"WoK", "SK"},
{"fat", "debeo"},
{"dragon", "zmaj"},
{"glass", "staklo"},
{"cow", "krava"},
{"war", "rat"},
{"i", "ja"},
{"you", "ti, vi"},
{"he", "on"},
{"she", "ona"},
{"it", "ono"},
{"sword", "mac"},
{"axe", "sekira"},
{"bow", "luk"},
{"crossbow", "samostrel"},
{"mace", "buzdovan"},
{"helm", "slem"},
{"cuirass", "oklop na gornjem delu tela"},
{"greaves", "oklop za noge"},
{"boots", "cizme"},
{"gloves", "rukavice"},
{"cube", "kocka"},
{"pyramid", "piramida"},
{"triangle", "trougao"},
{"square", "kvadrat"},
{"circle", "krug"},
{"chaos", "haos"},
{"craft", "vestina"},
{"star", "zvezda"},
{"red", "crveno"},
{"green", "zeleno"},
{"blue", "plavo"},
{"pig", "svinja"},
{"animal", "zivotinja"},
{"farm", "farma"},
{"goat", "koza"},
{"dead", "mrtav"},
{"dwarf", "kepec, patuljak"},
{"king", "kralj"},
{"queen", "kraljica"},
{"prince", "princ"},
{"princess", "princeza"},
{"devil", "djavo"},
{"angel", "andjeo"},
{"good", "dobro"},
{"bad", "lose"},
{"spirit", "dusa"},
{"splendid", "sjajan"},
{"evil", "zlo"},
{"alien", "vanzemaljac"},
{"spy", "spijun"},
{"worm", "crv"},
{"wizard", "carobnjak"},
{"zeal", "predanost"},
{"movie", "film"},
{"flesh", "meso"}
};
Andross je offline   Odgovor sa citatom ove poruke
Stara 28.8.2006, 18:59   #233
Andross
Kekule Mekule
 
Avatar korisnika Andross
 
Član od: 8.12.2005.
Lokacija: Beograd
Poruke: 4.143
Zahvalnice: 651
Zahvaljeno 1.358 puta na 695 poruka
Slanje poruke preko Skypea korisniku Andross
Određen forumom Re: objasnjenja pocetniku

Kod:
void NadjiRec()             // Nasa funkcija koja sluzi za trazenje reci.
{
    bool rad = true;        // Promenljiva tipa bool oznacava rad aplikacije.
    char rec[30];           // Niz karaktera koji oznacava rec koju korisnik trazi.
    bool nadjeno;           // Oznacava da li je rec nadjena.
    cout << "***** Dobrodosli u ANDROSS-ov Recnik *****" << endl << endl;
    while(rad)              // Glavna while petlja.Ako je rad true onda se aplikacija izvrsava.
    {
        nadjeno = false;    // Rec nije nadjena(pa na pocetku smo :P)
        cout << "Unesite rec na engleskom: ";
        cin >> rec;
        for(int i = 0; i < 70; i++)        // Sporedna for petlja.Pomocu nje proveravamo bazu reci.
        {
          if(!strcmp(rec, reci[i][0]))     // Ako reci ima u bazi...
          {
           cout << "Trazena rec je: " << reci[i][1] << endl;   // ...odstampaj rec na srpskom
           nadjeno = true;                 // Nasli smo rec.
           break;                          // Iskacemo iz petlje(da bi smo optimizovali proces)
          }
          else if(!strcmp(rec, "kraj"))    // Ako je rec kraj...
          {
           rad = false;                    // Odosmo iz aplikacije :)
           nadjeno = true;                 // Cisto da ne dobijemo poruku da nema te reci :)
           cout << "Hej rec je na srpskom!Aaa oces da izadjes :)" << endl;
           break;                          // Odeeeee :)
          }
          else
          {
           nadjeno = false;                // Nismo nasli rec :( Smrc, smrc.
          }
        }
        if(!nadjeno)
        {
         cout << "Reci nema u bazi, pokusajte ponovo." << endl;
        }
    }
}
Ova zadnja dva u Recnik.h pa cepajte.Kome nije jasno e pa boli me uvo
Andross je offline   Odgovor sa citatom ove poruke
Stara 29.8.2006, 21:49   #234
voodoo_
V.I.P. GNU/Linux
 
Avatar korisnika voodoo_
 
Član od: 1.11.2005.
Poruke: 11.190
Zahvalnice: 2.103
Zahvaljeno 4.936 puta na 2.869 poruka
Određen forumom Re: objasnjenja pocetniku

Sad kad si solidno savladao C/C++, preporučujem ti da se bačiš na igre... imaš na sajtu SDL-a detaljne tutoriale koje svako može savladati.
voodoo_ je offline   Odgovor sa citatom ove poruke
Stara 30.8.2006, 3:27   #235
holodoc
Deo inventara foruma
 
Član od: 5.12.2005.
Poruke: 6.785
Zahvalnice: 348
Zahvaljeno 1.893 puta na 1.078 poruka
Određen forumom Re: objasnjenja pocetniku

Citat:
voodoo_nbgd kaže:
Sad kad si solidno savladao C/C++, preporučujem ti da se bačiš na igre... imaš na sajtu SDL-a detaljne tutoriale koje svako može savladati.
Pa ne bih baš rekao da je ovo dovoljno za bacanje na SDL Jeste da je generalno namenjen korišćenju uz C ali je dosta stvari demonstrirano na primeru C++-a. A da bi posle ovog rečnika moglo da se pređe na igre mora definitivno da nauči šta su klase (posebno njihovi konstruktori i destruktori) jer se 99% funkcija koje pristupaju grafičkim bibliotekama oslanja na metode klasa. Posebno mora da obrati pažnju na pravilno korišćenje konstruktora i destruktora!!! Pa onda mora da "svari" reference, malo rada sa pokazivačima, polimorfizme koji se često koriste pri pozivanju grafičkih rutina itd.

Može da proba sa tutorijalima SDL-a ali mislim da neće još uvek ništa da razume šta tamo piše. Moja preporuka je da se još malo zadrži na C++-u i da proba sa nekim ozbiljnijim primerom rečnika. Recimo verziju rečnika koja bi koristila klase i reference umesto dvodimenzionalnih nizova. Takođe, ovaj program može da se unapredi da klasa sadrži pokazivače na stringove kao svoje privatne članove što bi omogućilo veoma lako da postoji recimo više engleskih i srpskih reči koje odgovaraju jedna drugoj u okviru jednog objekta.

Program je takođe moguće nadograditi upisom u fajl odnosno ispisom iz njega. Naravno fajl bi u stvari sadržao reči i isti bi mogao da bude dopunjavan. Naravno koristio bi se binarni upis.

Znači za sada bi moja preporuka bila da još jednom ako nije do sada obrne SAMS-ovu knjigu iz C++-a i vidi šta nije razumeo do tada. Videće koliko će mu onda biti lak prelaz na rad sa naprednijim programima kakvi su tutorijali o SDL-u ili oni dati na GameDevNet-u.

Pozdrav
holodoc je offline   Odgovor sa citatom ove poruke
Stara 30.8.2006, 10:13   #236
voodoo_
V.I.P. GNU/Linux
 
Avatar korisnika voodoo_
 
Član od: 1.11.2005.
Poruke: 11.190
Zahvalnice: 2.103
Zahvaljeno 4.936 puta na 2.869 poruka
Određen forumom Re: objasnjenja pocetniku

Evo primera jednostavnog SDL programa (http://sol.gfxile.net/gp/):

Kod:
#include <stdlib.h>
#if defined(_MSC_VER)
#include "SDL.h"
#else
#include "SDL/SDL.h"
#endif

SDL_Surface *screen;

void render()
{   
  // Lock surface if needed
  if (SDL_MUSTLOCK(screen)) 
    if (SDL_LockSurface(screen) < 0) 
      return;

  // Ask SDL for the time in milliseconds
  int tick = SDL_GetTicks();

  // Declare a couple of variables
  int i, j, yofs, ofs;

  // Draw to screen
  yofs = 0;
  for (i = 0; i < 480; i++)
  {
    for (j = 0, ofs = yofs; j < 640; j++, ofs++)
    {
      ((unsigned int*)screen->pixels)[ofs] = i * i + j * j + tick;
    }
    yofs += screen->pitch / 4;
  }

  // Unlock if needed
  if (SDL_MUSTLOCK(screen)) 
    SDL_UnlockSurface(screen);

  // Tell SDL to update the whole screen
  SDL_UpdateRect(screen, 0, 0, 640, 480);    
}


// Entry point
int main(int argc, char *argv[])
{
  // Initialize SDL's subsystems - in this case, only video.
  if ( SDL_Init(SDL_INIT_VIDEO) < 0 ) 
  {
    fprintf(stderr, "Unable to init SDL: %s\n", SDL_GetError());
    exit(1);
  }

  // Register SDL_Quit to be called at exit; makes sure things are
  // cleaned up when we quit.
  atexit(SDL_Quit);
    
  // Attempt to create a 640x480 window with 32bit pixels.
  screen = SDL_SetVideoMode(640, 480, 32, SDL_SWSURFACE);
  
  // If we fail, return error.
  if ( screen == NULL ) 
  {
    fprintf(stderr, "Unable to set 640x480 video: %s\n", SDL_GetError());
    exit(1);
  }

  // Main loop: loop forever.
  while (1)
  {
    // Render stuff
    render();

    // Poll for events, and handle the ones we care about.
    SDL_Event event;
    while (SDL_PollEvent(&event)) 
    {
      switch (event.type) 
      {
      case SDL_KEYDOWN:
        break;
      case SDL_KEYUP:
        // If escape is pressed, return (and thus, quit)
        if (event.key.keysym.sym == SDLK_ESCAPE)
          return 0;
        break;
      case SDL_QUIT:
        return(0);
      }
    }
  }
  return 0;
}
voodoo_ je offline   Odgovor sa citatom ove poruke
Stara 1.9.2006, 3:00   #237
holodoc
Deo inventara foruma
 
Član od: 5.12.2005.
Poruke: 6.785
Zahvalnice: 348
Zahvaljeno 1.893 puta na 1.078 poruka
Određen forumom Re: objasnjenja pocetniku

Slabo

Dečica kreću polako u školu pa ih programski jezici više ne interesuju

BTW, ANDROSS dobar ti je taj primer "mutant" iz Straustropove knjige Što ga brate toliko unakazi
holodoc je offline   Odgovor sa citatom ove poruke
Stara 2.9.2006, 20:00   #238
Andross
Kekule Mekule
 
Avatar korisnika Andross
 
Član od: 8.12.2005.
Lokacija: Beograd
Poruke: 4.143
Zahvalnice: 651
Zahvaljeno 1.358 puta na 695 poruka
Slanje poruke preko Skypea korisniku Andross
Određen forumom Re: objasnjenja pocetniku

Joj ako mislis na recnik sam sam ga pravio!Stroustrupovu knjigu nisam ni pipnuo a da mi posaljes ono bre!BTW. nisu oni nista naucili sve dok ih mi ne ispitamo!!!!Samo holodoc salji ono hitno mi!
Andross je offline   Odgovor sa citatom ove poruke
Stara 4.9.2006, 18:07   #239
voodoo_
V.I.P. GNU/Linux
 
Avatar korisnika voodoo_
 
Član od: 1.11.2005.
Poruke: 11.190
Zahvalnice: 2.103
Zahvaljeno 4.936 puta na 2.869 poruka
Određen forumom Re: objasnjenja pocetniku

Naleteo sam na sledeći programčić u knjizi "Operating System Concepts" pa sam ga prebacio u funkciju jer cenim da nekom može zatrebati (meni je recimo davno trebalo al nisam znao kako da izvedem).

Dakle, znate da kad iz vašeg programa startujete drugi program, on se upali a vaš nastavlja s radom. E, u pojedinim situacijama može zatrebati da startujete drugi program ali da vaš ne nastavlja s radom dok se taj drugi ne završi (recimo kad pravite instaler koji startuje nešto i čeka da se to završi kako bi nastavio dalje). Tada taj drugi program pozovite pomoću ove funkcije:

(treba inkludovati windows.h, a i stdio.h/iostream ako koristite printf/cout)

Kod:
void RunAndWait(char *lpszFileName) {
	STARTUPINFO si;
	PROCESS_INFORMATION pi;

	ZeroMemory(&si, sizeof(si));
	si.cb = sizeof(si);
	ZeroMemory(&pi, sizeof(pi));

	if (!CreateProcess(
		NULL,
		lpszFileName,
		NULL,
		NULL,
		FALSE,
		0,
		NULL,
		NULL,
		&si,
		&pi)
	)
	{
		printf("CreateProcess failed.\n");
		return;
	}

	WaitForSingleObject(pi.hProcess, INFINITE);
	printf("Child completed.\n");

	CloseHandle(pi.hProcess);
	CloseHandle(pi.hThread);
}
Za detalje oko startovanja programa (položaj prozora i ostalo) konsultujte objašnjenje funkcije CreateProcess preko MSDN-a ili u nekom helpu.
voodoo_ je offline   Odgovor sa citatom ove poruke
Stara 5.9.2006, 22:10   #240
laserjat
Novi član
 
Član od: 29.12.2005.
Lokacija: Vojvodina
Poruke: 26
Zahvalnice: 0
Zahvaljeno 0 puta na 0 poruka
Slanje poruke preko ICQ-a korisniku laserjat
Određen forumom Re: objasnjenja pocetniku

Evo ga moj PRVI program
ali nije c++ vec samo c.

Kod:
#include <stdio.h>

main()
      {
      int i=1;
      int broj;
      
      printf("\n**********************************************************\n");
      printf("Pocnite sa unosom brojeva!\n");
      printf("Ako budete uneli broj 0  program ce prestati  sa radom!\n");

      do
        {
                  printf("Unesite %d . broj i pritisnite <ENTER> !\n", i);
                  scanf("%d", &broj);
                  printf("Uneli ste broj %d\n", broj);
                  i++ ;
                  int j;
                  int suma=0;
                  for(j=1; j<=broj; j++) 
                  {
                   suma+=j ;
                  }
                  printf("Suma svih brojeva izmedju vaseg broja i nule je %d\n", suma);
                  printf("***********************************************************\n");
        }
      while (broj>0);
      printf("Kraj programa jer ste uneli nulu");
}
laserjat je offline   Odgovor sa citatom ove poruke
Odgovor

Bookmarks sajtovi

Tagovi
programiranje, tutoriali

Alatke vezane za temu
Vrste prikaza

Vaš status
Ne možete postavljati teme
Ne možete odgovarati na poruke
Ne možete slati priloge uz poruke
Ne možete prepravljati svoje poruke

BB kod: uključeno
Smajliji: uključeno
[IMG] kod: uključeno
HTML kod: isključeno



Sva vremena su po Griniču +2 h. Sada je 16:52.


Powered by vBulletin® verzija 3.8.7
Copyright ©2000–2024, vBulletin Solutions, Inc.
Hosted by Beograd.com