/// <summary> /// Henter et kort fra brugeren (A1, B2 mv) /// </summary> /// <param name="nr"></param> /// <returns></returns> public VendeKort HentKortFraConsole(int nr) { VendeKort v = null; do { try { Console.WriteLine(); Console.WriteLine("Indtast " + nr + ". kort (som A1 eller B2):"); string kort1 = Console.ReadLine(); kort1 = kort1.ToUpper(); v = _matrix[Convert.ToInt32(kort1.ToCharArray()[1].ToString()) - 1, (Convert.ToInt32(kort1.ToCharArray()[0]) - 65)]; if (v.Side == VendeKortSide.Forside) { v = null; } } catch (Exception) { } } while (v == null); if (nr == 2) { AntalTræk++; } return(v); }
/// <summary> /// Constructor - opretter matrix med kort /// </summary> /// <param name="matrixAntal">Størrelse på matrix</param> /// <param name="sleep">Millisekunder der skal ventes når kort er vendt</param> public VendeKortSpil(int matrixAntal, int sleep) { _matrixAntal = matrixAntal; _sleep = sleep; _matrix = new VendeKort[_matrixAntal, _matrixAntal]; int _antalKort = matrixAntal * matrixAntal; // Numre fra 1 - 100 som sorteres tilfældigt. Det bruges til at hente tal som er // tilfældige og unikke var numre = Enumerable.Range(1, 100).OrderBy(i => Guid.NewGuid().ToString()).ToList(); // Dan matrix int index = 0; for (int i = 0; i < _matrixAntal; i++) { for (int x = 0; x < _matrixAntal; x += 2) { _matrix[i, x] = new VendeKort(numre[index]); _matrix[i, x + 1] = new VendeKort(numre[index++]); } } // Sorter matrix Random r = new Random(); for (int i = 0; i < 1000; i++) { int nr1 = r.Next(0, _matrixAntal); int nr2 = r.Next(0, _matrixAntal); int nr3 = r.Next(0, _matrixAntal); int nr4 = r.Next(0, _matrixAntal); VendeKort tmp = _matrix[nr1, nr2]; _matrix[nr1, nr2] = _matrix[nr3, nr4]; _matrix[nr3, nr4] = tmp; } }