Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

VB.NET kao hobi - Tablica Mnozenja kao igra

[es] :: .NET :: .NET Desktop razvoj :: VB.NET kao hobi - Tablica Mnozenja kao igra

[ Pregleda: 950 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

makisiki

Član broj: 232860
Poruke: 76



+14 Profil

icon VB.NET kao hobi - Tablica Mnozenja kao igra19.06.2021. u 06:22 - pre 33 meseci
(tekst sam kopirao da ne kucam dva puta)

Kao prvo da se odma naglasi da ce ovo sto radim (ako se zavrsi) biti FREE - nema naplacivanja nema zarade!

Za pozadinu igre sam izabrao majmune iz razloga jer su zanimljivi i smesni ("majmunska posla") i lako prihvatljivi kao likovi za najmladju populaciju. U igri ima par smesnih situacija ... u jednom od zadataka se za tacan odgovor dobijaju banane i nakon odredjenog broja se pakuju u korpu koja se dalje koristi za neke druge stvari ... itd itd da sad ne otkrivam cega sve ima. Znam da igre ovakvog tipa danas skoro niko i ne primecuje ali bi tebalo malo da se odmori od pucacina i horora!

Ovako sam ja krenuo sa igrom - sto uopste ne mora da znaci da ce tako i da bude na kraju. Kompletna prica moze da se promeni - od praistorije pa sve do svemirskih brodova. Jedina bitna stvar je da su zadaci vezani za tablicu mnozenja.

I kao sto rekose da slike i zvukovi koji su free download ustvari i nisu free za dalju distribuciju - da ne dodje do nekih komplikacija sa vlasnickim pravima - najbolje je da se sve to odradi "svojerucno".

Tako da ... ako je neko zainteresovan, ima viska slobodnog vremena i raspolozen da radi graficki deo igre i da privedemo kraju ovaj projekat ... dobrodosli ...

I jos jednom da napomenem - Od Para Nema Nista! :)

Koga zanima da vidi o cemu se radi - moze da pogleda ovde: https://tablicamnozenja.zyrosite.com/
 
Odgovor na temu

makisiki

Član broj: 232860
Poruke: 76



+14 Profil

icon Re: VB.NET kao hobi - Tablica Mnozenja kao igra19.06.2021. u 06:38 - pre 33 meseci
Trenutno radim na "ulepsavanju kodova" i skracujem tamo gde moze (koliko je u mojim sposobnostima) da se skrati, pa imam par pitanja ...

4 Labela sa fiksnim brojevima (ne random) velicine label.width=100 su poredjani u red jedan pored drugog. Label1.tekst=1, label2.text=2, label3.text=3 i label4.text=4.
Sve sto treba da rade je da na odredjenu komandu menjaju mesta ("random pozicija")


Code:
Module Module3
Public Sub Pozicija1()
Form1.Label2.Left = 60
Form1.Label3.Left = 165
Form1.Label4.Left = 265
Form1.Label5.Left = 365
End Sub
Public Sub Pozicija2()
Form1.Label2.Left = 60
Form1.Label3.Left = 165
Form1.Label4.Left = 365
Form1.Label5.Left = 265
End Sub
Public Sub Pozicija3()
Form1.Label2.Left = 60
Form1.Label3.Left = 265
Form1.Label4.Left = 165
Form1.Label5.Left = 365
End Sub
Public Sub Pozicija4()
Form1.Label2.Left = 60
Form1.Label3.Left = 265
Form1.Label4.Left = 365
Form1.Label5.Left = 165
End Sub
Public Sub Pozicija5()
Form1.Label2.Left = 60
Form1.Label3.Left = 365
Form1.Label4.Left = 165
Form1.Label5.Left = 265
End Sub
Public Sub Pozicija6()
Form1.Label2.Left = 60
Form1.Label3.Left = 365
Form1.Label4.Left = 265
Form1.Label5.Left = 165
End Sub
Public Sub Pozicija7()
Form1.Label2.Left = 165
Form1.Label3.Left = 60
Form1.Label4.Left = 265
Form1.Label5.Left = 365
End Sub
Public Sub Pozicija8()
Form1.Label2.Left = 165
Form1.Label3.Left = 60
Form1.Label4.Left = 365
Form1.Label5.Left = 265
End Sub
Public Sub Pozicija9()
Form1.Label2.Left = 165
Form1.Label3.Left = 265
Form1.Label4.Left = 60
Form1.Label5.Left = 365
End Sub
Public Sub Pozicija10()
Form1.Label2.Left = 165
Form1.Label3.Left = 265
Form1.Label4.Left = 365
Form1.Label5.Left = 60
End Sub
Public Sub Pozicija11()
Form1.Label2.Left = 165
Form1.Label3.Left = 365
Form1.Label4.Left = 60
Form1.Label5.Left = 265
End Sub
Public Sub Pozicija12()
Form1.Label2.Left = 165
Form1.Label3.Left = 365
Form1.Label4.Left = 265
Form1.Label5.Left = 60
End Sub
Public Sub Pozicija13()
Form1.Label2.Left = 265
Form1.Label3.Left = 60
Form1.Label4.Left = 165
Form1.Label5.Left = 365
End Sub
Public Sub Pozicija14()
Form1.Label2.Left = 265
Form1.Label3.Left = 60
Form1.Label4.Left = 365
Form1.Label5.Left = 165
End Sub
Public Sub Pozicija15()
Form1.Label2.Left = 265
Form1.Label3.Left = 165
Form1.Label4.Left = 60
Form1.Label5.Left = 365
End Sub
Public Sub Pozicija16()
Form1.Label2.Left = 265
Form1.Label3.Left = 165
Form1.Label4.Left = 365
Form1.Label5.Left = 60
End Sub
Public Sub Pozicija17()
Form1.Label2.Left = 265
Form1.Label3.Left = 365
Form1.Label4.Left = 60
Form1.Label5.Left = 165
End Sub
Public Sub Pozicija18()
Form1.Label2.Left = 265
Form1.Label3.Left = 365
Form1.Label4.Left = 165
Form1.Label5.Left = 60
End Sub
Public Sub Pozicija19()
Form1.Label2.Left = 365
Form1.Label3.Left = 60
Form1.Label4.Left = 165
Form1.Label5.Left = 265
End Sub
Public Sub Pozicija20()
Form1.Label2.Left = 365
Form1.Label3.Left = 60
Form1.Label4.Left = 265
Form1.Label5.Left = 165
End Sub
Public Sub Pozicija21()
Form1.Label2.Left = 365
Form1.Label3.Left = 165
Form1.Label4.Left = 60
Form1.Label5.Left = 265
End Sub
Public Sub Pozicija22()
Form1.Label2.Left = 365
Form1.Label3.Left = 165
Form1.Label4.Left = 265
Form1.Label5.Left = 60
End Sub
Public Sub Pozicija23()
Form1.Label2.Left = 365
Form1.Label3.Left = 265
Form1.Label4.Left = 60
Form1.Label5.Left = 165
End Sub
Public Sub Pozicija24()
Form1.Label2.Left = 365
Form1.Label3.Left = 265
Form1.Label4.Left = 165
Form1.Label5.Left = 60
End Sub
Public Sub PozicijaRnd()
Dim rnd As New Random
Dim Pozicija As Integer = rnd.Next(1, 25)
Select Case Pozicija
Case 1
Pozicija1()
Case 2
Pozicija2()
Case 3
Pozicija3()
Case 4
Pozicija4()
Case 5
Pozicija5()
Case 6
Pozicija6()
Case 7
Pozicija7()
Case 8
Pozicija8()
Case 9
Pozicija9()
Case 10
Pozicija10()
Case 11
Pozicija11()
Case 12
Pozicija12()
Case 13
Pozicija13()
Case 14
Pozicija14()
Case 15
Pozicija15()
Case 16
Pozicija16()
Case 17
Pozicija17()
Case 18
Pozicija18()
Case 19
Pozicija19()
Case 20
Pozicija20()
Case 21
Pozicija21()
Case 22
Pozicija22()
Case 23
Pozicija23()
Case 24
Pozicija24()
End Select
End Sub
End Module


Ovo sto sam uradio radi kako treba, samo me zanima moze li to da se napise na neki "lepsi" i kraci nacin

Pozdrav.
 
Odgovor na temu

S A J A
Beograd

Član broj: 226539
Poruke: 1904
*.static.sbb.rs.



+421 Profil

icon Re: VB.NET kao hobi - Tablica Mnozenja kao igra19.06.2021. u 10:20 - pre 33 meseci
Ćao,

Probaj da pretvoriš one koordinate u jedan niz i da imaš jednu funkciju pozicija(), ovako otprilike:

Code:
poz = [
    [60,165,265,365],
    [165,60,265,365],
    [165,365,265,60],
    [265,165,60,365],
    ...
]

pozicija() {
    index = rnd.Next(1, 25)
    Form1.Label2.Left = poz[index][0]
    Form1.Label3.Left = poz[index][1]
    Form1.Label4.Left = poz[index][2]
    Form1.Label5.Left = poz[index][3]
}



kad treba da se promeni pozicija, samo pozoveš funkciju.

Ovo gore nije vb.net sintaksa, ne mogu da se setim kako tačno ide ali bitna je poenta.
 
Odgovor na temu

dusans
Stojanov Dušan
Pančevo

Član broj: 9551
Poruke: 1343
*.dynamic.sbb.rs.



+311 Profil

icon Re: VB.NET kao hobi - Tablica Mnozenja kao igra19.06.2021. u 10:50 - pre 33 meseci
Još bolje, možeš da napraviš random permutaciju niza koji predstavlja indekse labela (0, 1, 2, 3):
https://stackoverflow.com/a/110570/461810

Onda labele staviš u niz i menjaš im pozicije na osnovu permutacije indeksa,
ovako nekako (isto nije vb.net sintaksa, pseudo-kod čisto radi ideje):

Code:

labels = [
    Label2,
    Label3,
    Label4,
    Label5
]

pozicija() {
    indexes = [0, 1, 2, 3].Shuffle() // Vraća random permutaciju niza
    labels[indexes[0]] = 60
    labels[indexes[1]] = 165
    labels[indexes[2]] = 265
    labels[indexes[3]] = 365
}

 
Odgovor na temu

makisiki

Član broj: 232860
Poruke: 76



+14 Profil

icon Re: VB.NET kao hobi - Tablica Mnozenja kao igra20.06.2021. u 05:08 - pre 33 meseci
Hvala za odlicnu ideju ...

Shuffle nisam uspeo da pokrenem ...
https://www.programmingnotes.o...ize-an-array-list-ienumerable/

Imports Utils, Imports System, Option Strict On, Option Explicit On, premestaj Shuffle tamo-vamo-gore-dole i nece pa nece - ne znam gde gresim
Radim na Windows 10 Home 64bit, Visual Studio 2019, NET Framework 3.5 (mozda ima neke veze)

U svakom slucaju trenutno je ovako odradjeno sa ovom Randomise funkcijom i radi odlicno

Code:
 Public Function Randomise(Of T)(ByVal source As IEnumerable(Of T)) As IEnumerable(Of T)
        Dim rng As New Random
        Return From item In source
               Order By rng.Next()
               Select item
    End Function

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

        Dim labels = {Label1, Label2, Label3, Label4}
        Dim pozicija = {0, 1, 2, 3}

        pozicija = Randomise(pozicija).ToArray()

        labels(pozicija(0)).Left = 100
        labels(pozicija(1)).Left = 150
        labels(pozicija(2)).Left = 200
        labels(pozicija(3)).Left = 250

    End Sub


Jos jednom zahvaljujem na odlicnoj ideji :)

Pozdrav.
 
Odgovor na temu

makisiki

Član broj: 232860
Poruke: 76



+14 Profil

icon Re: VB.NET kao hobi - Tablica Mnozenja kao igra29.12.2021. u 04:35 - pre 27 meseci

... polako zavrsavam ovo sto sam zapoceo ...

- na formi je poredjano 11 slika i 20 labela (jedna slika je pozadina)
- svaka slika i label imaju svoju fiksnu (x,y) poziciju na formi i svaki label ima svoju vrednost


U toku zadatka sve se okrece "naopacke" za 180 stepeni i onda kao nesto padaju brojevi itd ...


Ja sam to nekako odradio ali sam ga bas naguzvao - svaki label i sliku rotiram i pomeram rucno jedno po jedno ...


Rotiranje labela:

e.Graphics.TranslateTransform(CSng(Label1.Width / 2), CSng(Label1.Height / 2))
e.Graphics.RotateTransform(180)
e.Graphics.DrawString("test", Label1.Font, Brushes.Black, New Point(0, 0))



Postoji li neko lakse resenje ... neka ideja da se kod malo smanji ...

ili nesto najlakse ako moze "rotate Form za 180 stepeni" ?
 
Odgovor na temu

[es] :: .NET :: .NET Desktop razvoj :: VB.NET kao hobi - Tablica Mnozenja kao igra

[ Pregleda: 950 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.