Zaverečná práca – Pascal – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Zaverečná práca – Pascal – Fórum – Programujte.comZaverečná práca – Pascal – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené.
Hano0
Duch
2. 4. 2012   #1
-
0
-

Zdravim

ako zaverecnu pracu z pascalu som si vybral znamu hru "space invaders" .. vsetko funguje tak ako ma az na jeden problem a tym je strielanie nepriatelov proti mne(hracovi).

Chcel by som aby proti mne vzdy boli vystrelene 3 strely z nahodne vybrat nepriatelskej lode, ked jedna strela ma netrafi tak nech sa zjavy dalsia, a tak dalej az do konca.

Da sa to spravit tak ze najprv si nahodne vyberem tri nepriatelske lode, cislo strely ktora prva minie moju lod ulozim do premennej H, a kontrolujem ak sa pocet striel znizil priradim novu lod odkial pojde strela?

Z1=pocet striel
a=x-ova suradnica strely
a1=y-ova suradnica strely
zivots[a]= zivot strely 1. alebo 2. alebo 3.
E=label.. end game

while Z1<3 do-- vzdy chcem aby isli proti mne 3 nepriatelske strely
begin
I:=random(8)+1; --nahodne mi vybere x-ovu suradnicu lode z ktorej pojde strela
I1:=random(5)+1;---nahodne mi vybere y-ovu suradnicu lode z ktorej pojde strela
strelax[a]:=pole[i];-- do strelax[a] ulozim x-ovu hodnotu lode(napr 350)
strelay[a1]:=pola[i1];--do strelax[a] ulozim y-ovu hodnotu lode(napr 280)
zivots[a]:=1;-- pridelim zivot strele
Z1:=Z1+1;
a:=a+1;
a1:=a1+1;
end;

a:=a-3;
a1:=a1-3;
for I:=1 to 3 do--3x lebo mam 3 strely
begin
setcolor(0);
line(strelax[a],strelay[a1],strelax[a],strelay[a1]+19);
strelay[a1]:=strelay[a1]+19;-- dlzka tej strely, ma 19
setcolor(15);
line(strelax[a],strelay[a1],strelax[a],strelay[a1]+19);
if strelay[a1]>810 then--ak prejde za hranicu tak ju vymazem a pridelim jej zivot 0 a zmazem ju
begin
setcolor(0); line(strelax[a],strelay[a1],strelax[a],strelay[a1]+19);
zivots[a]:=0;
Z1:=Z1-1;
end;
a:=a+1;
a1:=a1+1;
end;

dufam ze chapete... niekde je chyba s timi "ackami" podla mna, lebo funguje mi to tak ze vystreli tri nepriatelske strely ale ked prejde y-ova hodnota jednej zo striel nad 810 tak iba tu strelu ktora presla vymaze a ostatne nevymazu a zastanu, nikdy nedostanu hodnotu 810 .. ale niekdy vsetky tri prejdu normalne tak ako by to malo ist, nechapem tomu    som zvedavy vy nato :D :D :D ak nechapete napiste, skusim to inak vysvetlit 

Vdaka

Nahlásit jako SPAM
IP: 77.234.254.–
zlz
~ Anonymní uživatel
634 příspěvků
2. 4. 2012   #2
-
+1
-
Zajímavé

Jestli střela má vlastnosti X/Y/Zivot, které máš v samostatných polích, tak bych čekal, že vlastnosti jedné střely budou na stejné pozici - strelax[a], strelay[a], zivots[a], nechápu tam to a1.

A když "oživuješ" ty "mrtvé" střely, tak asi musíš projít všechny a najít a oživit ty skutečně mrtvé.

Nahlásit jako SPAM
IP: 213.211.51.–
Mircosoft+1
Věrný člen
3. 4. 2012   #3
-
+1
-
Zajímavé

Přijde mi, že ty indexy jsou úplně zmatené. Když točíš for s řídicí proměnnou i, proč jako index používáš a a ne to i? Proč ty áčka nuluješ odečtením trojky a ne přiřazením nuly? Kde se proměnné inicializují? Jak říká Zlz, a1 je zbytečná, ale zdá se mi, že se aktualizuje správně, takže by to (teoreticky) mohlo fungovat i s ní.

Nevím, v jakých cyklech máš ten svůj kód zabalený a co všechno tam ještě máš. V tomhle úryvku vidím zrušení střely, co přesáhla souřadnici 810, ale nic, co by život střely testovalo nebo ji znovu oživovalo. Kdyžtak sem hoď celý hlavní cyklus se vším všudy, ať se můžeme podívat.

Náhodnost chování je nejspíš způsobená použitím funkce Random. Jestli chceš opakovatelné výsledky, nastav si Randseed na nějakou pevnou hodnotu, tím dostaneš pokaždé stejnou posloupnost čísel. Nejlepší bude, když nám ukážeš víc - deklarace proměnných, inicializace před hlavním cyklem a tak. Třeba tam někde něco chybí nebo přetéká.

Mimochodem, co máš za překladač? Výška obrazovky přes 810 pixelů už je docela megarozlišení, v jednotce Graph jsem něco takového ještě neviděl. Ten styl komentářů je taky dost neobvyklý.

Nahlásit jako SPAM
IP: 212.118.224.–
Chceš-li lepší odpověď, polož lepší otázku.
Moje stránka.
Hano
~ Anonymní uživatel
8 příspěvků
3. 4. 2012   #4
-
0
-

Aha hej mate pravdu s tym a1, neviem preco ma to tak napadlo 

A:=a-3-- odcitaval som to preto lebo mi to najprv pracovalo tak ze som mal napr strely v poli 1 2 3 a potom ked presiahli 810 nove strely som mal v poli  2 3 4 dalsie 3 4 5 a stale sa mi to takto zvysovalo, potom som to prerobil a nevedomky som vam poslal to stare    Momentalne mi to funguje tak ze ide to krasne, len niektore strely sa zaseknu v polovice cesty a ostanu tak nakreslene, nezmazu sa.

Myslim ze toto je najdolezitejsia cast a princip programu. Medzitym je iba menu a ze vsetkym lodiam priradim zivot.

Deklaracia:

    A,B,c,D,f,y,x,i,w,y1,x1,x2,w1,I1,R,R1,B1,Y2,S,Z1,h: integer;
    GD,GM: smallint;
    K: char;
    pole: array[1..8] of integer;
    pola: array[1..5] of integer;
    zivot: array[1..10,1..10] of integer;
    strelax: array [1..200] of integer;
    strelay: array [1..200] of integer;
    zivots: array [1..200] of integer;
    label L;
    label L1;
    label L2;
    label L3;
    label M;
    label reset;
    label E;

______________

menu

______________

Y1:=790;  
F:=0;
Z1:=0;
w1:=100;
X1:=500;
w:=500;
h:=1;
a:=1;
a1:=1;
c:=1;
h1:=1;

__________

priradenie zivot lodiam
zivot[i1,i]=1

__________

while X<1200 do
                     begin
                          L:while not(keypressed) and (X<1200) do
                          begin
                          setcolor(15);
                          y:=W1;
                                for I1:=1 to 5 do {kreslim lode}
                                begin
                                x:=w;
                                     for I:=1 to 8 do
                                     begin
                                          if zivot[i1,i]=1 then
                                          begin
                                          setcolor(15);
                                          circle(X,Y,10);
                                          pole[i]:=x;
                                          pola[i1]:=y;
                                          X:=x+70;
                                          end;
                                          if zivot[i1,i]=0 then
                                          begin
                                          setcolor(0);
                                          circle(X,Y,10);
                                          X:=x+70;
                                          setcolor(15);
                                          end;
                                     end;
                                Y:=y+30;
                                end;
                                    if Z1<3 then
                                    begin
                                         if C=0 then
                                         begin
                                         a:=h;
                                         c:=1;
                                         end;
                                    I:=random(8)+1;
                                    I1:=random(5)+1;
                                                    if zivot[i1,i]= 1 then
                                                    begin
                                                    strelax[a]:=pole[i];
                                                    strelay[a]:=pola[i1];
                                                    zivots[a]:=1;
                                                    Z1:=Z1+1;
                                                    a:=a+1;
                                                    end;
                                    end;
                                         for a:=1 to 3 do
                                         begin
                                               setcolor(0);
                                               line(strelax[a],strelay[a],strelax[a],strelay[a]+19);
                                               strelay[a]:=strelay[a]+19;
                                               setcolor(15);
                                               line(strelax[a],strelay[a],strelax[a],strelay[a]+19);
                                                                      if strelay[a]>810 then
                                                                      begin
                                                                             if (strelax[a]>x1-13) and (strelax[a]<x1+13) then
                                                                             begin
                                                                             setcolor(15);
                                                                             outtextxy(560,460,'BOOOOOOOOOOOOOOOOOOOOM');
                                                                             goto E; {koniec hry}
                                                                             end;
                                                                      setcolor(0);
                                                                      line(strelax[a],strelay[a],strelax[a],strelay[a]+19);
                                                                      zivots[a]:=0;
                                                                                   if zivots[a]=0 then
                                                                                   begin
                                                                                   C:=0;
                                                                                   h:=a; {ulozim si do H cislo strely ktora presla nad 810}
                                                                                   end;
                                                                      Z1:=Z1-1;
                                                                      end;
                                         end;
                          Y:=W1;
                                for I1:=1 to 5 do {mazem lode}
                                begin
                                x:=w;
                                     for I:=1 to 8 do
                                     begin
                                     setcolor(0);
                                     circle(X,Y,10);
                                     X:=x+70;
                                     end;
                                Y:=y+30;
                                end;
                          setcolor(15);
                          w:=w+1;
                          end;
                          setcolor(15);

V tomto cykle je este case(sipka dolava,doprava a strelba) + while X>1050( v nom sa robi to iste len ze tie lode nejdu do prava ale vracaju sa naspät pricom su posunute o jeden riadok nizsie. +cele je to este v jednom velkom cykle repeat, aby to zase islo do prava, a potom sa to vracalo, a zase do prava a naspät, a zase do prava...

Ospravedlnujem sa ze to nieje este take priehladne, zatial je to iba vo fazy vyskum a rozvoj    , neskor to dam do procedur ak budem mat cas. Popripade mozem poslat uplne cely program, ulozit ho niekde na uloz.to, ak by to nestacilo.

PS: upozornujem ze mam zivot[i1,i]=zivot lodi  a zivots[i1,i]= zivot striel.

Nahlásit jako SPAM
IP: 77.234.254.–
Mircosoft+1
Věrný člen
4. 4. 2012   #5
-
+1
-
Zajímavé

Uf, to je hlavolam a ne program  .

Zaprvé, chce to pojmenovávat proměnné nějak srozumitelně. Sice vidím, co se se kterou dělá, ale netroufám si odhadnout, jestli to je zrovna to, co chceme.

Zadruhé, jestli Pole obsahuje xové souřadnice lodí, Pola yové a Zivot jejich životy (resp. existenci nebo neexistenci), tak je to špatně, protože každé z těch polí je jinak velké. Jestli chceš ukládat souřadnice pro každou loď zvlášť, potřebuješ pro všechno stejná dvojrozměrná pole. Existuje datový typ Record, kterým by to šlo krásně zpřehlednit:

type info = record {tyhle údaje jsou stejné pro lodě i střely}
            x,y:integer; {souřadnice}
            zije:boolean; {jestli existuje nebo ne, možné hodnoty true nebo false}
            end;
const pocet_lodi_x=10;
      pocet_lodi_y=10;
      pocet_strel=3;
var lode:array[0..pocet_lodi_y-1,0..pocet_lodi_x-1] of info;
    strely:array[1..pocet_strel] of info;

Konstanty jsou taky výborná věc - když tě později napadne změnit nějaké číslo, přepíšeš jednu konstantu a je to, nemusíš procházet celý kód a hledat všechny výskyty daného čísla.

Od nuly pole indexuju jenom proto, aby se s nimi později lépe pracovalo. Teoreticky by mohly být klidně i od jedničky.

Jestli to ale děláš jako u klasických Space Invaders, kde se všechny lodě pohybují v pevné formaci, stačí ti jenom poloha jedné z nich (třeba levé horní, ať se to neplete) a 2D pole životů. Všechno ostatní dopočítáš za běhu v jednom 2D cyklu, například:

setcolor(barva_lodi);
for i:=0 to pocet_lodi_y-1 do {cyklus pres radky}
 for j:=0 to pocet_lodi_x-1 do {cyklus pres sloupce}
  if lode[i,j].zije then circle(leva_horni_x+vodorovna_roztec*i,
                                leva_horni_y+svisla_roztec*j,polomer_lode);

Tím máš hotové vykreslení všech existujících lodí. Použil jsem proměnnou Lode z minulého odstavce, ale teď už by nebyla potřeba - stačily by jenom samotné životy. Proměnné leva_horni_x/y jsou souřadnice levé horní lodě, které jako jediné by se během hry měnily.

Potom ten pohyb. Je zbytečné psát ho pro každý směr odděleně, stačí si uvědomit, co a jak se má hýbat: jeden bod, nejdřív 1) doprava, pak 2) dolů, 3) doleva, 4) dolů a zase od 1 dokola. Takže by pro celý pohyb všech lodí stačilo tohle:

const vodorovna_rychlost= o kolik pixelu se maji lode posunout v jednom cyklu pri vodorovnem pohybu;
      svisla_rychlost= totez pro svisly pohyb;
      vodorovny_rozsah_kroku= kolik cyklu maji lode letet vodorovne
      svisly_krok= kolik cyklu maji klesat dolu
var smer:integer; {mozne hodnoty 1..4}
    pocet_kroku:integer; {na pocitani uletnute vzdalenosti}
...
smer:=1; {zacneme treba smerem doprava}
leva_horni_x:= nejaka vhodna pocatecni souradnice
leva_horni_y:= nejaka vhodna pocatecni souradnice
pocet_kroku:=0;
...
 repeat {hlavni cyklus}
 ...
 {pohyb lodi podle aktualniho smeru:}
 case smer of 1:inc(leva_horni_x,vodorovna_rychlost); {doprava}
              2,4:inc(leva_horni_y,svisla_rychlost); {dolu}
              3:dec(leva_horni_x,vodorovna_rychlost); {doleva}
              end;
 {zmena smeru po dosazeni urciteho poctu kroku:}
 inc(pocet_kroku);
 if (pocet_kroku>vodorovny_rozsah_kroku)
    or (pocet_kroku>svisly_krok) and ((smer=2)or(smer=4))
   then begin
        inc(smer);
        if smer>4 then smer:=1;
        end;
 ...
 until ...
...

Mimochodem, inc(x) je totéž co x:=x+1 a inc(x,n) je x:=x+n, s dlouhými jmény proměnných je to tak pohodlnější.

Kdybych směr počítal od 0 do 3, mohli bychom if nahradit výpočtem smer:=(smer+1) and 3 nebo smer:=(smer+1) mod 4, ale to už je detail.

Lodě bychom měli, teď střely:

for i:=1 to pocet_strel do
 with strely[i] do
  if zije then begin
               setcolor(pozadi);
               line(x,y,x,y+vyska_strely);
               inc(y,rychlost_strel);
               if y>810 then zije:=false
                        else begin
                             setcolor(barva_strely);
                             line(x,y,x,y+vyska_strely);
                             end;
               end
          else begin
               x:= neco nahodneho
               y:= neco nahodneho
               zije:=true;
               end;

Příkazem With jsem si naadresoval i-tou střelu, takže potom nemusím pořád opisovat strely[i].x, stačí jenom to x. Ale šlo by to i tak.

Hlavní je uvědomit si, kdy je střela ještě vidět a že kontrola polohy a případné "zabití" musí nastat v okamžiku, když vidět není, a následující vykreslení se provede jenom když ještě "žije".

Ještě jedna obecná věc. Ve výše uvedených příkladech předpokládám, že se hlavní cyklus hry točí v nějakých víceméně konstantních časových úsecích nezávislých na klávesnici, tj. že se klávesy vyhodnocují stylem if keypressed then begin klávesa:=readkey; vyhodnoť ji; end else nic. Jestli časování vyřešíš přes Delay nebo nějak líp, to už je celkem jedno.

Nahlásit jako SPAM
IP: 212.118.224.–
Chceš-li lepší odpověď, polož lepší otázku.
Moje stránka.
Hano0
Duch
14. 4. 2012   #6
-
0
-

si mi to pekne upravil :)...

je to pecka, si borec :D ... a este ak by som chcel spravit rebricek s najlepsim skore asi by som to musel zapisovat do txt suboru ze?

Nahlásit jako SPAM
IP: 77.234.254.–
Mircosoft+1
Věrný člen
16. 4. 2012   #7
-
+1
-
Zajímavé

Nemusel, jsou i jiné možnosti. Když to bude texťák, budeš to potom moct prohlížet i v Poznámkovém bloku, ale bude to o trochu těžkopádnější na zpracování. Nejjednodušší na naprogramování by byl typový soubor, třeba takhle:

type zaznam=record
            jmeno:string[40]; {nebo jakakoli jina delka, podle potreby}
            score:integer;
            end;
var hiscore:file of zaznam; {soubor na ukladani}
    zebricek:array[1..10] of zaznam; {tabulka nejlepsich vysledku}
...
for i:=1 to 10 do write(hiscore,zebricek[i]); {priklad ukladani}

Čte se Readem, zapisuje Writem. Nefunguje Readln, Writeln ani Append, Poznámkový blok výsledný soubor nezvládne. Ale nestaráš se o převody čísel na binární tvar, zalamování řádků a podobné prkotiny, které bys musel řešit s texťákem.

Je to na tobě.

Nahlásit jako SPAM
IP: 212.118.224.–
Chceš-li lepší odpověď, polož lepší otázku.
Moje stránka.
Hano0
Duch
7. 5. 2012   #8
-
0
-

   

Nazdar :D uz som ta nechcel otravovat ale este mam maly problem s tym score, tak ak mas cas...  
F- score
body- jednotlive body ktore nacitavam z txt
hraci- hraci z txt
menoh- pole typu char, v ktorom su ulozene jednotlive pismena z mena, ktore uzivatel zada

Najprv z txt nacitam vsetky body a ulozim do pola, zavriem subor. Potom ho prepisujem, ak ma niekto lepsie score tak opravim a zapisem, zavriem. Zase nacitam upravenu tabulku a potom ju vypisem na obrazovku. 
 

    procedure high_score;
    begin
    assign(T,'C:\Documents and Settings\Martin\Desktop\rebricek.txt');
    reset(T);
    score[h]:=F;
    J:=1;
         while not eof(T) do
         begin
         readln(t,veta);
         P:=pos(' ',veta);
         N:=copy(veta,P,length(veta));
         val(N,Body[j]);
         N:=copy(veta,1,P);
         hraci[j]:=N;
         J:=j+1;
         end;
    close(T);

    rewrite(T);
    O1:=0;
    for J1:=1 to J-1 do
    begin
    O:=0;
         if (score[h]>body[j1]) and (O1=0) then
         begin
                            for b:=1 to G1-1 do
                            write(t,menoh[b]);
         writeln(t,' ',score[h]);
         O:=1;
         J1:=j1-1;
         J:=J-1;
         O1:=1;
         end;
    if O=0 then
    writeln(t,hraci[j1],body[j1]);
    end;
    close(T);

    reset(T);
    J:=1;
         while not eof(T) do
         begin
         readln(t,veta);
         P:=pos(' ',veta);
         N:=copy(veta,P,length(veta));
         val(N,Body[j]);
         N:=copy(veta,1,P);
         hraci[j]:=N;
         J:=j+1;
         end;
    close(T);

    cleardevice;
    setcolor(3);
    settextstyle(2,0,3);
    outtextxy(678,270,'HIGH SCORE');
    setcolor(15);
    settextstyle(0,0,1);
    rectangle(600,300,1000,700);
    C:=310;
    for J1:=1 to 10 do
    begin
         outtextxy(960,C,inttostr(body[j1]));
         outtextxy(620,C,hraci[j1]);
         C:=C+30;
    end;

    repeat
    K:=readkey;
    until (K=#114) or (K=#08);
    end;

Problem mi robi to ze do textoveho suboru mi niekedy zapise  "   l   r" namiesto "player" a tak isto mi to napise aj na obrazovku, niekedy vsak to meno napise spravne a neviem kde je chyba 

Nahlásit jako SPAM
IP: 80.87.210.–
Mircosoft+1
Věrný člen
8. 5. 2012   #9
-
0
-

Jé, další hlavolam :-).

Čas by byl, ale když mi neukážeš deklaraci a inicializaci proměnných, které používáš, nemám šanci. Takže jenom pár domněnek:

1) Co máš za překladač? Delphi? FP? Tipuju, že TP asi ne, ten by dlouhá jména jako "Documents and settings" vůbec nesnesl.

2) Jakou hodnotu má proměnná h před voláním procedury high_score? Indexuješ s ní pole score, ale nikde ji neměníš, takže asi přistupuješ pořád k tomu samému prvku.

3) To samé pro proměnnou b. Indexuješ s ní pole menoh, ale nikde nenastavuješ ani neměníš její hodnotu, takže se do souboru bude zapisovat pořád jenom jedna věc. A jestli je b nějaká kravina, ukazuje mimo pole jmen a pak se nediv, že se do souboru zapisují věci, které nečekáš (docela se divím, že to neskončilo chybou "program provedl neplatnou aplikaci a bude ukončen").

4) Podobně G1. Používáš ji jako horní mez cyklu, ale netuším, co je v ní za hodnotu.

5) Procedura Val by měla mít ještě třetí parametr, podle kterého zkontroluješ úspěšnost. Divím se, že ti to bez něj vůbec funguje.

6) Nechápu, proč ten soubor čteš dvakrát. Stačilo by jednou načíst, upravit, zapsat do souboru, zapsat na obrazovku a hotovo.

7) Jedině o výpisu na obrazovku můžu s jistotou říct, že je v pořádku. Tedy za předpokladu, že Body a Hraci jsou pole s indexy od 1 do 10.

Zbytek nechápu. Spousta záhadných globálních proměnných a indexů neznámého původu a účelu. Mám takový dojem, že by na všechno stačily ty pole, soubor a jedno číslo na indexování. A už se konečně nauč používat lokální proměnné a výstižná jména ;-).

Nahlásit jako SPAM
IP: 212.118.224.–
Chceš-li lepší odpověď, polož lepší otázku.
Moje stránka.
Hano0
Duch
8. 5. 2012   #10
-
0
-

#9 Mircosoft
:D aspon sa nenudis

noo prekladac mam freepascal...premenna H je poradie hraca, ked sa program spusti je 1, ked uzivatel zomrie tak nasleduje druhy hrac a H:=h+1, ..zvysujem ju az po tejto procedure.

menoh[b].. je to pole, ktore ked vypisem dostanem cele meno hraca, lebo ja meno hraca nacitavam po pismenkach ako ho zadava uzivatel.. pocet znakov v mene je G1-1; napr.: Zadam meno Hano, pocez znakov je G1-1 a pri vypise zacinam prvym znakom (B) ktory je "H", zvysim B a napise "a", zase zvysim napise "n" a potom "o".

noo zda sa mi to jednoduchsie nacitavat body a mena hracov az ked je subor upraveny a zapisany,

no aj ja sa cudujem, ale akymsi zazrakom to funguje

:D noo hej budem pouzivat vystizne mena premennych len co to dokoncim

Nahlásit jako SPAM
IP: 80.87.210.–
Hano0
Duch
9. 5. 2012   #11
-
0
-

.. no nakoniec sa mi to podarilo spravit,, aj tak vdaka, velmi si mi pomohol :D

Nahlásit jako SPAM
IP: 80.87.210.–
Mircosoft+1
Věrný člen
9. 5. 2012   #12
-
0
-

Tak to jsem rád.

Není zač :-).

Nahlásit jako SPAM
IP: 212.118.224.–
Chceš-li lepší odpověď, polož lepší otázku.
Moje stránka.
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, 5 hostů

Podobná vlákna

Závěrečná práce — založil Honza

Zavěrečná práce — založil Patrik

Praca webmaster — založil maros cerven

Praca so subormi — založil Tom@sQo

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ý