From 4d5da751aec49267f999c38e9bdf38492ef0f995 Mon Sep 17 00:00:00 2001 From: pp Date: Thu, 7 Apr 2022 19:19:38 +0200 Subject: [PATCH] =?UTF-8?q?Oszt=C3=B3=20program=20k=C3=A9sz?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Oszto/Csomag.cs | 16 ++++++++++++++ Oszto/Jatekos.cs | 40 ++++++++++++++++++++++++++++++++++ Oszto/Kartyalap.cs | 1 + Oszto/Program.cs | 54 ++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 111 insertions(+) create mode 100644 Oszto/Jatekos.cs diff --git a/Oszto/Csomag.cs b/Oszto/Csomag.cs index 81f3acb..3756f21 100644 --- a/Oszto/Csomag.cs +++ b/Oszto/Csomag.cs @@ -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; + + } + } } diff --git a/Oszto/Jatekos.cs b/Oszto/Jatekos.cs new file mode 100644 index 0000000..715a5d3 --- /dev/null +++ b/Oszto/Jatekos.cs @@ -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(); + } + + } +} diff --git a/Oszto/Kartyalap.cs b/Oszto/Kartyalap.cs index f6c9120..297918e 100644 --- a/Oszto/Kartyalap.cs +++ b/Oszto/Kartyalap.cs @@ -9,6 +9,7 @@ namespace Oszto public string szin; public string ertek; + public Kartyalap() { szin = "nincs"; diff --git a/Oszto/Program.cs b/Oszto/Program.cs index c6b3768..e825ced 100644 --- a/Oszto/Program.cs +++ b/Oszto/Program.cs @@ -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 jatekosok = new List(); + 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); + + } } } }