Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Drawing;
- namespace teste
- {
- class Program
- {
- public class Baralho
- {
- public List<Carta> Cartas { get; set; } //UM BARALHO CONTÉM UMA LISTA DE CARTAS
- }
- public class Carta //UMA CARTA CONTEM UM NÚMERO E UMA COR
- {
- public int Numero { get; set; }
- public Naipes Naipe { get; set; }
- }
- public class Naipes // UM NAIPE CONTÉM UM NOME E UMA COR
- {
- public string Naipe { get; set; }
- public Color Cor { get; set; }
- }
- static void Main(string[] args)
- {
- Baralho _baralho = new Baralho(); //CRIO UM NOVO BARALHO VAZIO
- int count = 0;
- _baralho.Cartas = new List<Carta>(); //CRIO UMA NOVA LISTA DE CARTAS VAZIA
- for (int i = 1; i < 15; i++)
- {
- if (count>3) //SE JA ADICIONEI OS 4 NAIPES, SAIDO DO FOR
- {
- continue;
- }
- if (i==14) //PARA TROCAR DE NAIPE
- {
- count++;
- i = 1;
- }
- Carta _carta = new Carta(); //CRIO UMA NOVA CARTA
- Naipes _naipe = new Naipes(); //CRIO UM NOVO NAIPE
- _carta.Numero = i;
- switch (count) //PARA ADICIONAR O NAIPE NA CARTA
- {
- case 0:
- _naipe.Cor = Color.Black;
- _naipe.Naipe = "Paus";
- break;
- case 1:
- _naipe.Cor = Color.Red;
- _naipe.Naipe = "Ouros";
- break;
- case 2:
- _naipe.Cor = Color.Red;
- _naipe.Naipe = "Copas";
- break;
- case 3:
- _naipe.Cor = Color.Black;
- _naipe.Naipe = "Espadas";
- break;
- default:
- break;
- }
- _carta.Naipe = _naipe;
- _baralho.Cartas.Add(_carta); //ADICIONO A CARTA NO BARALHO
- }
- Random rndC = new Random();
- _baralho.Cartas = _baralho.Cartas.OrderBy(x => rndC.Next()).ToList(); //EMBARALHO O BARALHO
- int execucao = 0;
- int carta = 0;
- Baralho _baralhoVermelho = new Baralho();
- _baralhoVermelho.Cartas = new List<Carta>();
- var cartasRetiradas = new HashSet<int>();
- while (true)
- {
- if (_baralhoVermelho.Cartas.Count == 26) //PEGUEI UM BARALHO VERMELHO COMPLETO
- {
- break;
- }
- Random rnd = new Random();
- if (execucao == 0)
- {
- carta = rnd.Next(0, 53); //PEGO UMA CARTA ALETORIA
- }
- else
- {
- //PEGO UMA CARTA ALEATORIA, TIRANDO AS QUE JA SAIRAM
- var range = Enumerable.Range(0, 53).Where(i => !cartasRetiradas.Contains(i));
- var rand = new Random();
- int index = rand.Next(0, 53 - cartasRetiradas.Count);
- carta = range.ElementAt(index);
- }
- if (_baralho.Cartas[carta].Naipe.Cor == Color.Red) //UMA CARTA DE UM NAIPE VERMEHO
- {
- cartasRetiradas.Add(carta); //REMOVO A CARTA PARA NAO SELECIONAR ELA DENOVO
- _baralhoVermelho.Cartas.Add(_baralho.Cartas[carta]);
- }
- execucao++;
- }
- Console.WriteLine("Cartas Vermelhas Retiradas!");
- Console.WriteLine($"Tentativas até retirar todas as cartas vermelhas {execucao}");
- Console.WriteLine("Cartas Retiradas:");
- foreach (var item in _baralhoVermelho.Cartas)
- {
- Console.WriteLine($"Carta número {item.Numero} do naipe {item.Naipe.Naipe}");
- }
- Console.ReadLine();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement