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;
- namespace ConsoleApplication1
- {
- class KolodaKart
- {
- //Создаем колоду карт
- public karta[] Koloda = new karta[36];
- public KolodaKart()
- {
- for (int i = 0; i < 4; i++)
- for (int j = 6; j <= 14; j++)
- Koloda[i * 9 + j - 6] = new karta(i, j);
- }
- public string OutKarta(int id)
- {
- string answer;
- switch (Koloda[id].Num)
- {
- case 11:
- answer = "Валет";
- break;
- case 12:
- answer = "Дама";
- break;
- case 13:
- answer = "Король";
- break;
- case 14:
- answer = "Туз";
- break;
- default:
- answer = Koloda[id].Num.ToString();
- break;
- }
- switch (Koloda[id].Mastb)
- {
- case 0:
- answer += " червей";
- break;
- case 1:
- answer += " бубей";
- break;
- case 2:
- answer += " крестей";
- break;
- case 3:
- answer += " пик";
- break;
- }
- return answer;
- }
- public string Write()
- {
- StringBuilder sb = new StringBuilder();
- for (int i = 0; i < 36; i++)
- {
- sb.AppendLine(OutKarta(i));
- }
- return sb.ToString();
- }
- public string Write(int i)
- {
- StringBuilder sb = new StringBuilder();
- do
- sb.AppendLine(OutKarta(i));
- while (i < 0 || i > 36);
- return sb.ToString();
- }
- public void Shuffle()
- {
- karta[] newDeck = new karta[Koloda.Length];
- bool[] assigned = new bool[Koloda.Length];
- Random sourceGen = new Random();
- for (int i = 0; i < Koloda.Length; i++)
- {
- int destCard = 0;
- bool foundCard = false;
- while (foundCard == false)
- {
- destCard = sourceGen.Next(Koloda.Length);
- if (assigned[destCard] == false)
- foundCard = true;
- }
- assigned[destCard] = true;
- newDeck[destCard] = Koloda[i];
- }
- newDeck.CopyTo(Koloda, 0);
- }
- public IEnumerable<karta> GetCards()
- {
- foreach (var x in Koloda)
- yield return x;
- }
- }
- class karta
- {
- /*Mastb масть карты.
- * 0 - черви
- * 1 - буби
- * 2 - крести
- * 3 - пики
- /*Num номер карты
- * 6 - шестерка
- * ...
- * 10 - десятка
- * 11 - валет
- * 12 - дама
- * 13 - король
- * 14 - туз
- */
- public int Mastb;
- public int Num;
- public karta(int i, int j)
- {
- this.Mastb = i;
- this.Num = j;
- }
- }
- class Program
- {
- static void Main(string[] args)
- {
- KolodaKart ad = new KolodaKart();
- Console.WriteLine(ad.Write(4));
- Console.WriteLine(ad.Write());
- ad.GetCards();
- ad.Shuffle();
- Console.WriteLine(ad.Write());
- Console.ReadKey();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement