help s projektom vol.2 (Delphi)
Re: help s projektom (Delphi)
No mohlo by to vyzerat takto:
type
Tfigurka = (pesiak, veza...)
Tpolicka = record
figurka: Tfigurka;
farba_figurky: Boolean;
farba_policka: Boolean; //toto nemusi byt, ale mozno sa hodi
end;
Tsachovnica = array[0..7, 0..7] of Tpolicko;
Toto je ale riesenie bez objektov (podla mna ale dostacujuce), pri odovzdavani sa to ale nemusi pacit. Preto by si to mohol urobit aj z triedami.
type
TFigurka = class
end;
TPesiak = class(TFigurka)
end;
...
TSahovnica = class
pole: array [0..7, 0..7] of TFigurka;
end;
A porobit nejake zaujimave metody.
type
Tfigurka = (pesiak, veza...)
Tpolicka = record
figurka: Tfigurka;
farba_figurky: Boolean;
farba_policka: Boolean; //toto nemusi byt, ale mozno sa hodi
end;
Tsachovnica = array[0..7, 0..7] of Tpolicko;
Toto je ale riesenie bez objektov (podla mna ale dostacujuce), pri odovzdavani sa to ale nemusi pacit. Preto by si to mohol urobit aj z triedami.
type
TFigurka = class
end;
TPesiak = class(TFigurka)
end;
...
TSahovnica = class
pole: array [0..7, 0..7] of TFigurka;
end;
A porobit nejake zaujimave metody.
-
- Používateľ
- Príspevky: 392
- Dátum registrácie: So 07. Jún, 2008, 10:49
- Bydlisko: Štúrovo
Re: help s projektom (Delphi)
No znova sa vraciam k projektu (ešte stále nič nemám ) a čím viac nad ním rozmýšlam, tým viac si uvedomujem že neviem programovať
Vytvoril som nasledovné :
trieda políčok na šachovnici :
Vytvoril som nasledovné :
trieda políčok na šachovnici :
vytvorenie dvojrozmerného pola objektov a priradenie nejakých vlastnostítype
TFarba = (B,W);
TPolicko = class
XX,YY,r : integer;
farba = TFarba;
obsadene : boolean;
end;
Momentálne rozmýšľam nad tým, ako mám urobiť aby mi každý objekt (prvok poľa) zaberal aj reálne jedno miesto na šachovnici. Ostatné domyslím neskôr. Už sú skoro 2 hodiny a nejak na to neviem dojsť. Poradíte mi s tým ?procedure TForm1.Novhra1Click(Sender: TObject);
var
I,J,N: Integer;
begin
N:=0;
for I := 1 to 8 do
for J := 1 to 8 do
begin
poleP[I,J] := TPolicko.create;
if N mod 2 = 1 then
poleP[I,J].farba := W // prirad farbu (biela)
else poleP[I,J].farba := B; // prirad farbu (cierna)
if (poleP[I,J].farba = B) and (i>=2) and (i<=7) then
poleP[I,J].obsadene := True // "obsad" policka
else poleP[I,J].obsadene := False;
Inc(N);
end;
end;
Acer Extensa 5620G - Intel Core2Duo, 1,4GHz, 2MB Cache, 3GB RAM DDR2 (667 MHz), ATi Radeon Mobility HD24000XT (256 MB, 64bit), HDD 320 GB
<?php $_GET['rich'] or die('trying'); ?>
<?php $_GET['rich'] or die('trying'); ?>
Re: help s projektom (Delphi)
A co konkretne znamena "reálne jedno miesto na šachovnici"? Podla mna kazdy prvok pola je realne miesto na sachovnici (ak teda pole je zamyslana sachovnica - osobne si viem predstavit aj vystiznejsie nazvy ako pole...).
-
- Používateľ
- Príspevky: 392
- Dátum registrácie: So 07. Jún, 2008, 10:49
- Bydlisko: Štúrovo
Re: help s projektom (Delphi)
Mám na mysli to, že tie prvky poľa ešte nevedia svoje súradnice na šachovnici. Teda ak tomu dobre chápem...
poleP je fakt blbý názov poľa, ale vymýšlal som to o pol druhej v noci
poleP je fakt blbý názov poľa, ale vymýšlal som to o pol druhej v noci
Acer Extensa 5620G - Intel Core2Duo, 1,4GHz, 2MB Cache, 3GB RAM DDR2 (667 MHz), ATi Radeon Mobility HD24000XT (256 MB, 64bit), HDD 320 GB
<?php $_GET['rich'] or die('trying'); ?>
<?php $_GET['rich'] or die('trying'); ?>
Re: help s projektom (Delphi)
A naco je prvkom pola vediet kde su? Ved ty ich mas na pole[x, y], kde x a y su suradnice na sachovnici. Ako ja by som este asi urobil objekt TSachovnica, co by zapuzdrovalo ono pole s figurkami.
Re: help s projektom (Delphi)
Zdravim, taktiez mam za ulohu naprogramovat Damu v delphi ( som taktiez student FMFI ) takze sa pridam do diskusie, zatial som ani nezacal pretoze si tiez lamem hlavu nad tym ako to spravit.
Re: help s projektom (Delphi)
Kedze dama je v podstate zjednoduseny sach (co sa programovania samotnej hry tyka, nie umelej inteligencie), tak sa pokusim napisat ako by ste to asi mali naprogramovat (strukturu, samotnu implementaciu sa mi fakt nechce).
(budem to popisovat velmi neodborne, takze sa necudujte nejakym nezvycajnym pomenovaniam, myslim ale ze budu zrejme)
Predpokladam, ze mate vo forme jeden komponent Image, kde sa bude kreslit dana sachovnica.
Triedy by mohli byt asi takeho:
V tej sachovnici si mozete pametat povedzme aktualne vybrane policko, pomocou koordinatov x, y a k nemu v procedure kresli nakreslit nejake zvyraznenia kam sa moze pohnut...
(budem to popisovat velmi neodborne, takze sa necudujte nejakym nezvycajnym pomenovaniam, myslim ale ze budu zrejme)
Predpokladam, ze mate vo forme jeden komponent Image, kde sa bude kreslit dana sachovnica.
Triedy by mohli byt asi takeho:
Kód: Vybrať všetko
TFigurka = (Pesiak, Veza, ..., Kral);
TFarba = (Biela, Cierna);
TPolicko = class
//teraz su tu z toho verejne premenne, co je samozrejme skarede, mali by byt sukromne a kazda mat get a set, prip. property
figurka: TFigurka;
farba: TFarba; //farba figurky, nie policka, tie su konstantne, a teda je zbytocne si ich pamatat
end;
TSachovnica = class
pole: array[1..8, 1..8] of TPolicko;
im: TImage; //kam sa bude sachovnica kreslit
constructor Create(i: TImage); //do im sa priradi smernik na i, na zaciatku tam bude ten Image co sme dali do formu
procedure Kresli(); //nakeslenie sachovnice do pola, staci porobit stvorce a vyplnit ich + potom tam podavat obrazky figurok
procedure Click(x, y: Integer); ... rozne procedury pre klikanie, zavisiace od ovladania, neviem ako to budete mat, osobne by som mal asi lavy klik na vyber, a pravy na zrusenie vyberu, potom by som mal 2 (ClickLavy a ClickPravy)...
-
- Používateľ
- Príspevky: 392
- Dátum registrácie: So 07. Jún, 2008, 10:49
- Bydlisko: Štúrovo
Re: help s projektom (Delphi)
díky pepane, ale včera som si už zadefinoval triedy. Už mám 110 riadkový unit a je v ňom len constructor
Acer Extensa 5620G - Intel Core2Duo, 1,4GHz, 2MB Cache, 3GB RAM DDR2 (667 MHz), ATi Radeon Mobility HD24000XT (256 MB, 64bit), HDD 320 GB
<?php $_GET['rich'] or die('trying'); ?>
<?php $_GET['rich'] or die('trying'); ?>
Re: help s projektom (Delphi)
zdravim ...tiez mam ako projekt urobit damu a som z toho riadne zufaly. Zisiel by sa nejaky inspirativny program s damou. Najlepsie aby mal menej ako 1000 riadkov kodu Take a vacsie som uz videl
-
- Používateľ
- Príspevky: 392
- Dátum registrácie: So 07. Jún, 2008, 10:49
- Bydlisko: Štúrovo
Re: help s projektom (Delphi)
Samá konkurencia
Ja už mám hotové vytvorenie hry a vykreslenie figúrok.
Práve pracujem na vykreslovaní políčok pri nadídení myšou (vykreslenie už mám, už len odstránenie vykreslenia treba) a výbere figúrok.
Už teraz má môj GameUnit skoro 200 riadkov
Ja už mám hotové vytvorenie hry a vykreslenie figúrok.
Práve pracujem na vykreslovaní políčok pri nadídení myšou (vykreslenie už mám, už len odstránenie vykreslenia treba) a výbere figúrok.
Už teraz má môj GameUnit skoro 200 riadkov
Acer Extensa 5620G - Intel Core2Duo, 1,4GHz, 2MB Cache, 3GB RAM DDR2 (667 MHz), ATi Radeon Mobility HD24000XT (256 MB, 64bit), HDD 320 GB
<?php $_GET['rich'] or die('trying'); ?>
<?php $_GET['rich'] or die('trying'); ?>
Re: help s projektom (Delphi)
Už pomaličky musím aj ja odovzdať projekt , a vôbec ho neviem. Pomôžte mi niektooo. Prosíim. Som tak blbá, že neviem ani jeden jedinký projekt urobiť . Smrk Pomoooc !!!
-
- Používateľ
- Príspevky: 392
- Dátum registrácie: So 07. Jún, 2008, 10:49
- Bydlisko: Štúrovo
Re: help s projektom (Delphi)
čo mám urobiť, aby externý unit mohol používať komponenty na pôvodnom formuláry ? (konkr. potrebujem memo, alebo label)
Prečo vymenovaný typ nefunguje pre čísla ? Dám napr TNeviemco = (1,2); - a nejde to
Prečo vymenovaný typ nefunguje pre čísla ? Dám napr TNeviemco = (1,2); - a nejde to
Acer Extensa 5620G - Intel Core2Duo, 1,4GHz, 2MB Cache, 3GB RAM DDR2 (667 MHz), ATi Radeon Mobility HD24000XT (256 MB, 64bit), HDD 320 GB
<?php $_GET['rich'] or die('trying'); ?>
<?php $_GET['rich'] or die('trying'); ?>
-
- Používateľ
- Príspevky: 392
- Dátum registrácie: So 07. Jún, 2008, 10:49
- Bydlisko: Štúrovo
Re: help s projektom (Delphi)
Ďalšia otázka :
Ak prekreslím nejaké políčko (napr brush, alebo tam vykreslím obrázok), ako to potom vrátim do pôvodného stavu ? Prekresliť bielou/čiernou to nemôžem...
A bol by som veľmi rád, keby mi niekto poradil algoritmus na určovanie možných ťahov figúrok. Ako tak nad tým rozmýšľam, mal som radšej robiť šach. Brutal ťažké to je
Ak prekreslím nejaké políčko (napr brush, alebo tam vykreslím obrázok), ako to potom vrátim do pôvodného stavu ? Prekresliť bielou/čiernou to nemôžem...
A bol by som veľmi rád, keby mi niekto poradil algoritmus na určovanie možných ťahov figúrok. Ako tak nad tým rozmýšľam, mal som radšej robiť šach. Brutal ťažké to je
Acer Extensa 5620G - Intel Core2Duo, 1,4GHz, 2MB Cache, 3GB RAM DDR2 (667 MHz), ATi Radeon Mobility HD24000XT (256 MB, 64bit), HDD 320 GB
<?php $_GET['rich'] or die('trying'); ?>
<?php $_GET['rich'] or die('trying'); ?>
Re: help s projektom (Delphi)
Preco to nemozes prekreslit? Ved mam policko s figurkov a chcem ho dat naspät do stavu kde figurka nebola, tak nanho nakreslim cierny/biely stvorec.Don Ferignon napísal:Ďalšia otázka :
Ak prekreslím nejaké políčko (napr brush, alebo tam vykreslím obrázok), ako to potom vrátim do pôvodného stavu ? Prekresliť bielou/čiernou to nemôžem...
No ten algoritmus je asi klucovy co sa tyka spracovania projektu, a urcite je to sama ifovacka (ako ja nazyvam tieto skusania moznosti) .Don Ferignon napísal:A bol by som veľmi rád, keby mi niekto poradil algoritmus na určovanie možných ťahov figúrok. Ako tak nad tým rozmýšľam, mal som radšej robiť šach. Brutal ťažké to je
Takze skarede riesenie je ze do uses das meni unitu kde je formular ktory chces pouzivat. A potom sa nato odkazujes ako Form1.<meno komponentu> (to form1 moze byt aj ine podla toho ako si si to nazval). Alebo, co je podla mna krajsie, das do funkcii parameter smernik na komponent ktory chces pouzivat (pripadne raz do construktora objektu, a das to ako stavovu premennu)Don Ferignon napísal:čo mám urobiť, aby externý unit mohol používať komponenty na pôvodnom formuláry ? (konkr. potrebujem memo, alebo label)
Nejde a musis sa s tym zmierit, pomenuj to napriklad x1, x2...Don Ferignon napísal:Prečo vymenovaný typ nefunguje pre čísla ? Dám napr TNeviemco = (1,2); - a nejde to
-
- Používateľ
- Príspevky: 392
- Dátum registrácie: So 07. Jún, 2008, 10:49
- Bydlisko: Štúrovo
Re: help s projektom (Delphi)
Fu, smerníky nelúbim..
Nemôžem prekreslovať, lebo...
- mám cez celé hracie pole textúru
- ak by som mal vyznačené políčko s figúrkou, tak tam zas budem musieť dať kopu podmienok čo by sa tam malo vykresliť
Potreboval by som niečo ako jeden image, ktorému len budem meniť súradnice. Také sa dá ?
Nemôžem prekreslovať, lebo...
- mám cez celé hracie pole textúru
- ak by som mal vyznačené políčko s figúrkou, tak tam zas budem musieť dať kopu podmienok čo by sa tam malo vykresliť
Potreboval by som niečo ako jeden image, ktorému len budem meniť súradnice. Také sa dá ?
Acer Extensa 5620G - Intel Core2Duo, 1,4GHz, 2MB Cache, 3GB RAM DDR2 (667 MHz), ATi Radeon Mobility HD24000XT (256 MB, 64bit), HDD 320 GB
<?php $_GET['rich'] or die('trying'); ?>
<?php $_GET['rich'] or die('trying'); ?>