játékfejlesztés.hu
FórumGarázsprojectekCikkekSegédletekJf.hu versenyekKapcsolatokEgyebek
Legaktívabb fórumozók:
Asylum:    5448
FZoli:    4892
Kuz:    4455
gaborlabor:    4449
kicsy:    4304
TPG:    3402
monostoria:    3284
DMG:    3172
HomeGnome:    2919
Matzi:    2520

Pretender:    2498
szeki:    2440
Seeting:    2306
Geri:    2188
Orphy:    1893
Joga:    1791
Bacce:    1783
MaNiAc:    1735
ddbwo:    1625
syam:    1491
Frissebbek | Korábbi postok
[1] [2] [3] [4] [5] > 6 < [7] [8] [9] [10] [15] [16]
LugaidVandroiy - Törzstag | 504 hsz       Online status #174403   2012.02.08 10:22 GMT+1 óra  
Igen, úgy köszönöm szépen Csak most még emésztem magam, hogy ennyire hülye vagyok, hogy egy ilyenre sem jövök rá

   
Pretender - Törzstag | 2498 hsz       Online status #174399   2012.02.08 08:45 GMT+1 óra  
Ahogy M4 is mondta:
Kód:
inline const byte& GetPixel(const int& _x, const int& _y) const
{
    return memVideo[_y * SCREENW + _x];
}

Feltéve természetesen, hogy soronként építed fel a tömböt, nem oszloponként
Tehát a 0. elem az a {0,0}, 1. elem az {1,0}. De úgy vélem igen, a mintapéldád szerint.

   
M4 - Tag | 187 hsz       Online status #174397   2012.02.08 07:53 GMT+1 óra  
y*screenw + x
A fordítottja: x = p%screenw; y = p/screenw. Itt / egész osztás

   
LugaidVandroiy - Törzstag | 504 hsz       Online status #174396   2012.02.08 07:49 GMT+1 óra  
Nem talaltam a kerdesnek jobb helyet, ezert itt kerdezem meg. Adott egy virtualis memoriaterulet, ami a kepernyon megjeleno pixelek szineert felel. Tudom a szelesseget magassagat, es kozvetlen nagyon szepen tudom manipulalni. Viszont nem jovok ra annyira hulye vagyok, hogyha x es y koordinata alakban akarom felirni a pixelt, akkor azt milyen keplet alapjan tudom a tomb indexenek szamara konvertalni? 1 byte minden pixel.

byte[] memVideo = new byte[SCREENW * SCREENH];

Kirajzolas megy, kokzvetlen cimzes is, de nem jovok ra, hogyha mondjuk a (0, 1) koordinatakra akarok hivatkozni azt hogy teszem meg (azon kivul, hogy 50, mert ilyen szeles jelenleg a virtualis kepernyo)

Elore is koszi es bocsi mert ilyen hulye vagyok.

   
Elodin - Tag | 173 hsz       Online status #174222   2012.02.05 16:49 GMT+1 óra  
Van egy kis problémám egy OKTV feladattal.

Van egy N hosszúságú számsor, melyből L-szer kiveszünk H hosszúságú számsorokat. A kivettek értékei lenullázódnak, de a helyük marad, tehát ha a számok pl. 5 7 7 1, és L=2, H=2, akkor ha először a két hetest vesszük ki, akkor utána az 5 0 0 1 számsorból kell két összefüggő számot választanunk. A cél az, hogy minél nagyobb legyen a kiválasztott számok értékeinek összege. Pontos határokat nem mindenhova tudok mondani, 1<=L<=10, az N 30000 lehet talán, a hosszra nem emlékszem.
Első lépésben átalakítottam a sorozatot úgy, hogy az új sorozatom i-edik tagja az a számérték, ahány pontot ér, ha onnan kezdve veszek ki H számot. Ez n-h+1 hosszúságú sorozat lesz, a fenti számok esetében: 12, 14, 8. Tudom, hogy ha az i-ediket kiveszem, akkor i+h-1-ig nem vehetek mást ki, ez lesz egy feltétel.
Utána az általam kreált sorozaton végigmentem backtrackel, és a jó lehetőségek közül a legnagyobbat kiválasztottam. Időhiány miatt nem volt időm másra, de nem is bánom, hogy ezt csináltam, mert jobbat azóta se tudtam kitalálni… Nyílván a nagy tesztekre nem fog lefutni, de kis számok esetén működnie kell.
A másik lehetőség az lett volna, hogy L-szer kiveszem a legnagyobbat, és közben módosítom a sorozatokat, de ez nem minden esetben adna jó eredményt (a fenti példában pl. először a két hetest venné ki, utána az ötöst és a nullát, amikor minden szám is kijöhetett volna).

Amire kíváncsi vagyok, az egy olyan megoldás, ami minden esetben helyes eredményt ad és időben lefut.

Szerk. Volt egy ötletem, de mégegyszer végiggondolva rájöttem, hogy hibás.

Ezt a hozzászólást Elodin módosította (2012.02.06 16:30 GMT+1 óra, ---)

   
zeller - Törzstag | 464 hsz       Online status #172736   2012.01.15 12:22 GMT+1 óra  
Nem az alapul szolgalo framework-okre gondoltam, hanem az architekturara.
Mindenesetre ez erdekes...

   
proof88 - Törzstag | 530 hsz       Online status #172728   2012.01.15 11:04 GMT+1 óra  
zeller - Törzstag | 464 hsz       Online status #172715   2012.01.15 08:50 GMT+1 óra  
Milyen UI architekturakat hasznalnak jatekokban?
SDL/OpenGL-re epitve egy kovetkezo wrappert kezdtem el irni, de ez elegge desktop alkalmazasos:
Component ossel a komponensek hierarchiaja
ComponentRegistry, ahol ezek be vannak regisztralva egy nezeti faba.
Event - az esemenyek ose
EventDispatcher - aki a event-et a megfelelo komponenshez juttatja.
A komponensekhez listenereket lehet aggatni, amik observerek es a dispatcher push mechanizmussal a fabol valo lookup utan juttatja el a megfelelohoz az eventet lekezelesre.
Lesz focusmanager is, a keyboard eventekhez.

   
Asylum - Törzstag | 5448 hsz       Online status #172222   2012.01.08 13:49 GMT+1 óra  
Hát ha külön threadböl hivodna ez meg akkor én a contentmanagert lockolnám regisztrácio elött (pontosabban a regisztrácio lockolná a cm megfelelö konténerét). Arra viszont vigyázz, hogy a dx (meg általában minden com cucc)-nak külön jelezni kell ha másik threadböl is hivogatod.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Pretender - Törzstag | 2498 hsz       Online status #172220   2012.01.08 11:47 GMT+1 óra  
@Asy: amúgy a T::Create(...) alatt olyasmire gondolok, mint ami neked van a GLProjects-ben, pl.
Kód:
success = mesh::fromQM(table, "box.qm");

   
zeller - Törzstag | 464 hsz       Online status #172218   2012.01.08 11:44 GMT+1 óra  
Hivatalos allaspont szerint ha a lock volatile akkor mukodik a dcl (tobb nyelven is).

   
Asylum - Törzstag | 5448 hsz       Online status #172217   2012.01.08 11:41 GMT+1 óra  
"elvileg"

Akkor meg ez a klasszikus író-olvasó probléma: http://en.wikipedia.org/wiki/Readers-writers_problem
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Pretender - Törzstag | 2498 hsz       Online status #172216   2012.01.08 11:41 GMT+1 óra  
A Set tuti lefut. Ezt olyan helyeken akarom használni, ahol pl. a program indításakor lefut a set a fő szálon, azután majd valamikor indul a betöltő szál, ami hívhatja ezeket a static metódusokat, amiket másik szálon közben biztosan nem babrálok.

Singleton meg ami van, az pl. a Logger, azt főleg betöltéskor használom eleve. Ami még kérdéses számomra az az (bár az anno működött), hogy ha van egy Game osztályom, ami egybegyűjti a komponenseket (pl. ContentManager, Input, stb.) és pl. úgy van, hogy
Kód:
Game* game;

// load szál
void Load()
{
    T* t = game->GetContent()->Load<T>("...");
    // stb. "game"-t használó cuccok
}

// közben a fő szálon futó cucc
void Update()
{
    if (game->GetInput()->KeyIsPressed(DIK_ESCAPE))
        game->Exit(); // természetesen ez lekezeli, ha van egy futó szál, stb.
}

akkor abból lehet-e gond? Anno nem vettem észre semmiféle problémát, de lehet, hogy csak nem jött elő, és most "safebbé" akarom tenni a cuccot

Annyi amúgy, hogy két szálon sose hívok ugyan azt, max. a Gettereket, amik értékeket adnak vissza (amik alapvetően vagy pointerek, vagy konstans referenciák)

   
zeller - Törzstag | 464 hsz       Online status #172215   2012.01.08 11:38 GMT+1 óra  
Idézet
Asylum :
Ez nem így megy..a kód amit leírtál nem kritikus szakasz, mert mindig egy új objektumot hoz létre; tehát ha két szál egyszerre hivja ezt akkor mindkettönek lesz egy saját ilyen példánya.



Sztem nem erre gondolt, hanem, hogy az egyik szal settel egyszer es utana a tobbi ezt az objektumot getteli.
Amugy miert oregedne meg a thread safe singletonban? A double checked locking elvileg eleg lehet.

   
Asylum - Törzstag | 5448 hsz       Online status #172214   2012.01.08 11:36 GMT+1 óra  
Ez nem így megy..a kód amit leírtál nem kritikus szakasz, mert mindig egy új objektumot hoz létre; tehát ha két szál egyszerre hivja ezt akkor mindkettönek lesz egy saját ilyen példánya.

A signeltont pedig baromi nehéz threadsafe-é tenni, ugyh arra semmiképp ne épits.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
zeller - Törzstag | 464 hsz       Online status #172213   2012.01.08 11:36 GMT+1 óra  
Ha a set nem fut le teljesen a get hivasa elott akkor lesz bajos.
Altalanossagban veve, ha garantalt a mutex hozzaferes, akkor nem kell szalbiztossa tenni a kodot (vagy ha immutable az objektum, mert a repetable read akkor nem lesz inkonzisztens), de erre epiteni csak akkor lehet, ha ez architekturalisan garantalt.

   
Pretender - Törzstag | 2498 hsz       Online status #172212   2012.01.08 11:28 GMT+1 óra  
Nem singleton. Amúgy baj csak akkor van, ha egyszerre több szál akarja hívni ugyan azt, nem?
Tehát ha én biztos vagyok benne, hogy a T::Create() csak a betöltő szálon lesz meghívva, akkor nem jó?

Ugyan ez a singletonra: kicsit módosítva, nem akkor kap értéket az instance, amikor az első GetInstance() hívás jön, hanem:
Kód:
T* t = new T();
T::SetInstance(t);

ezt csinálom a fő szálban, akkor a Get ugyan úgy bajos lehet?

   
Asylum - Törzstag | 5448 hsz       Online status #172211   2012.01.08 11:23 GMT+1 óra  
Thread-safe singleton-t ne kezdj el irni, mert abba fogsz megöregedni.
Mit szeretnél csinálni?
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
zeller - Törzstag | 464 hsz       Online status #172208   2012.01.08 10:30 GMT+1 óra  
Igen, ha egyszerre tobb szal hiv create-et, es vannak exkluziv eroforrasok. Ilyenkor ra kell lockolni ezekre. Ha ez egy singleton akar lenni, akkor pedig mindenkepp kell a lock.

   
Pretender - Törzstag | 2498 hsz       Online status #172205   2012.01.08 08:37 GMT+1 óra  
Ha van egy külön betöltő szálam, és ilyet csinálok:
Kód:
class T
{
    static T* Create(...)
    {
        T* t = new T();

        // blabla

        return t;
    }
};

// valahol máshol, ahol a Load() egy betöltő szálon fut
void Load()
{
    T* t = T::Create(...);
}

abból lehet probléma? Betöltés közben senki más nem akarja az ott betöltött adatokat írni és olvasni.

   
Eldor - Tag | 163 hsz       Online status #171765   2012.01.02 09:50 GMT+1 óra  
Ismer valaki altalaban jol mukodo ( gyors ) Hamilton-kor kereso heurisztikat?

   
Parallax - Tag | 581 hsz       Online status #171598   2011.12.29 23:28 GMT+1 óra  
ddbwo: Úgy, hogy beleássa magát a szakirodalomba bizonyos szinten, másképp nem megy. Máskülönben nehéz lenne orvosi, játék, vagy egyéb programot tervezni és írni. Nekem most ultrahangos segéd progit kell fejleszteni így az orvosi témákba bele kellett tanulni. Kicsit ilyen polihisztor szakma ez a programozás, mikor mi kell. Ezek a bugyuta példák is az iskolában biztos erre akarják felkészíteni a vizsgázót, bármit hozhat az élet.

   
ddbwo - Tag | 1625 hsz       Online status #171589   2011.12.29 22:10 GMT+1 óra  
Azért kivi lennék hogy má honnan kéne kirángatnia egy programozónak
Az áruforgalmi tevékenység tervezése, irányítása, elemzése
és az
áruforgalmi ismeretek
modulokat, hogy ténylegesen hasznos programot tudjon összedobni így seperc alatt.
A Half-Life 2: Deathmatch promóció megszűnt! [B¤°
Kezdetben volék az üresség. Ám akkor a Struktúrfüggöny megteremté az Urat.
DrunkenDragon* Blackwolf
   
krees - Törzstag | 732 hsz       Online status #171549   2011.12.29 11:12 GMT+1 óra  
Aham, kezdem kapizsgálni a dolgokat, egyébként tényleg adatbázis szerű, ráadásul én kaptam azt a két tételt, ami nincs kidolgozva, az összes többi megvan már, a tavalyi évfolyamról,csak ezek nem...

Azért köszi, megpróbálok összetákolni valamit ebből, de alapnak mindenképp jó lesz

Szerk.:

Matzi: Szerencsére csak elméletben kell, de nem vagyok egy nagy marketinges, a vásárlás meg amúgy is távol áll tőlem, ez az, ami jobban zargatott De most már tisztul, köszönöm Neked is
   
Matzi - Szerkesztő | 2520 hsz       Online status #171548   2011.12.29 11:11 GMT+1 óra  
A konkrét feladathoz nem sokat segít, mert mindig is utáltam az ilyen idióta tervezési feladatokat, de azért leírom a gondolataimat.

Az biztos, hogy termék osztály kell, de jobban specifikálni nincs nagyon értelme. Főleg nem konkrét termékekre. Szóval olyasmi lenne, hogy van termék, van készlet (többféle, mert ugye raktár, központi raktár, meg többi bolt, meg ilyesmik), esetleg megrendelések, hogy nyomon lehessen követni, hogy ugyan kevés a répa, de holnapra már lesz. Lehet esetleg fogyási leltárt is csinálni, így statisztikát készíteni a dolgok fogyásából, ha elmész a döntéstámogató rendszerek felé, akkor előre lehet jegyezni, hogy mit érdemes még rendelni.
Persze rengeteg döntést meg kell hozni, mondjuk nem mindegy, hogy mihez rendeled az árat, mert ha a termékhez, akkor ha változik, akkor visszamenőleg elromlanak az adataid, de ha meg a vásárláshoz, akkor macera van vele. Érdemes például a terméktípusban az aktuális árat nyilvántartani, de a konkrét cuccban meg eltárolni a beszerzési, és eladási árat, amiből még az is kijön, hogy mennyi volt a nyereség.

Szóval én olyan osztályokat csinálnék első körben, hogy:
- TermékTípus (név, kategória, egyéb jellemzők, aktuális ár, stb...)
- Kosár, jobb szó nincs rá (terméktípus, darabszám, beszerzési ár, eladási ár)
- Leltár (sok kosárból áll, nyilván bejövő és kimenő kosarak külön, napi bontásban kezelődnek)
- Készlet (név, hely, az aktuális kosarak listája)
- Rendelés (státusz, kosarak listája és várható érkezési idő

Aztán jöhet a sok számolgatás, meg historikus és előrejelző számítások, kimutatás, hogy mi fogy jól, és mi kevésbé, mit kell rendelni. Lehet szélesíteni vagy szűkíteni a palettát. A termék kategóriák (zöldség, hús, konzerv, stb...) szerinti bontásokat is lehet végezni. Meg persze kellenek az alap manipulációs folyamatok, hogy vásároltak, vagy megrendeltél valami, megérkezett a megrendelés, stb...

Ha kicsit is produktív akarsz lenni, akkor aláteszel egy letesztelt perzisztencia kezelőt, és akkor az adatbázissal nem kell törődni.
If your game idea starts with the story it’s not a game idea.
Stories in games are optional.
   
DMG - Szerkesztő | 3172 hsz       Online status #171545   2011.12.29 10:52 GMT+1 óra  
Ez így amrhaság, ez inkább Adatbázis kezelés mint sem OOP.

Egy posztban kicsit nehézkes lenne amúgy leírni, már eleve a követelmény feltárást is.

De ha már OOP akkor valami hasonlót tudnék elképzelni.

Van egy Termék ősosztályod, amiből lehet származtatni az egyes alkategóriákat, mint zöldség, felvágott egyebek, aztán ebből is lehet származtatni konkrét termékeket konkrét árakkal.

Így hírtelen ennyi, de a konkrét működés a követelmény feltárás részeként alakul ki, akkor menne oda a fejlesztő a boltoshoz, hogy "na mi kéne", szóval csinálj követelmény feltárást, mintha te lennél a boltos.



Szóval ez egy fasz feladat, mert nem OOP-hez való, hanem SQL-hez.
-----------------------------------------
Dont Listen to the Naysayers
   
krees - Törzstag | 732 hsz       Online status #171536   2011.12.29 09:39 GMT+1 óra  
Na jó, nem akartam, de feldobom a kérdést. Vizsga lesz, a feladat nem olyan hű,de rohadt nehéz, viszont nagyon keveset foglalkoztam OOP-vel, a boltok meg nagyon távol állnak tőlem.
A feladat:

Idézet

1. Egy feltörekvő élelmiszerbolt korszerűsíti az eladás folyamatát. Az a feladata, hogy objektumorientált módon tervezzen meg egy programot, ami segíti a bolt tevékenységét! Milyen lépésekben tervezné meg a programot?

Információtartalom vázlata

– Információkezelés alapfogalmai
– Objektumok meghatározása
– Együttműködési diagram
– Osztálydiagram
– Követelmény-feltárás
– Analízis
– Tervezés
– Implementálás
– Tesztelés
– Számhalmazok
– Osztályok számossága



Arra lennék kíváncsi, hogy mégis milyen osztályokat lenne célszerű létrehozni, vagy mik kellenének ebbe?

(Spec azt sem igazán tudom, mivel lehetne korszerűsíteni a vásárlási folyamatot, olyasmire gondoltam, hogy pl adatbázis, amiben benn a termék neve, helye, meg ilyen-olyan adatai, ez mellé egy keresés még, és a többiről fogalmam sincs )
   
gaborlabor - Moderátor | 4449 hsz       Online status #170037   2011.12.05 16:44 GMT+1 óra  
Hát, szerintem ha biztosra akarsz menni, akkor eleve ne a kliensoldalon kiszámolt world pos-t küldje el, hanem csak az egérpozíciót, és persze azt is validálni kell szerveroldalon (csalások kiszűrése...).
Client-side prediction mindenképp kell, hogy reszponzív legyen a játék, ne várjon a szervertől érkező válaszra, hanem rögtön reagáljon. (Legalábbis mozgásnál így célszerű, lövedékek létrehozásánál már nem feltétlenül). Aztán persze a szerver által küldött adatokkal felülírni a helyben számoltakat... Idáig viszonylag könnyű megcsinálni, de etől meg ugye "ugrálhat" a karakter, ezt is ki lehet szűrni, csak kicsit advancedebb technikák kellenek hozzá (pl server reconciliation), amik meg már erőteljesen függenek a játékstílustól, játékmenettől.

   
Pretender - Törzstag | 2498 hsz       Online status #170014   2011.12.05 11:00 GMT+1 óra  
igen, UDP, bocsi
Igen, a heartbeat az megy... Azt hittem szoktak disconnectet küldözgetni.
Vagy esetleg annyi, hogy a kliens az küld disconnect üzenetet, és ha a szerver megkapja, akkor tudni fogja, hogy ha x időn belül nem kap választ, akkor nem timeoutolt, hanem disconnectelt. De akkor jó lesz így, köszi.

Esetleg valami ötlet, hogy ilyen diablo 2-s irányítású játéknál hogy érdemes küldeni az üzenetet? Alapból arra gondoltam, hogy a kliens az az egér pozícióból és ugye a karakter pozíciójából kiszámolja magának azt, hogy hova kattintott (worldpos), és azt küldözgeti. Ekkor vagy az kellene, h addig nem indul el az új pozícióra, amíg a szerver le nem "okézta", vagy client-side-prediction, csak akkor meg "visszadobál".

   
gaborlabor - Moderátor | 4449 hsz       Online status #170012   2011.12.05 10:48 GMT+1 óra  
Gondolom az UPD elírás, UDP akart lenni.
Csináld kb pont úgy, mintha timeoutolna. Felesleges ide-oda üzengetni, hogy disconnectelni akar, oké, stb. Bizonyos időközönként a kliens küld heartbeat üzeneteket. Ha egy bizonyos ideig a szerver nem kap ilyet, akkor tudja, hogy az adott kliens disconnectelt. Hogy ez most miért történt, azt nem fogja tudni, de ha azt a bizonyos értéket néhány másodpercre állítod, akkor már eléggé valószínűtlen lesz hogy a hálózati kapcsolat késleltetése miatt esett ki... szóval direkt volt.

   
Pretender - Törzstag | 2498 hsz       Online status #170010   2011.12.05 10:43 GMT+1 óra  
UPD hálózat:
Van egy szerverem meg egy kliensem. A kliens disconnectelni akar, küld egy üzenetet a szervernek. Ha az megkapja, akkor küld egy válaszüzenetet, hogy disconnectelhet. Amire a szerver szintén vár választ, hogy megkapta-e ezt az üzenetet Viszont ha a kliens megkapja a szervertől a "szabad disconnectelned" üzenetet és lecsatlakozik, akkor az az 1 kiküldött "oké, megkaptam" nem feltétlen lesz elég (talán pont az veszik el)
Ha nem kapja meg, akkor nyilván timeoutol,de a "szabályos" disconnectet hogy szokták megcsinálni?

   
Marclee - Tag | 285 hsz       Online status #168452   2011.11.12 15:32 GMT+1 óra  
Ha a struktúra jelentése egy szabályok szerint rögzített adathalmaz amiben könnyen megkülönböztethetjük az adatokat akkor a struktúrált azt jelenti ,hogy egy ilyen adathalmaznak a tagja? ( elkezdtem programozás elméletet olvasgatni ,hogy könnyebben mennyen a programozás és rájöttem ,hogy elég nagy zavarok vannak a fejemben xd )
Humankind cannot gain anything without first giving something in return. To obtain, something of equal value must be lost.
Alphonse Elric

http://geeksworld.hu/
   
Kuz - Törzstag | 4455 hsz       Online status #168440   2011.11.12 07:51 GMT+1 óra  
4Bit, te most pontosan mit is akarsz elérni? Lehet inkább így kéne elindulnod, hátha tudunk segíteni, mert az, hogy kapkodsz itt össze-vissza a nyelvek/fejlesztőeszközök közt, az nem túl értelmes dolog. A C-ről is le fogsz mondani, amikor kiderül, hogy marha sok dolgot kell benne megcsinálnod, hogy egyáltalán egy képet ki tudj rajzolni?
A memóriám már nem a régi. És ráadásul még a memóriám sem a régi...
Az élet attól szép, hogy bármi megtörténhet. És attól szar, hogy meg is történik...
Ha az egyik szinkronúszó megfullad, mit csinál a többi???

   
4Bit - Tag | 548 hsz       Online status #168391   2011.11.11 13:53 GMT+1 óra  
Na jó, akkor Python dobva lesz innentől kezdve, és jöhet a C eltanulmányozása, hogy mire félévkor elindul a C prog. szakkör, addigra ne legyek hülye belőle..
Úgy álljunk meg az életben, akár a sziklaszírt a tengerben; ne engedjük, hogy a szüntelen hullámverés megingasson bennünket.
   
Pretender - Törzstag | 2498 hsz       Online status #168372   2011.11.10 20:08 GMT+1 óra  
Várható volt, hogy egy scriptnyelv nem lesz (a python az az, ugye? ). És hát igen, remélem megvan a tanulságod: ne hidd azt, hogy okosabb vagy a hülye pascalosoknál, mert ezek szerint csúnyán rádvertek. (nem úgy értem )

   
HomeGnome - Szerkesztő | 2919 hsz       Online status #168371   2011.11.10 19:54 GMT+1 óra  
@4Bit: Akkor a pszeudokód volt a nyerő, a folyamatábrával meg melléfogtam, sorry.. :\ Kár, hogy a konkrét feladatsort nem kérted el. Ja, és ki is nevette ki a pascal-osokat?..

Klikk, a JF.hu bulvárlap.
Klikk #6 WIP: 30% (Kuz, sade, ramoryan...)
   
4Bit - Tag | 548 hsz       Online status #168370   2011.11.10 19:40 GMT+1 óra  
Megvolt a programozói verseny, és én szerintem ennyi erővel végig is ülhettem volna azt a 3 órát...

Először. Tanuló neve, Iskola neve, stb... aztán jöttek a keményebb dolgok.
Választható programozási nyelvek:

- C++
- C#
- Pascal
- Delphi
- Java
- Visual Basic

Első kérdésem: (WTF?! HOL-A-PYTHON?) Na jólvan, akkor egy X esik a javára...

Most jön még a JAVA.. (és itt most nem poénkodni akarok, mert kurva szar kedvem van ezután a verseny után..

1. Feladat..

Időjárás... Miva'? Jólvan, egyszerű volt mint a pofon a kód, mivel pszeudo-kódok voltak csak, (ezt még meghálálom, hogy időben tudtam informálódni tőletek ) de aki magát a feladatot írta, szerintem örülhetett hogy nem verték ki onnan, ahol ezt a feladatlapot írta, mert tele volt helyesírási hibákkal, és egy kukkot sem értettem, hogy most mi a francot erőszakoljak azzal a példakóddal, mert a feladatnak legalább 5 jelentése volt, ha nem több...

2. Feladat..

Na, ez mégjobb volt, mert a kód is el lett kurva, és logikája nem volt az egésznek, sőt! Én kifejezetten éreztem, hogy enyhén bugos volt...

3. Feladat..

Kicsit jobban érthető, és áttekinthetőbb szöveg kerül a kezembe.. az illetőnek biztos ebédszünete volt, és helyette bepötyögte valaki más.. jajdekár.

4.Feladat..

Utolsó, egyben egyik legszemetebb feladat volt kérem szépen, függvény létrehozástól kezdve (ami még megy) egészen a funkciónális programozásig (?) mindennel telibe volt verve..

Maximális elérhető pontszám: 100 pont

Én őszintén szólva már 10-nek is örülni fogok..
Úgy álljunk meg az életben, akár a sziklaszírt a tengerben; ne engedjük, hogy a szüntelen hullámverés megingasson bennünket.
   
Sharp - Tag | 130 hsz       Online status #168342   2011.11.10 13:57 GMT+1 óra  
Köszönöm, meglett a megoldás!

Lássuk csak: A plane hosszát a Field Of View határozza meg. Az én esetemben 0.66 körüli volt a plane hossza. Tehát a valódi vetítési sík [-0.66; 0,66] volt. Amikor az r vektort rávetítettem a vetítési síkra, akkor a plane egységvektorát használtam. Ez adott egy számot [-1; 1] intervallumban, amit vissza kell transzformálni a valódi vetítési síkba, azaz [-0.66; 0.66]-ba.
Nagyon szépen működik, köszönöm szépen az észrevételeket.

   
Matzi - Szerkesztő | 2520 hsz       Online status #168330   2011.11.10 13:12 GMT+1 óra  
Sharp:
Egy tipp, de szerintem a w kiszámítása előtt normalizáld az r-t.
If your game idea starts with the story it’s not a game idea.
Stories in games are optional.
   
Pretender - Törzstag | 2498 hsz       Online status #168327   2011.11.10 12:46 GMT+1 óra  
Ha van a kamerádnak viewproj mátrixa akkor esetleg Vector3::Unproject

   
Sharp - Tag | 130 hsz       Online status #168326   2011.11.10 12:37 GMT+1 óra  
Itt van 3 kép az esetről:

Az első képen a sprite kitakarja a 2 fal alkotta sarkot. elméletileg, bármerre nézek, sosem szabadna látnom azt a sarkot. De ha elforgatom a kamerát, akkor a sprite is vele fordul kicsit, és előtűnik a sarok. Ez látszik a 2. és 3. képen.






   
dvorgaz - Törzstag | 575 hsz       Online status #168313   2011.11.10 08:17 GMT+1 óra  
Idézet
Sharp :
Ha ezt skalárisan megszorzom a dir-rel, ami egységvektor, akkor megkapom a z-t, tehát R pont kamera síkjára merőleges távolságát.


Ez nem csak akkor igaz, ha a kamera síkja átmegy az origón? Szerintem bele kéne kalkulálni a sík origótól való távolságát is.

Szerk.: ja nem, kevertem az R-t az R-rel.
   
Sharp - Tag | 130 hsz       Online status #168312   2011.11.10 06:29 GMT+1 óra  
Szervusztok!

A következő problémában lenne szükségem segítségre.

Adott egy pseudo 3D világ, Wolf3D stílusú raycastinggal. Rá szeretnék vetíteni a kamera síkjára egy pontot a 3D-s világból.

Ez a kép egy 3D-s világban az X-Z tengelyt reprezentálná, az én pseudo3D-ben ez az X-Y, de ez lényegtelen, tehát egy kép "felülnézetből".

C a kamera koordinátája.
dir a kemra irányvektora, ami egy egységvektor.
plane a vetítési sík vektora. Ez a vektor mindig merőleges az irányvektorra. Maga a vetítési sík [-1;1] intervallumba van leképezve. Tehát a kamera legbaloldalibb pontja dir - plane, a kamera közepe a dir, a kamera legjobboldalibb pontja pedig dir+plane.
R egy pont a világban, amit le szeretnék képezni a kamera síkjára.



(1)
R: A kamerából a pontba mutató vektor = R - C
Ha ezt skalárisan megszorzom a dir-rel, ami egységvektor, akkor megkapom a z-t, tehát R pont kamera síkjára merőleges távolságát.

(2)
Hasonló háromszögek: |r| / |R| = |dir| / z. Mivel |dir| == 1, ezért r=R/z

(3)
Ezt az r vektort már csak rá kell vetítsem a kamera síkjára, és megkapom a kamera síkja beli pozícióját, ez lesz w = plane egységvektora*r

Ez a w egy [-1;1]-beli érték, ha rajta van a képernyőn. Ezt már csak vissza kell alakítanom a képernyő felbontásához mérten és megkapom a képernyő X koordinátáját( (w+1) * felbontás/2 )

A kérdésem, lát-e ebben valaki valamilyen hibát?
Nagyjából szépen működik, megjelenik a 3D-s pont, viszont a kamera forgatásakor enyhén együtt mozog a forgással a pont, nem marad egy helyben. Ha maga a leírás nem lenne elég, rakok fel képeket majd magáról az esetről.

Előre is köszönöm.

   
4Bit - Tag | 548 hsz       Online status #168248   2011.11.08 16:01 GMT+1 óra  
Hát.. úgy látszik, konkrét kódot kell leírni egy lapra.. :[
Úgy álljunk meg az életben, akár a sziklaszírt a tengerben; ne engedjük, hogy a szüntelen hullámverés megingasson bennünket.
   
4Bit - Tag | 548 hsz       Online status #167994   2011.11.05 02:24 GMT+1 óra  
@HG: Rendben, utánanézek ezeknek a dolgoknak, és köszönöm.!

Mellék.: A 9. évfolyamból senki nem indult, 10-11-12-es osztállyal nézek most szembe..
Úgy álljunk meg az életben, akár a sziklaszírt a tengerben; ne engedjük, hogy a szüntelen hullámverés megingasson bennünket.
   
Wolfee - Törzstag | 1336 hsz       Online status #167980   2011.11.04 20:17 GMT+1 óra  
Kuz: nem csesztetésből, de nálad összemosódik a programozás és a kódolás fogalma. a kódolás csak egy részhalmaza a programozásnak, mint ahogy a tervezés is.
FZoli jóváhagyásával XD

   
Kuz - Törzstag | 4455 hsz       Online status #167961   2011.11.04 14:44 GMT+1 óra  
Szerintem meg ez tervezés, nem kódolás. Illetve nálad ez a lenti példával valahol a kettő közt volt. Gondolom a versenyen sem azt fogják kérni, hogy add be a piszkozatot, hanem egy végleges megoldást kérnek. De most már én is kíváncsi vagyok.
A memóriám már nem a régi. És ráadásul még a memóriám sem a régi...
Az élet attól szép, hogy bármi megtörténhet. És attól szar, hogy meg is történik...
Ha az egyik szinkronúszó megfullad, mit csinál a többi???

   
SX - Törzstag | 361 hsz       Online status #167957   2011.11.04 14:27 GMT+1 óra  
A papíron programozásnak sem kell feltétlenül papíron történnie. Tegnap este pl. a programkódba csináltam egy nagy komment-cetlit, és oda szedtem össze, hogy milyen esetekben futhat rá az adott részre a kód. Mivel nem volt egyértelműsítve minden, ezért szükség volt egy kis szelektálásra, határok meghúzására, hogy mit engedek és mit nem. Első körben leírtam folyómondatokkal, felsorolásszerűen négy lehetőséget, amikor ide juthat a kód. Aztán elolvastam, lett belőle három, mert össze tudtam vonni kettőt.
Aztán lekódoltam, ellenőriztem, log-oltattam minden hibaesetet, és megnéztem még egyszer a szöveget és kódot összevetve, majd plusz 2 sor beiktatásával leszűkítettem 2 esetre az egészet.
Mindezt azelőtt, hogy a kódot akár egyszer is futtattam volna. Az eredménye pedig az, hogy jelenleg egy hibát talált a tesztelő, az is egy apróság, ahol a random-szám generálást eggyel tovább engedtem, mint illett volna. A logger viszont elkapta, és be is jött a figyelmeztetés játék közben, hogy a tesztelő tudja, hogy szólni kell nekem, mert gáz van

Röviden: ha nem jártam volna azt a két-három tervezési kört az első futás előtt, csak elfogadom az első, négy lehetőséget tartalmazó 'algoritmust', akkor egy sokkal szarabb minőségű kódom van, sok redundanciával. Ráadásul mivel már működik valamilyen módon, nem akarnám újratervezni, mert hát egy csomó munka benne van. Jön a foltozás... (a többit kitalálja mindenki, aki programozott már nagyobb lélegzetű project-et)

Na, ezért programozom a bonyolultabb részeket 'papíron'. Persze vannak nálam okosabbak, akiknek erre nincs szükségük

   
HomeGnome - Szerkesztő | 2919 hsz       Online status #167956   2011.11.04 14:07 GMT+1 óra  
Hát úgy látszik az iskolák ilyen maradiak, hogy még ragaszkodnak a papírhoz.

Klikk, a JF.hu bulvárlap.
Klikk #6 WIP: 30% (Kuz, sade, ramoryan...)
   
Kuz - Törzstag | 4455 hsz       Online status #167953   2011.11.04 13:50 GMT+1 óra  
Azt hiszem az alapvető félreértés abból jön, hogy én papíron való programozás alatt tényleg azt értem, hogy leülsz, elkezdesz - akár pszeudoban - kódolni valamit, radírozol, javítasz, etc. Holott pl a mostani feladatomnál egy excelben gyűjtöm össze, hogy milyen classok kellenek, milyen sql táblák, mi-mit tartalmaz, etc, és kódolni egy sornyit nem kódoltam még. De ezt speciel tervezésnek hívom, amit nem feltétlenül papíron csinálsz (sőt, a sebesség miatt jó, ha nem papíron csinálod).
Kicsiben - mint egy verseny is - nyílván nem egy full adatelérési réteget fognak kérni, inkább valami trükkös problémának a 8-10 sorban való megoldását. Arra persze jó a papír, bár erre is azt mondom, hogy ha már programozási verseny, akkor legyen egy választható nyelv lista, és mindhez legyen fejlesztői környezet. Egy futball bírót sem csak az elméleti tudása alapján értékelnek, hanem hogy meccsen ténylegesen hogy vezeti a meccset, és olvasatomban ez fontosabb szempont, minthogy fel tudja sorolni, hogy egy adott helyzetben milyen döntési lépések vannak.
A memóriám már nem a régi. És ráadásul még a memóriám sem a régi...
Az élet attól szép, hogy bármi megtörténhet. És attól szar, hogy meg is történik...
Ha az egyik szinkronúszó megfullad, mit csinál a többi???

   
Frissebbek | Korábbi postok
[1] [2] [3] [4] [5] > 6 < [7] [8] [9] [10] [15] [16]