Piškvorky – Visual Basic – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Piškvorky – Visual Basic – Fórum – Programujte.comPiškvorky – Visual Basic – Fórum – Programujte.com

 

Michal0
Duch
1. 12. 2006   #1
-
0
-

Zacinam s Visual Basicem (6.0), jako neco uz umim ale moc toho neni a napadlo mne, udelat takovou jednoduchou hru jako jsou piskvorky. Problem je ale v tom, ze moc nevim jak na to.
- Jak bych mel udelat vlastne ten system zapisovani krizku a kolecek? (Napadlo mne to udelat sachovnici tvorenou z Command? ale nevim, zda je to nejlepsi napad.)
- Jak napsat do zdrojaku, ze az bude pet stejnych symbolu zasebou aby to vyvolalo nejakou akci? (Tu uz si udelam)

Diky moc

Nahlásit jako SPAM
IP: ...–
Jiří Chytil0
Věrný člen
2. 12. 2006   #2
-
0
-

to, jak to má vypadat, je dost o tvořivosti, v tom ti neporadím, na to má každý své osobité pojetí, zkoužej a potom to můžeš upravit.

Nahlásit jako SPAM
IP: ...–
Elektronika a microprocesory a matematika www.8bitu.cz
tom*p0
Stálý člen
2. 12. 2006   #3
-
0
-

J? jsem pi?kvorky kdysi programoval ve VB6... na v?sledek se m??e? pod?vat na mojich str?nk?ch.
Nemysl?m si, ?e to bylo nejl?p vy?e?en?, ale fungovalo to dob?e.

Pracovn? plochu jsem m?l rozd?lenou na ?tvere?ky (ImageBoxy) a ka?d? ?tvere?ek m?l sv?j index.
Do jeho TAGu se ukl?dalo, zda je pol??ko voln?, jestli je na n?m k???ek nebo kole?ko.

Za?al jsem takto:
Nejd??v jsem ud?lal program, ve kter?m hraje? s?m proti sob? a po??ta? pak rozhodne jestli n?kdo vyhr?l a kdo vyhr?l.
To je ud?lan? hlavn? anal?zou posledn?ho tahu.

Proto?e ImageBoxy byly o??slov?ny, tak se podle jejich ??sel dalo zjistit, kter? pol??ko je vlevo, kter? vpravo...
P?es funkci jsem zji??oval posloupnost tah? v 8 sm?rech.

Pak jsem program vylep??l do sou?asn? podoby:
Po??ta? m?l kontroln? pol??ko, kter?m zkou?el, kam m??e t?hnout. Do funkce, kter? kontrolovala posloupnost tah? jsem p?idal parametr pro d?lku ?et?zce. Program zkou?el ka?d? mo?n? tah a podle ?et?zc?, kter? mu vzniknou porovn?val jejich kvalitu. Nejv?t?? prioritu m?ly tahy, kter?mi dopln?? na 5 znak?, pak byla nekryt? ?tverka, pak 2 z jed? strany kryt? ?tverky.....


Na m?m webu bohu?el nen? zdrojov? k?d, proto?e jsem si s t?m dal opravdu hodn? pr?ce a pat?? to mezi nejslo?it?j?? v?ci, kter? jsem kdy naprogramoval.

Nahlásit jako SPAM
IP: ...–
Don't waste your time, or time will waste you.
Tax0
Super člen
2. 12. 2006   #4
-
0
-

T?eba takhle:
M?l bys cmd (Command Buttonu) pod n?m 4 lbl (Labely) kter? bys m?l nastaven? jako Visible = False. Jeden by byl lbl s k???kem, druh? s kole?kem a t?et? pro z?pis hodnoty kv?lli testov?n? podm?nkou. v Podm?nce bys potom testoval v?echna pole jestli netvo?? ?adu.

Vyvo??? ke ka?d?mu cmd, 4x lbl . Z?pis do cmd by mohl vypadat n?jak takhle:

cmdButton1_click()

cmdButton1.Visible = False
cmdButton2.Visible = False
lblKrizek1.Visible = True
lblKolecko1.Visible = False (nebylo by potreba ps?t kdy? je defaultn? nastaveno jako false)
lblHodnota1.Caption = 1 (lbl pro podm?nku kter? testuje zdali bylo na tomto poli ta?eno)


If lblHodnota1.Caption = 1 And lblHodnota2.Caption = 1 And lblHodnota3.Caption = 1 And lblHodnota4.Caption = 1
And lblhodnota5.Caption = 1 Or lblHodnota1.Caption = 1 And lblHodnota8.Caption = 1 And lblHodnota15.Caption = 1
And lblHodnota22.Caption And lblHodnota29.Caption = 1 Or lblHodnota.........
Then
MsgBox "Vyhr?l Hr?? ?.1", vBInforamtion + vBOKOnly

Tu samou podn?mku by jsi potom napsal pro tahy druh?ho hr??e akor?t by jsi na to ud?lal zvl??tn? lbl.
cmdButton2_click()

cmdButton1.Visible = False
cmdButton2.Visible = False
lblKrizek1.Visible = False
lblKolecko1.Visible = True
lblHod1.Caption = 1 (lbl pro z?pis hodnoty pokud bylo na tomto poli ta?eno pro druh?ho hr??e)

If.... (stejn? podm?nka jako naho?e)

pro pole 7x7:
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 32 33 34 35
36 37 38 39 40 41 42
43 44 45 46 47 48 49

T?mhle stylem vytvo?it p??slu?n? po?et pol?. Pokud by jsi hr?l s?m se sebou dal bys na ten cmdButton jes? jeden a t?m, ?e by jsi v?dycky p?epnul vrstvu cmdButtonu, by jsi jako nech?val hr?t jin?ho hr??e.
Hor?? je pohom vytvo?it algorytmus pro z?pis programu, respektive pro tahy po??ta?e. A zajistit aby nehr?l "stupidn?".

Vz?hledem k tomu ?e by jsi musel ps?t podm?nku pro v?echny mo?n? kombinace a musel bys zajistit, ?e kdy? t?hle po??ta? ukl?d?n? hodnot a zneviditel?ov?n? p??slu?n?ch cmd a zviditeln?n? lbl s kole?kem ?i k???kem, bude to pom?rn? n?ro?n? pr?ce, p?eji ti hodn? zdaru a ur?it? se v?sledkem sv?ho sna?en? pochlub ;)

Nahlásit jako SPAM
IP: ...–
Carpe diem. (Horatius)
Jak se liší Windows a Tamagoči? Windows chcípnou, i když se o ně staráte.
Viete ako spoznáte závislosť na internete? Keď narazíte autom do zvodidiel, a prvé čo hľadáte je back.Vsetci mi hovoria, ze meno kocura sa ako heslo pre roota nehodi. :-( Ale ked ja som si tak privykol na mojho qzb!7kw_2et !
Tax0
Super člen
2. 12. 2006   #5
-
0
-

tom*p píše:#
# J? jsem pi?kvorky kdysi programoval ve VB6... na v?sledek se m??e? pod?vat na mojich str?nk?ch.#
#Nemysl?m si, ?e to bylo nejl?p vy?e?en?, ale fungovalo to dob?e.#
##
#Pracovn? plochu jsem m?l rozd?lenou na ?tvere?ky (ImageBoxy) a ka?d? ?tvere?ek m?l sv?j index.#
#Do jeho TAGu se ukl?dalo, zda je pol??ko voln?, jestli je na n?m k???ek nebo kole?ko.#
##
#Za?al jsem takto:#
#Nejd??v jsem ud?lal program, ve kter?m hraje? s?m proti sob? a po??ta? pak rozhodne jestli n?kdo vyhr?l a kdo vyhr?l.#
#To je ud?lan? hlavn? anal?zou posledn?ho tahu.#
##
#Proto?e ImageBoxy byly o??slov?ny, tak se podle jejich ??sel dalo zjistit, kter? pol??ko je vlevo, kter? vpravo...#
#P?es funkci jsem zji??oval posloupnost tah? v 8 sm?rech.#
##
#Pak jsem program vylep??l do sou?asn? podoby:#
#Po??ta? m?l kontroln? pol??ko, kter?m zkou?el, kam m??e t?hnout. Do funkce, kter? kontrolovala posloupnost tah? jsem p?idal parametr pro d?lku ?et?zce. Program zkou?el ka?d? mo?n? tah a podle ?et?zc?, kter? mu vzniknou porovn?val jejich kvalitu. Nejv?t?? prioritu m?ly tahy, kter?mi dopln?? na 5 znak?, pak byla nekryt? ?tverka, pak 2 z jed? strany kryt? ?tverky.....#
##
##
#Na m?m webu bohu?el nen? zdrojov? k?d, proto?e jsem si s t?m dal opravdu hodn? pr?ce a pat?? to mezi nejslo?it?j?? v?ci, kter? jsem kdy naprogramoval.



No jestli mysl?? tenhle http://programy.wz.cz/prog_soubory/piskvorky_pp12.zip Tak ten se mi n?jak nechce spustit
Nap??e:
Run-Time Error "79"
Path not found: X:.......... (v?pis sesty do adres??e kde to m?m ulo?en

Nahlásit jako SPAM
IP: ...–
Carpe diem. (Horatius)
Jak se liší Windows a Tamagoči? Windows chcípnou, i když se o ně staráte.
Viete ako spoznáte závislosť na internete? Keď narazíte autom do zvodidiel, a prvé čo hľadáte je back.Vsetci mi hovoria, ze meno kocura sa ako heslo pre roota nehodi. :-( Ale ked ja som si tak privykol na mojho qzb!7kw_2et !
tom*p0
Stálý člen
2. 12. 2006   #6
-
0
-

J? jsem u t?ch sv?ch imagebox? m?nil pouze vlastnost picture, kam jsem vkl?dal obr?zky k???k? a kole?ek, kter? jsem m?l ve 3 dal??ch imageboxech, kter? nebyly vid?t. Pokud jsi je?t? za??te?n?k, tak ti nedoporu?uju programovat AI po??ta?e a ud?lat hru rad?ji pro dva hr??e.

Nahlásit jako SPAM
IP: ...–
Don't waste your time, or time will waste you.
Michal0
Duch
2. 12. 2006   #7
-
0
-

Diky moc !

Mne napadlo, jako nejdriv udelat hru 1 vs 1, coz by zase nemuselo byt tak slozity a postupem casu dodelat AI. Jenom tedka premyslim nad tim, jak velky to pole udelat. Kdyz ho udelam moc maly, tak pak muze nastat problem, ze uz nebude kam hrat. Pokud ho ale udelam naopak moc velke, bude s tim zase vic prace. Jako nejlepsi reseni mi zatim pripada 15x15, to jsi pouzil vlastne i ty v tech svych. No, kouknu na to co jsi tady napsal a neco zkusim udelat. Az to bude (pokud nekdy :) ) tak to sem postnu. Dik

Nahlásit jako SPAM
IP: ...–
Tax0
Super člen
2. 12. 2006   #8
-
0
-

Nejsem si ještš jistej jestli by fungovala ta složená podmínka nebo jestli bys každou kombinaci musel psát do zvláštního Ifu.. To by bylo potřeba vyzkoušet

Nahlásit jako SPAM
IP: ...–
Carpe diem. (Horatius)
Jak se liší Windows a Tamagoči? Windows chcípnou, i když se o ně staráte.
Viete ako spoznáte závislosť na internete? Keď narazíte autom do zvodidiel, a prvé čo hľadáte je back.Vsetci mi hovoria, ze meno kocura sa ako heslo pre roota nehodi. :-( Ale ked ja som si tak privykol na mojho qzb!7kw_2et !
Michal0
Duch
2. 12. 2006   #9
-
0
-

Pokud jsem to spravne pochopil, tak bych do te podminky musel napsat UPLNE VSECHNY moznosti toho, mit 5 stejnych obrazku zasebou, coz je celkem nadlouho :(
Udelal bych to nejak takhle:



Private Sub Form_load()
Image3.Visible = False ?nastaveni kolecka aby nebylo videt
Image4.Visible = False ?nastaveni krizku aby nebylo videt
Label1.Visible = False ?nastaveni lblu1, pro imagebox1 aby nebyl videt
Label2.Visible = False ?nastaveni lblu2, pro imagebox2 aby nebyl videt
..... ?atd.
Label50.Visible = False ?nastaveni lblu50, ktery urcuje kdo byl posledni na tahu a tim padem, jestli dalsi tah ma byt kolecko ci krizek
Label50.Caption = "ko" ?prvni na tahu je kolecko
End Sub

Private Sub Image1_click()
If Label50.Caption = "ko" Then
Image1.Picture = Image3.Picture ?kdyz klikne na na pole 1, tak se zmeni na kolecko
Label1.Caption = "ko" ?ko = kolecko ; hodnota lblu1, pro imagebox1 se zmeni na "ko"
Label50.Caption = "kr" ?dalsi na rade bude krizek
End If
End Sub

Private Sub Image2_click()
If Label50.Caption = "kr" Then
Image2.Picture = Image4.Picture ?kdyz klikne na na pole 2, tak se zmeni na krizek
Label2.Caption = "kr" ?kr = krizek ; hodnota lblu2, pro imagebox2 se zmeni na "kr"
Label50.Caption = "ko" ?dalsi na rade bude kolecko
End If
End Sub

A potom uz zbyva jen aby pocitac sam poznal, ze nekdo vyhral:


Private Sub Form_Load()
If Label3.Caption = "kr" And Label4.Caption = "kr" And Label5.Caption = "kr" And Label6.Caption = "kr" And Label7.Caption = "kr"
Or ......... ?a ted uz sem vypisovat jen vsechny moznosti
Then
MsgBox "Vyhrali krizky", vBInforamtion + OKOnly
End If
End Sub

Myslite ze by to takhle mohlo fungovat?

Nahlásit jako SPAM
IP: ...–
Tax0
Super člen
2. 12. 2006   #10
-
0
-

No, proč se ptáš?!? To rovnou zkus ;)
No takhle do té podmínky i tady musíš vypsat všechny možnosti. Jednou pro hodnotu "kr" jednou pro hodnotu "ko".
Jestli to chápu tak vkládáš obrázek do prázdného Image pole. Je to jednodušší máš pravdu.
Jen by to mělo být ještě:

Private Sub Image1_click()

If Label50.Caption = "ko" Then
Image1.Picture = Image3.Picture
Label1.Caption = "ko"
Label50.Caption = "kr"
End If

If Label50.Caption = "kr" Then
Image1.Picture = Image3.Picture
Label1.Caption = 1
Label50.Caption = "ko"
End If
End Sub


No ale nějak sem nepochopil tohle


Private Sub Form_Load()
If Label3.Caption = "kr" And Label4.Caption = "kr" And
Label5.Caption = "kr" And Label6.Caption = "kr" And Label7.Caption = "kr"
Or ......... a ted uz sem vypisovat jen vsechny moznost Then
MsgBox "Vyhrali krizky", vBInforamtion + OKOnlyEnd IfEnd Sub



Nemůžeš to tam mít 2x jedině, že bys to napsal pod jedinný Form_Load(), to ti ale nebude fungovat protože tu podmínku ti to bude testovat pouze na začátku při nahrání aplikace. Ty ale potřebuješ, aby ti to podmínku testovalo po každém kliknutí.
Ještě by nebylo na škodu po každém kliknutí zajistit aby se na něj nedalo kliknout znova. Tím by se totiž znova přepsal obrázek. To by právě řešil label nebo bottom, který by ležel nad tím Image a který by ho zakrýval. Neklikal bys na obrázek ale na label.Vypadalo by to potom nějak takhle:
Private Sub Label1_clicck()

If Label50.Caption = "ko" Then
Image1.Visible = True
Image1.Picture = Image3.Picture
Label1.Caption = "ko"
Label1.Visible = False 'Jinak by byl stále zobrazen'
Label50.Caption = "kr"

End If

If Label50.Caption = "kr" Then
Image1.Visible = True
Image1.Picture = Image3.Picture
Label1.Caption = 1
Label1.Visible = False
Label50.Caption = "ko"
End If
End Sub

If Label3.Caption = "kr" And Label4.Caption = "kr" And Label5.Caption = "kr" And
Label6.Caption = "kr" And Label7.Caption = "kr" Or ......... Then
MsgBox "Vyhrali krizky", vBInforamtion + OKOnlyEnd If

Tz. Tokud by Label 50 obsahoval danou hodnout (v tomto případě výraz ko nebo kr) potom by se zviditelnilo pole Image1 do kterého by jsi nahrál Image3 a zároveň by se zneviditelnil nad ním Label1 s hodnotou, kterou testuješ potom v podmínce.

Nahlásit jako SPAM
IP: ...–
Carpe diem. (Horatius)
Jak se liší Windows a Tamagoči? Windows chcípnou, i když se o ně staráte.
Viete ako spoznáte závislosť na internete? Keď narazíte autom do zvodidiel, a prvé čo hľadáte je back.Vsetci mi hovoria, ze meno kocura sa ako heslo pre roota nehodi. :-( Ale ked ja som si tak privykol na mojho qzb!7kw_2et !
Michal0
Duch
2. 12. 2006   #11
-
0
-

Jo, ja si vlastne ani neuvedomil, ze by mi to testovalo jen po startu a pak uz ne. Tedka to zkusit nemuzu, protoze jsem v praci a tady VB nemam. Ale za chvili pujdu domu, takze to kdyztak zkusim. Zatim diky

Nahlásit jako SPAM
IP: ...–
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, 14 hostů

Podobná vlákna

Piškvorky — založil verunka.41

Piškvorky — založil cacnejka

Piskvorky v Pythonu — založil Pepa Rohlik

Piskvorky v dev-c++ — založil kamil

Java-piškvorky — založil Tpartl46

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ý