Hirdetés
- Okosóra és okoskiegészítő topik
- Android alkalmazások - szoftver kibeszélő topik
- Apple iPhone 17 - alap
- Samsung Galaxy A52s 5G - jó S-tehetség
- Fotók, videók mobillal
- Vivo X300 Ultra - tárcsázz, ha van rá keret!
- iPhone topik
- Huawei Watch GT 6 és GT 6 Pro duplateszt
- VoLTE/VoWiFi
- Xiaomi 17 - még mindig tart
Ú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!
- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: Asszociációs játék. :)
- 5.1, 7.1 és gamer fejhallgatók
- Okosóra és okoskiegészítő topik
- sziku69: Szólánc.
- Android alkalmazások - szoftver kibeszélő topik
- OLED TV topic
- Kuponkunyeráló
- The Division 2 (PC, XO, PS4)
- Apple iPhone 17 - alap
- További aktív témák...
- Sony ZV-E10 + 16-50mm f/3.5-5.6 PZ OSS, 256gb
- RTX 5070 + i5-14600K 32Gb ram GAMER PC + 27 144Hz MONITOR AJÁNDÉK
- DJI FLIP FLY MORE COMBO RC2
- Dobozos Szinte Új HyperX Cloud Alpha Bolti ár:27k INGYEN FOXPOST
- Samsung Galaxy S25 Ultra - 256 GB - szürke (341) újszerű, 10000 Ft kiegészítő ajándék, Garancia
- GYÖNYÖRŰ iPhone 14 Pro 128GB Deep Purple -1 ÉV GARANCIA - Kártyafüggetlen, MS4574
- Telefon felvásárlás!! Apple iPhone 16, Apple iPhone 16e, Apple iPhone 16 Plus, Apple iPhone 16 Pro
- Eredeti Lenovo 300W töltők - ADL300SDC3A
- Új Acer Nitro V15 FHD IPS 144Hz Ryzen7 7735HS 16GB DDR5 512GB SSD Nvidia RTX 4060 8GB Win11 Garancia
- RAPOO 7100P 1000DPI optikai rádiós 5GHz egér
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest


)
