Osztó program kész

This commit is contained in:
István Priskin 2022-04-07 19:19:38 +02:00
parent 4dc6e06c8d
commit 4d5da751ae
4 changed files with 111 additions and 0 deletions

View File

@ -2,6 +2,7 @@
using System.Collections.Generic;
using System.Text;
namespace Oszto
{
class Csomag
@ -10,11 +11,13 @@ namespace Oszto
public static readonly string[] frertekek = { "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "D", "K", "A" };
public Kartyalap[] lapok;
private int ennyivan;
public Csomag()
{
lapok = new Kartyalap[52];
ennyivan = 52;
int lit = 0;
for (int i = 0; i < frszinek.Length; i++)
{
@ -52,6 +55,19 @@ namespace Oszto
}
}
public Kartyalap[] huzas(int lapszam)
{
Kartyalap[] kt = new Kartyalap[lapszam];
for (int i = 0; i < lapszam; i++)
{
kt[i] = lapok[ennyivan - (1 + i)];
lapok[ennyivan - (1 + i)] = null;
}
ennyivan -= lapszam;
return kt;
}
}
}

40
Oszto/Jatekos.cs Normal file
View File

@ -0,0 +1,40 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace Oszto
{
class Jatekos
{
public Kartyalap[] lapok;
public string nev;
private int ennyivan;
public Jatekos(string nev,int lszam)
{
this.nev = nev;
lapok = new Kartyalap[lszam];
ennyivan = 0;
}
public void felvesz(Kartyalap[] osztas)
{
for (int i = 0; i < osztas.Length; i++)
{
lapok[ennyivan + i] = osztas[i];
}
ennyivan += osztas.Length;
}
public void terit()
{
Console.WriteLine(nev);
foreach (Kartyalap lap in lapok)
{
Console.Write(lap.szin+"-"+lap.ertek+" ");
}
Console.WriteLine();
}
}
}

View File

@ -9,6 +9,7 @@ namespace Oszto
public string szin;
public string ertek;
public Kartyalap()
{
szin = "nincs";

View File

@ -1,4 +1,5 @@
using System;
using System.Collections.Generic;
namespace Oszto
{
@ -8,6 +9,59 @@ namespace Oszto
{
Csomag pakli = new Csomag();
pakli.kever();
try
{
Console.WriteLine("Adja meg hány játékosnak osztok lapot:");
int jszam = int.Parse(Console.ReadLine());
Console.WriteLine("Adja meg hány lapot osztok egy játékosnak:");
int lszam = int.Parse(Console.ReadLine());
Console.WriteLine("Adja meg hányasával osszam a lapokat:");
int hszam = int.Parse(Console.ReadLine());
if (jszam*lszam>52)
{
throw new Exception("Nem lehet ennyi lapot kiosztani!");
}
if(lszam%hszam!=0)
{
throw new Exception("Nem lehet ilyen adagokban kiosztani lapokat!");
}
List<Jatekos> jatekosok = new List<Jatekos>();
for (int i = 0; i < jszam; i++)
{
jatekosok.Add(new Jatekos("játékos" + i,lszam));
}
//az osztás végrehajtása
int kor = lszam / hszam;
for (int i = 0; i < kor; i++)
{
for (int j = 0; j < jatekosok.Count; j++)
{
Kartyalap[] adag = pakli.huzas(hszam);
jatekosok[j].felvesz(adag);
}
}
for (int j = 0; j < jatekosok.Count; j++)
{
jatekosok[j].terit();
}
foreach (var item in pakli.lapok)
{
Console.WriteLine(item);
}
}
catch (Exception hiba)
{
Console.WriteLine(hiba.Message);
}
}
}
}