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

Pomoc oko slagalice (VBA)

[es] :: Office :: Excel :: Pomoc oko slagalice (VBA)

[ Pregleda: 10458 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

c0de
Aleksej Slobodnjikov
Pc Serviser
Moskow

Član broj: 190673
Poruke: 66
*.bratunac.zona.ba.



Profil

icon Pomoc oko slagalice (VBA)12.04.2009. u 12:40 - pre 183 meseci
Pravim slagalicu slova i potrebna mi je pomoc sledeca:


Kad se izvuku slova na formi (od kojih se treba sasjtaviti reč) u slucaju da upotrebim neko slovo koje nije izvuceno,treba da racunar izbaci NAG screen ("Ne mozete koristiti ovo slovo &slovo").

Bilo bi dobro kad bih moga,prilikom provjere da sva izvucena slova u TXT BOX koja sam koristio za sklapanje reči oboji pozadinu tog txt box-a.

Upload-ovo sam slagalicu,tj dokle sam ja uspjeo da napravim.Mozda se nekom nece svideti metoda RND slova koju sam ja koristio.Moze i ovako.

Do While (i <= 12)
i = i + 1
b = Int((25 * rnd) + 1)
Cells(i, 1) = Chr(b + 64)
Loop



AS
Prikačeni fajlovi
 
Odgovor na temu

Jpeca
Predrag Jovanović
poslovni analitičar
Gowi
Pančevo

Moderator
Član broj: 25683
Poruke: 2268
194.106.167.*

Sajt: www.gowi.rs


+109 Profil

icon Re: Pomoc oko slagalice (VBA)12.04.2009. u 17:24 - pre 183 meseci
Sigurno postoje različiti načini da se to uradi ali ja sam pokušao da iskombinujem proceduru koja će da označi iskorišćena slova i proceduru validacije, pa sam došao do sledećeg rešenja.
Uzmemo reč koja je unesena označimo je sa strT. Pretražujemo da li je slovo iz prvog tekst boxa sadržano u toj reči. Za to koristimo funkciiju InStr. Ukoliko je sadržano obojimo tekst box. Takođe eliminišemo pronađeno slovo iz reči strT, koristići pronađenu poziciju i funkcije Left i Right. Ustvari iz početne reči uzmeo deo levo od pronađenog slova i deo desno od pronađenog slova. Pređemo na sledeći tekst box.
Na kraju ukoliko je sve uredu strT treba da bude prazan string (dužine 0). Ukoliko je nešto preostalo u tom stringu znači da ta slova nisu postojala u zadatim slovima i ispisujemo poruku.
Evo kod koji treba dodati u modul provera ispred petlje For a=1 To 10
Code:

Dim strT As String
Dim i As Integer, pos As Integer

strT = Trim(UCase(slagalica.rec))
For i = 1 To 10   ' provereva od zadatih slova, slovo po slovo da li je korisceno
   pos = InStr(1, strT, UCase(slagalica.Controls("txt" & i).Text))
   If pos <> 0 Then
       strT = Left(strT, pos - 1) & Right(strT, Len(strT) - pos) ' Brise pronadjeno slovo iz reci
       slagalica.Controls("txt" & i).BackColor = RGB(255, 0, 0)  ' Ukoliko je koriljženo boji crveno
   End If
Next i

If Len(strT) > 0 Then 'Ukoliko je preostalo slova u reci ona nisu bila u zadatim slovima
   MsgBox ("Koriscena slova koja ne postoje: " & strT)
   GoTo kraj
End If

Nije to loše Rembrante, samo što ne bi dodao još malo boje?
 
Odgovor na temu

c0de
Aleksej Slobodnjikov
Pc Serviser
Moskow

Član broj: 190673
Poruke: 66
*.bratunac.zona.ba.



Profil

icon Re: Pomoc oko slagalice (VBA)13.04.2009. u 00:22 - pre 183 meseci
@Jpeca ovo je odlicno,bas kao sto sam i ja zamislio.

Primjetio si da imam Sheet "baza" i da se tu dodahz reči od A1 do A...n
Kako mogu da sortiram ove reči da idu ovako

Reči sa 2 slova
Reči sa 3 slova
Reči sa 4 slova
Reči sa n slova

Onda bih mogao da racunar izvuče najduzu reč u bazi (sastavljenu od izvucenih slova) tako sto bih krenuo sa proverom od najduze reči i kad nađe tu reč da je ispiše.


HVALA!
AS
 
Odgovor na temu

Jpeca
Predrag Jovanović
poslovni analitičar
Gowi
Pančevo

Moderator
Član broj: 25683
Poruke: 2268
*.bisinter.net.

Sajt: www.gowi.rs


+109 Profil

icon Re: Pomoc oko slagalice (VBA)13.04.2009. u 08:03 - pre 183 meseci
Što se tiče sortiranja po dužini to je jednostavno. Funkcija LEN određuje dužinu reči. Dodaj kolonu u bazi koja ima izračunava dužinu reči i sortiraj po toj koloni. Kad jednom izračunaš dužinu reči pretvori formule u vrednosti. Problem koji se javlja tom prilikom su diftozi u našoj latinici lj, nj, dž - Len će dati dužinu 2 za njih a treba 1. Moguće je izvršiti zamenu ovih znaka za x, q, w ili korišćenje ćirilice. U svakom slučaju algoritam koji sam ti ja dao za proveru nije dovoljno efikasan da se koristi za pronalaženje najduže reči u bazi. Ozbiljna baza morala bi da ima više od 50000 reči, pa je i upotreba Excela za ove svrhe diskutabilna.

U ovoj temi http://www.elitesecurity.org/t...napraviti-kviz-TV-SLAGALICA-VB već je Goran Vucicevic otkrio trik kako se u TV slagalici biraju slova - izabere se neka reč od 9 do 11 slova, dopune slučajnim slovima do 12 slova i onda slova izmešaju. U tom slučaju najduža reč je već poznata.
Potvrde da se koristi ovaj način u TV emisiji su sledeće:
1/ Prateći ovaj kviz nikad nisam video da je kompjuter izbacio reč kraću od 9 slova, što da je slučajni izbor slova trebalo bi da se desi (nisam računao statistiku koliko često, ali ovako na osnovu zdravog razuma)
2/ Dešava se (doduše retko) da korisnik ima dužu reč od kompjutera - to je moguće ako je dopuna slučajnim slovima takva da se može sastaviti duža reč od početne, slučajno određene reči



[Ovu poruku je menjao Jpeca dana 13.04.2009. u 10:34 GMT+1]
Nije to loše Rembrante, samo što ne bi dodao još malo boje?
 
Odgovor na temu

[es] :: Office :: Excel :: Pomoc oko slagalice (VBA)

[ Pregleda: 10458 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

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