- iPhone topik
- Android alkalmazások - szoftver kibeszélő topik
- Telekom mobilszolgáltatások
- Nubia Red Magic 10S Pro - újratöltve
- Samsung Galaxy A54 - türelemjáték
- Honor 200 Pro - mobilportré
- Android szakmai topik
- Minden a BlackBerry telefonokról és rendszerről
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Milyen okostelefont vegyek?
Hirdetés
Új hozzászólás Aktív témák
-
biigi
tag
válasz
atti1848 #3264 üzenetére
Amennyiben adatokat csak a játék indítása előtt vársz, akkor a legtisztább megoldás ha a játékForm construktorába paraméterként megadod a formról az adatokat.
Ha játék során is szeretnél adatokat kapni akkor a játékform osztályban minden adathoz létre kell hozni Propertiket és azok változásaira reagálnék (set).
Nem biztos hogy ez a legjobb módszer de én így csinálnám. -
Jhonny06
veterán
válasz
atti1848 #3200 üzenetére
Dobhat, mert gyakorlatilag az idő függvényében generálódnak a számok, így minél kisebb az értéktartomány, annál valószínűbb, hogy lesz több ugyanolyan elem is. Ha késleltetés nélkül fut, akkor meg pláne, hiszen nincs idő nagyobb tartományban generálni, ezért érdemes.
Viszont a késleltetés megtétele után még mindig ott van a Te megoldásod, miszerint ellenőrizheted, hogy nincs-e két ugyanolyan érték a tömbben, egy egymásba ágyazott for ciklussal. Azért ajánlottam előbb a késleltetést, mert ha kicsi az értéktartomány és kvázi majdnem mindig hasonló értéket generál a kód, akkor szépen "végtelen" (persze nem teljesen) ciklus jön létre, mert ugye kap a tömb egy számot és összehasonlítja az következővel, ami ugyanaz, meg újra ugyanaz, stb. és csak akkor csinál valamit, ha a két szám nem egyezik meg, tehát ezzel nem árt vigyázni.
Szóval az a legjobb megoldás, ha először ellenőrzöd, hogy nincs-e benne már, majd generálsz és késleltetsz.
for (int i = 0; i < szamok.Length; i++)
{
for(int j = 0; j < szamok.Length; j++)
{
if(szamok[i] != szamok[j])
{
szamok[i] = rnd.Next(1, 90);
Thread.Sleep(100);
}
}
} -
Jhonny06
veterán
válasz
atti1848 #3197 üzenetére
Nem árt késleltetni egy kicsit:
Thread.Sleep(1000);
A paramétert ezredmásodpercben kell megadni, azaz a fenti kód 1 másodperccel fogja késleltetni, de ez sok a program futásakor, azaz olyan 10-100 közötti érték már ideális. Túl gyorsan generálódnak az értékek.
Ilyesmit is lehet:
using System;
using System.Threading;
public static class RandomHelper
{
private static int seedCounter = new Random().Next();
[ThreadStatic]
private static Random rng;
public static Random Instance
{
get
{
if (rng == null)
{
int seed = Interlocked.Increment(ref seedCounter);
rng = new Random(seed);
}
return rng;
}
}
}Amúgy a dupla for ciklusnak semmi értelme, mert pont akkor nem tesz bele értéket, amikor nem egyenlő egy másik számmal és neked pont akkor kéne, amikor nem egyenlő. Így akkor tesz bele, amikor egyenlő.
Ennyi az egész:
Random rnd = new Random();
int[] szamok = new Int32[5];
for (int i = 0; i < szamok.Length; i++)
{
szamok[i] = rnd.Next(1, 90);
Thread.Sleep(100);
}
for (int i = 0; i < szamok.Length; i++)
Console.WriteLine(szamok[i]);System.Threading-et using-olni kell természetesen.
-
ArchElf
addikt
válasz
atti1848 #2907 üzenetére
Ha ezt egy kicssit továbbfejleszted úgy hogy a képek nem látszanak alapból és a buttonok helyett checkboxot használsz button formában gyakorlatilag memóriajátékot csinálsz - szerintem ez már elég lehet a kettesért. De ha már ötletek - tag mezőbe ne magát a képet rakd be, hanem csinálj egy List<Image> - et, amiből csak az indexet teszed bele a Tag-be. Jobban is néz ki, és szerintem jobban is értékeli a tanerő.
Tipp: esemény kezelésnél ne buttononként generálj kezelő eseményt, hanem csak egyet csinálj, ami az összes button eseményét lekezeli. Bár jobban belegondolva szerintem már neked is eszedbe jutott, amikor kipattant az ötlet
AE
Új hozzászólás Aktív témák
Hirdetés
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- iPhone topik
- Milyen processzort vegyek?
- Samsung Galaxy Felhasználók OFF topicja
- sziku69: Fűzzük össze a szavakat :)
- Újabb videón a Mafia: The Old Country
- Luck Dragon: Asszociációs játék. :)
- Kerékpárosok, bringások ide!
- Android alkalmazások - szoftver kibeszélő topik
- Geri Bátyó: Megint tahó voltam – SZEMÉLYISÉGFEJLŐDÉS
- Kutya topik
- További aktív témák...
- Surface Laptop 7 Business edition - Intel Core ultra 5 236V energiahatékonyabb az intelnél! -olvass
- Acer TravelMate P214 i3-1115G4 12GB 512GB 14" FHD 1év garancia
- LG 49SE3KE-B 49" Full HD LED monitor
- Samsung Galaxy A52s 128GB, Kártyafüggetlen, 1 Év Garanciával
- Szép állapotban levő Apple iPhone 12 Pro Max 128GB / 12 hó jótállás
Állásajánlatok
Cég: FOTC
Város: Budapest