Ako sa naučiť algoritmycky rozmíšlať – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Ako sa naučiť algoritmycky rozmíšlať – Java – Fórum – Programujte.comAko sa naučiť algoritmycky rozmíšlať – Java – Fórum – Programujte.com

 

Patrik
~ Anonymní uživatel
133 příspěvků
26. 11. 2012   #1
-
0
-

Dobrý deň chcem sa spýtať ako sa da naučiť algoritmický rozmýšľať programujeme v Jave s písonky som mal pomerne slušný výsledok (=teória) čiže sa viem naučiť teóriu ale naprogramovať neviem asi nič snáď len kalkulačku jednoduchú (ale fakt len jednoduchú pre 2 čísla akonáhle by som mal spočítať,odčítať,vynásobiť alebo vydeliť  n čísel už som z toho v prdeli) ale akonáhle je tu zložitejšia úloha neviem ani ako ju mam začať riešiť. Napríklad sme robili hru sokoban kde sme mali pole hviezdičiek ktoré sme si zadali pri vytvorení inštancie napríklad 5x4 v poli boli hviezdičky potom sme si mali zvoliť pozíciu panáčika bedničky a exitu a dotlačiť s panáčikom bedničku do exitu pričom mal byť program aj blbovzdorný (tj. napr bednička sa nedala vytlačiť mimo poľa alebo ak je bednička v neakom rohu už sa ňou neda pohnúť a takto robili sme to cez for pričom sme tam kládli podmienky. Ale ja proste neviem na to prísť ako mam podobne úlohy riešiť. Mohol by som sa to naučiť naspamäť ale to my na skuúške nepomôže kedže neviem aký program bude potrebne vytvoriť. Preto prosím o radu ako sa mam naučiť programovať. Rada typu, že si mam zobrať hotový program a pochopiť mu mi nepomôže už som to skúšal jednoducho na to pozerám (samozrejme rozmýšľam nad tým) ale nechápem tomu čo to tie podmienky tam robia. Proste neviem rozmyšľať týmto požadovaným spôsobom napriek môjmu snaženiu. Inak samozrejme aj mám vlastnú knihu OOP bez predchodzích znalostí a ako vravím teórii chápem ale naprogramovať fakt neviem nič. Sám tomu nechápem ale je to tak jeden učiteľ mi povedal, že proste na to nemám predpoklady ale nemôžem s ním súhlasiť všetko čo sa niekto chce naučiť sa musí vedieť naučiť a hotovo či už mu to trvá dlhšie alebo kratšie. Tak poprosím o vaše rady ako na to. Vďaka.

Nahlásit jako SPAM
IP: 158.193.87.–
KIIV
~ Moderátor
+43
God of flame
26. 11. 2012   #2
-
0
-

Kdyz si tu narazil na sokoban - co te u toho napadlo? K cemu ses az dostal v tom premejsleni jak na to?

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Patrik
~ Anonymní uživatel
133 příspěvků
26. 11. 2012   #3
-
0
-

Napadlo ma, že panačik sa musí vedieť hýbať do 4 strán (ale ako to zabezpečiť nemám šajnu) ak preskočí o políčko vpred musí sa zmazať s toho políčka na ktorom bol predtým a vpísať na poličko na ktoré ho chcme dostať. Ale ak narazí na bedničku seba musí premiestniť na miesto kde bola bednička a bednička musí skončiť o jedno políčko pred panáčikom samozrejme sa musí vymazať pôvodna pozícia panačika aj bedničky. Samozrejme je tu otázka blbu vzodrnosti čiže ak je bednička úplne v roku neda sa nou pohnuť tiež sa neda bedničku posunuť mimo pole alke to ani panačika. A keď sa bednička dostane do exitu (ktorý ma je ako pevný nemenny bod) hra sa skončí.To ma napadlo ale ako to spraviť nemám šajnu no viem, ťe cez fory a možno podmienky (a ešte nám nakazali použiť arraylist ktorý sme dovtedy nepoznali čiže sme si to museli najsť na oficialnej stranke javy) ale ako to skombinovať aby to šlo podľa slovneho popisu nemám ani šajnu. 

Teraz idem na cvika z informy ale kludne píšte ja odpíšem k večeru dik, že mi venujete pozornosť.

Nahlásit jako SPAM
IP: 158.193.87.–
KIIV
~ Moderátor
+43
God of flame
26. 11. 2012   #4
-
0
-

no ted by se momentalne hodilo asi nejprve navrhnout si herni objekty...

1. zed - fixni pozice

2. hraci plocha - fixni pozice - ale mohla by obsahovat kam se z ni da pohybovat, jakej objekt na ni je

3. exit (pro umisteni kamenu)

a pohyblive objekty - ty ktere budou v hraci plose nebo exitu..

4. panacek

5. kamen

pohyblive objekty budou muset testovat smer kam se pohybuji jestli mohou .. hlavne kamen.. panacek testuje spise zdi

vse bude obsahovat neco jako vykresleni na svoji pozici a tak.. muze se vykreslovat jen co se pohnulo-- nejake priznaky a tak...

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Patrik
~ Anonymní uživatel
133 příspěvků
26. 11. 2012   #5
-
0
-

jj jasne chapem tomu ale ide prave o ine mi sme si vytvorili 3 triedy Plan, Hra, Aplikacia.

S Hry som vybral metodu Hore tu je : 

public void hore()
    {
        if(x>0) // aspon v 1. riadku
        {
            if(plan.dajPlan()[x-1][y] == " * ")   // miesto nado mnou je volne
            {
                x--;
               
                plan.dajPlan()[x][y] = " P ";
                plan.dajPlan()[x+1][y] = " * ";
            }
            else
            if(x>1) // ci sa mozem pozriet 2 riadky nado mnou
            if(plan.dajPlan()[x-1][y] == " B ")   // miesto nado mnou je balik
            {
                if(plan.dajPlan()[x-2][y] == " * ")   // ci miesto 2 riadky nado mnou je volne
                {
                    plan.dajPlan()[x-2][y] = " B ";
                    x--;
               
                    plan.dajPlan()[x][y] = " P ";
                    plan.dajPlan()[x+1][y] = " * ";
                }
                else
                if(plan.dajPlan()[x-2][y] == " E ")   // ci miesto 2 riadky nado mnou je exit
                {
                    plan.dajPlan()[x-2][y] = " O ";
                    x--;
               
                    plan.dajPlan()[x][y] = " P ";
                    plan.dajPlan()[x+1][y] = " * ";
                }
            }
        }
    }

Ale proste nechapem ako to funguje proste stale na to pozeram a nemam sajnu ako je to prepojene. Pracujeme v programe BlueJ. A tiez mam problem pochopit ako su triedy Aplikacia Hra a  hra su prepojene ako spolupracuju nedava mi to zmysel.  Tu je subor ako to je ale nechapem jednotlive prepojenie medzi triedami a preco su prepojene prave takto a hlavne tie podmienk hore, dole, doprava, dolava to by som nikdy sam nenapisal nehladne na to kolko by som pri tom sedel. http://www.ulozisko.sk/569412/brandobur.zip

Nahlásit jako SPAM
IP: 158.193.87.–
KIIV
~ Moderátor
+43
God of flame
26. 11. 2012   #6
-
0
-

no radky jdou odzhora dolu.. mas pozici na mape x a y (ve tride)... cisluje se od 0 pro prvni radek

musis byt aspon na druhem radku (tj index 1) aby ses mohl pohnout o jedna nahoru...

dal se kontroluje co je nad tebou .. bud je tam misto tak se pohnes.. pokud je tam balik tak se kontroluje dalsi misto nad... pokud je nad balikem exit tak se posune balik i figurka, pokud je tam misto tak se posune balik a panak.. nic slozityho.. (jen je tam maskovani tech ifu)

Nahlásit jako SPAM
IP: 94.112.32.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Buco0
Newbie
28. 11. 2012   #7
-
0
-

#1 Patrik
Nenapisal si na aku skolu chodis, ci SS alebo VS, ale to je v podstate jedno , aj ked na VS by ste mali mat predmety zaoberajuce sa algoritmizaciou. Na programovanie potrebujes dobre analyticke myslenie. Vediet problem rozlozit na viacero jednoduhsich problemov, postupne ich vyriesit a prepojit aby spolu splnili ciel. Ako zacat? No od zaciatku, vybrat si programovaci jazyk, zacat pisat jednoduche programy (Hello World, nacitanie vstupu, faktorial - rekurzia, prehladavacie algoritmy.....) a naucit sa syntax. Pred riesenim problemu sa zamysli, ze co ocakavas aby program robil, ake vstupy bude mat, ake vystupy. Rozhodol si sa ist cestou OOP a vravis, ze teoriu vies - tak skusaj. Programovat sa nenaucis citanim knih a cudzich kodov ale tym, ze sam budes tvorit kod. Nevravim, ze citanie nepomaha, sam citam neustale nieco informaticke, ale bez toho kodenia to proste nejde. Ked zvladnes zakladnu syntax jazyka postupne si skusaj kniznice, uc sa o datovych strukturach, prehladavacich a triediacich algoritmoch, casovej zlozitosti...

Tiez sa programovat este len ucim a dost mi pomaha papier a ceruzka. Vcera som pisal program na riesenie hry ClickNSlide, ktory vyuzivai heuristiky. "Spotreboval" som pri tom dve A4, na jednej som mal same stvorce 3x3, na druhej pseudokod aby som sa v tom nestracal.

Nahlásit jako SPAM
IP: 195.178.73.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 45 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý