Forum » Programiranje » C# domača naloga
C# domača naloga
gapoking ::
Pozdravljeni! Jaz bi pa rabil eno pomoč pri nalogi v C#.
Proučite pravila igre s kartami "Poker".
Izdelajte program, ki bo znal določiti, katero igro ima igralec v roki (par, dva para, …, barvna lestvica, …): uporabnik vnese informacijo o petih kartah in program izpiše kakšno kombinacijo kart imamo.
Za predstavitev barve in vrednosti kart morajo biti uporabljene ustrezne strukture podatkov.
Trenutno imam takole ampak rabim vsaj 3 podprograme. Prosim a pomoč
Proučite pravila igre s kartami "Poker".
Izdelajte program, ki bo znal določiti, katero igro ima igralec v roki (par, dva para, …, barvna lestvica, …): uporabnik vnese informacijo o petih kartah in program izpiše kakšno kombinacijo kart imamo.
Za predstavitev barve in vrednosti kart morajo biti uporabljene ustrezne strukture podatkov.
Trenutno imam takole ampak rabim vsaj 3 podprograme. Prosim a pomoč
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Poker { class Program { static void Main(string[] args) { string[] barve = { "S", "K", "A", "P" }; //S-srce, K-križ, A-kara, P-pik string[] karta = { "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A" }; int[,] kup = new int[4, 13]; int[] columnSum = new int[13]; int[] rowSum = new int[4]; var line = Console.ReadLine(); var karte = line.Split(','); if (karte.Length != 5) { Console.WriteLine("Vnesite 5 kart"); Console.ReadLine(); return; } foreach (string card in karte) { if (card.Length < 2) { Console.WriteLine("Narobni format karte"); Console.ReadLine(); return; } string colour = card.Substring(0, 1); string value = card.Substring(1, card.Length - 1); int rowIndex = Array.IndexOf(barve, colour); int colIndex = Array.IndexOf(karta, value); if (rowIndex < 0 || colIndex < 0) { Console.WriteLine("Narobna karta"); Console.ReadLine(); return; } kup[rowIndex, colIndex] = 1; } for (int i = 0; i < kup.GetLength(0); i++) { for (int j = 0; j < kup.GetLength(1); j++) { columnSum[j] += kup[i, j]; rowSum[i] += kup[i, j]; } } int par = columnSum.Where(x => x == 2).Count(); int tris = columnSum.Where(x => x == 3).Count(); int poker = columnSum.Where(x => x == 4).Count(); bool barva = rowSum.Where(x => x == 5).Count() == 1; int straightSum = 0; bool lestvica = false; bool kraljeva = false; for (int i = -1; i < columnSum.GetLength(0); i++) { int value = i == -1 ? columnSum.Last() : columnSum[i]; value = value != 0 ? value : -1; straightSum = Math.Max(straightSum + value, 0); if (straightSum == 5) { lestvica = true; if (i == columnSum.GetLength(0) - 1) { kraljeva = true; } } } if (poker != 0) { Console.WriteLine("Poker"); } else if (tris != 0 && par != 0) { Console.WriteLine("Full house"); } else if (tris != 0) { Console.WriteLine("Tris"); } else if (par == 2) { Console.WriteLine("Dva para"); } else if (par == 1) { Console.WriteLine("En par"); } else if (kraljeva && lestvica && barva) { Console.WriteLine("Kraljeva lestvica"); } else if (lestvica && barva) { Console.WriteLine("Barvna lestvica"); } else if (barva) { Console.WriteLine("Barva"); } else if (lestvica) { Console.WriteLine("Lestvica"); } else { Console.WriteLine("Ni kombinacije"); } Console.ReadLine(); } } }
- spremenil: bluefish ()
Golaz ::
"Za predstavitev barve in vrednosti kart morajo biti uporabljene ustrezne strukture podatkov."
Razrede in strukture ste že jemali? Potem moraš verjetno narediti nek razred Karta in eno strukturo znotraj razreda npr. Barva. Nek drug razred, ki bo vseboval katere karte so na mizi, in spet en razred ki bo vseboval katere karte ima igralec v roki.
Razrede in strukture ste že jemali? Potem moraš verjetno narediti nek razred Karta in eno strukturo znotraj razreda npr. Barva. Nek drug razred, ki bo vseboval katere karte so na mizi, in spet en razred ki bo vseboval katere karte ima igralec v roki.
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | C# program za pretvorbo v desetiško število z rekurzijoOddelek: Programiranje | 1479 (1202) | MrStein |
» | [C#] Domača naloga - osnoveOddelek: Programiranje | 2498 (1715) | 11tomi12 |
» | [C#] Kopiranje osebe iz seznama v drug seznamOddelek: Programiranje | 1491 (1352) | Presidente |
⊘ | [C#]polje znakovOddelek: Programiranje | 2371 (2199) | Ziga Dolhar |
» | Pomoč pri programčkihOddelek: Programiranje | 2921 (2571) | Mitja Bonča |