Kezdőoldal » Számítástechnika » Programozás » Hogyan kezdjek bele ebbe a...

Hogyan kezdjek bele ebbe a programozási feladatba?

Figyelt kérdés

Szóval van egy elég fontos feladat (egyetemhez kell), de sajna nem tudok mit kezdeni vele. Nem vagyok béna programozó, egyáltalán nem. De valahogy mégis ehhez a feladathoz nem tudok hozzákezdeni. Esetleg valaki tud tanácsot adni, vagy hogy, hogy kezdjek bele? A programot C# nyelven kell Objektum Orientáltba (OOP-ben) kell megírni.

A feladat: [link]



2018. nov. 25. 23:48
1 2
 11/19 anonim ***** válasza:

[link]


Igaz Javaban, és picit más feladat, de az OOP részében lehet segít

2018. nov. 26. 12:51
Hasznos számodra ez a válasz?
 12/19 anonim ***** válasza:
gondolatebresztonek: [link]
2018. nov. 26. 13:51
Hasznos számodra ez a válasz?
 13/19 A kérdező kommentje:

Na szóval helyzetjelentés...

Mint kiderült egész jól haladok és tényleg nem olyan nehéz. Az értelmezéssel voltak a gondok. A pathfinding, a matrix mérete és a falak kezdőkoordinátái mennek. De ahol nagyon elakadtam és mindjárt megőrülök az a dx, dy-onos rész, ahol ki kéne rajzolni a teljes falakat. Az valahogy sehogyse megy. Esetleg valaki tud segíteni?

2018. nov. 26. 23:05
 14/19 anonim ***** válasza:

Már megint bénázol..


A falak kirajzolása:


FALAK.BE nevű állomány első sora:

10 5 3

Azt jelenti, hogy 10 x 10-es a négyzet, 5 fal van benne és három kiindulópont.

A második (és a többi 4) sor:

2 2 1 4

Azt jelenti, hogy bal alsó sorból számolva a második függő, és szintén második vizszintes cellán kezdődik a fal, egy tégla (vagy cella) vastag és felfelé 4 cella magas.

A következő a 4. vizszintes és a 2. függőleges cellánál indul, 5 cella hosszú (ez már vizszintesen, mivel az van elöl) és 1 cella vastag.

A harmadik a 3. és 5. cellánál indul, 6 cella hosszú (vizszintesen) és 1 cella vastag.

A negyedik fal 5. és 3. cellától indul, 1 cella vastag és két cella magas (függőlegesen).

Az ötödiket nyilván tudod.


A kezdőpontok meg gondolom már egyértelműek.

4,4

6,3

2,5


Alapban nullára inicializálsz egy 10 x 10 -es 2D tömböt, majd a falak pozicióját hozzáadod a tömb aktuális értékeihez. Ezután a kiindulópontok pozicióját adod hozzá a tömb aktuális pozíciójához.

Végig scanneled a tömböt és lesz egy pont, ahol a tömbelem értéke 3 lesz (nulla a terület, plusz 2 a fal plusz egy a kiinduló pozició). Ez azt jelenti, hogy nem kell vizsgálnod semmit, hiszen a pozíció éppen a falban van, ami lehetetlenné teszi a terület széléhez jutást, tehát a FALAK.KI kimeneti állományba a "NEM" szó kerül.

Léphetsz is a következő kiinduló pont vizsgálatára.


Én a helyedben legalább két algoritmust tennék be, választhatóan. Az egyik lenne a korábban említett körbe vizsgálat, a másik meg kihasználná, hogy a falak a négyzet széleivel párhuzamosak, azaz, módszeresen csak le, jobbra, balra vagy fel mozognék, keresve a köv. szabad pontot.


Sőt, ha jót akarsz magadnak, akkor még költségelemzést is vizsgálsz és írsz ki. Ez gondolom tudod mi, nem egyéb, mint a megtett lépések száma.


Ez a feladat egyébként azért is nagyon jó, mert ebben elválik a sz@r a májtól, tehát a tanár ennek alapján tudni fogja a jövőre nézve, hogy ki kivel van (ki mennyit ér).


Azt gondolom nem kell hangsúlyoznom, hogy úgy kell megírnod, hogy (szinte) bármilyen tartalmú bemeneti állománnyal működjön, tehát ha a négyzet 25 x 30-as, vagy 72 x 100-as akkor is, ha a falak és a kiinduló pontok száma több vagy kevesebb, akkor is.


A fal egyébként a speckóban limitálva van, 1000 x 1000-ben, ugynígy a falak száma is <= 1000, a kiinduló pontok maximuma viszont csak 5 lehet.


A szivatásról:


Addig örülj, amíg így "szivatnak" mert ez mind a javadat szolgálja. Ettől válsz nokedliből szakemberré, ettől és hasonlóktól fog megváltozni a látásmódod, javulni az algoritmizáló képességed, ezek és ehhez hasonlók kombinációja fogja adni a majdan írandó programjaid alapját.


Ha jól megnézed, rájöhetsz, hogy egy sima, nagyon basic PACMAN játék sem implementálható az ezen feladat által megkivánt ismeretek nélkül és akkor még hol vagyuk a GTA 5-től..


Ezért furulyáznak - és ezért nem érnek sokat - az önképző "programozók", mert őket nem "szivatta" ilyesmikkel soha senki.

2018. nov. 27. 03:23
Hasznos számodra ez a válasz?
 15/19 A kérdező kommentje:
Amiket leírtál hibátlanul értem és megvannak, a konkrét bajom hogy sehogy sem akarja elfogadni a program amikor ki írni a falakat. De mind1 akkor ,,bénázom" tovább.
2018. nov. 27. 03:36
 16/19 anonim ***** válasza:

Ez talán azért lehet, mert nem veszed figyelembe, hogy a négyzet bal alsó sarkából kell kiindulni.


Amúgy hülyeséget írtam, a négyszög, mint terület, soha nem lehet eltérő oldalú, hiszen az egyik oldal van csak mehatározva a bemeneti file-ban is. Tehát, a terület mindig négyzetes.

2018. nov. 27. 04:04
Hasznos számodra ez a válasz?
 17/19 A kérdező kommentje:
igen tudom, emiatt "trükkös" a feladat pont ezzel van gondom, a fal kiindulópontjait sikerült kiírni, de azt hogy "hosszabítom" meg a falat azzal van a gond, a többi patentül megy :)
2018. nov. 27. 04:07
 18/19 anonim ***** válasza:

Const


FIELD = 0;

WALL = 1;

START_POS = 2;


array[x,y] = FIELD;

array[x,y] = array[x,y] + WALL;

array[x,y] = array[x,y] + START_POS;

2018. nov. 27. 04:11
Hasznos számodra ez a válasz?
 19/19 A kérdező kommentje:
na majd meglátjuk holnap mára már kifulladtam :D köszi a segítéget
2018. nov. 27. 04:15
1 2

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!