Kezdőoldal » Számítástechnika » Programozás » C# segítség? többi lent.

C# segítség? többi lent.

Figyelt kérdés

Szeretnék csinálni egy random szám generátort, olyat,mint pl egy lottószám generátor, minden szelvényhez külön generál adott mennyiségű számot 5ös lottónál 1-45ig 5db számot, stb... megmondja, azt is, hogy legyen jocker, vagy nem!


Segítsetek nekem légyszives fontos lenne.


Köszönöm előre is a segítségeket, eddig jutottam, csak az alapokat ismerem, éppen tanulom a c# nyelvet, szóval légyszi ha lehet egyszerűen, hogy én is értsem még1x köszi: itt az eddigi megoldásom, de vmiért nem működik teljesen...


Tessék:


using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;


namespace Lottó

{

class Program

{

static void Main(string[] args)

{

Console.WriteLine("Üdvözöllek kedves felhasználó!");

Console.WriteLine("Ez a program lottó számokat generál.");

Console.WriteLine("A következő lottókhoz:");

Console.WriteLine("1: 5-ös lottó");

Console.WriteLine("2: 6-os lottó");

Console.WriteLine("3: Skandináv (7-es) lottó");

Console.WriteLine("4: Joker");

Console.WriteLine("5: Luxor");

Console.WriteLine("6: Kenó");

Console.WriteLine("7: Puttó");

Console.Write("Kérlek válaszd ki, hogy melyik lottó típushoz sorsolnál számot: ");

int l, m;

string tl;

l = Convert.ToInt32(Console.ReadLine());

tl = "o";

int s1, s2, s3, s4, s5;

switch (l)

{

case 1: tl = "5-ös Lottó"; break;

case 2: tl = "6-os lottó"; break;

case 3: tl = "Skandináv (7-es) lottó"; break;

case 4: tl = "Joker"; break;

case 5: tl = "Luxor"; break;

case 6: tl = "Kenó"; break;

case 7: tl = "Puttó"; break;

}


if (l < 8)

{

Console.WriteLine("Az általad választott lottó típus sorszáma: {0} és neve: {1}.", l, tl);

m = 1;

switch (m)

{

case 1:

Random vsz = new Random();

s1 = vsz.Next(1, 46);

s2 = vsz.Next(1, 46);

s3 = vsz.Next(1, 46);

s4 = vsz.Next(1, 46);

s5 = vsz.Next(1, 46);


if ((s1 == s2) && (s1 == s3) && (s1 == s4) && (s1 == s5) && (s2 == s3) && (s2 == s4) && (s2 == s5) && (s3 = s4) && (s3 == s5) && (s4 == s5))

{

Random vsz = new Random();

s1 = vsz.Next(1, 46);

s2 = vsz.Next(1, 46);

s3 = vsz.Next(1, 46);

s4 = vsz.Next(1, 46);

s5 = vsz.Next(1, 46);

Console.WriteLine ("A számok: A kiválasztott lottó neve: {0}, és a nyerőszámok: {1}, {2}, {3}, {4}, {5}", tl, s1, s2, s3, s4, s5);

}

else

{Console.WriteLine ("A számok: A kiválasztott lottó neve: {0}, és a nyerőszámok: {1}, {2}, {3}, {4}, {5}", tl, s1, s2, s3, s4, s5);}

}


{

Console.Write("Az általad választott számú lottó nem létezik! Kérlek indítsd újra a programot, és írj be egy számot a fennti listából!");

}



Console.ReadKey();

}

}

}

}



2014. dec. 3. 22:24
1 2
 11/16 anonim ***** válasza:

Szerintem itt az ideje abbahagynod ezt a vergődést, nagyon kezdő vagy még ehhez a feladathoz.

Próbáld meg egy kicsit később.

2014. dec. 3. 23:34
Hasznos számodra ez a válasz?
 12/16 anonim ***** válasza:

Egyetértek előttem szólóval. A hibák teljesen egyértelműek. Mindenesetre itt egy egyszerűbb megoldás. Annyi, hogy nincs benne védelem az azonos számok ellen, meg némileg kevesebb funkciója van, viszont a tiednél átláthatóbb.


using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;


namespace Lotto

{

class Program

{

static List<int> számok = new List<int>();

static void Main(string[] args)

{

Console.WriteLine("1: 5-os lotto");

Console.WriteLine("2: 6-os lotto");

var input = Console.ReadLine();

if (input == "1") Ötös();

else if (input == "2") Hatos();


for (int i = 0; i < számok.Count; i++) Console.WriteLine(számok[i].ToString());


Console.ReadKey();

}


static void Ötös()

{

Random rand = new Random();

for (int i = 0; i < 5; i++) számok.Add(rand.Next(1, 46));

}


static void Hatos()

{

Random rand = new Random();

for (int i = 0; i < 6; i++) számok.Add(rand.Next(1, 40));

}

}

}

2014. dec. 3. 23:51
Hasznos számodra ez a válasz?
 13/16 anonim ***** válasza:

Én ezt alapból másként csinálnám.


Először is, bevezetnék egy közös interfészt, ami kb. ennyi:

interface ILottoGenerator {

public IEnumerable<int> GetLottoSzamok();

}


Ezt az interfészt valósítaná meg a többi osztályom:

class OtosLottoGenerator : ILottoGenerator {...}

class HatosLottoGenerator : ILottoGenerator {...}


Majd a főprogramban:

public static void Main(string[] args) {

ILottoGenerator Generator;

//beolvasod, mit választott a felhasználó

switch (Felhasználó választása) {

case Ötöslottó:

Generator = new OtosLottoGenerator();

break;

...

}

IEnumerable<int> LottoSzamok = Generator.GetLottoSzamok();

}


Egy-egy ilyen generátort úgy csinálnék meg, hogy pl. ötöslottó esetében csinálok egy listát, amit összekeverek, és az első öt elemét visszaadom:

public IEnumerable<int> GetLottoSzamok() {

IEnumerable<int> Szamok = Enumerable.Range(1, 90);

//Összekeverés

for (int i = 0; i < 5; i++) {

yield return Szamok.ElementAt(i);

}

}

2014. dec. 4. 09:14
Hasznos számodra ez a válasz?
 14/16 anonim ***** válasza:

Én mondjuk nem értem minek kellene ötös és hatoslottó generátornak külön osztály.

1 db általános osztály bőven elég, aminek paraméterként adjuk át, hogy hány számot kell generálni és, hogy mennyiből.

GenerateLottery(90, 5);

GenerateLottery(45, 6);

2014. dec. 4. 09:21
Hasznos számodra ez a válasz?
 15/16 anonim ***** válasza:

Az objektum orientált programozás egy picit korai egy kezdőnek, aki még a struktúrális programozást sem érti.

Én azt nem értem, a függvényeket miért később tanítják? Nem olyan ördöngősség az :)

2014. dec. 4. 19:20
Hasznos számodra ez a válasz?
 16/16 SimkoL ***** válasza:
Régebben Pascal-ban írtam egy 5,6 és 7-es lottóhoz egy szösszenetet. Borzalmasan széttagoltam és nagyon alapok - oktató jelleggel - javaslom nézd meg: [link] beszédes függvény és eljárásneveket írtam, úgy hogy érthető a program logikája.
2014. dec. 4. 20:04
Hasznos számodra ez a válasz?
1 2

További kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!