Ú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
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Sony MILC fényképezőgépcsalád
- Amazfit Bip 6 - jót olcsón
- Android alkalmazások - szoftver kibeszélő topik
- NVIDIA GeForce RTX 5070 / 5070 Ti (GB205 / 203)
- Milyen processzort vegyek?
- Lakáshitel, lakásvásárlás
- Formula-1
- Milyen billentyűzetet vegyek?
- Battlefield 6
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- További aktív témák...
- GYÖNYÖRŰ iPhone XR 64GB Black-1 ÉV GARANCIA - Kártyafüggetlen, MS3994, 100% Akkumulátor
- Xiaomi Smart Band 8, Újszerű, 1 Év Garanciával
- BESZÁMÍTÁS! Gigabyte Z170X-Ultra Gaming Z170 chipset alaplap garanciával hibátlan működéssel
- Garmin Forerunner 405 GPS óra
- ÁRGARANCIA!Épített KomPhone i5 14400F 16/32/64GB RAM RX 9060 XT 16GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopműhely Bt.
Város: Budapest


)
