C# :: Aufgabe #243 :: Lösung #2
3 Lösungen
#243
Klassisches Bingo mit Verzögert gezogenen Nummern
Fortgeschrittener - C#
von maxi72501
- 11.03.2019 um 14:57 Uhr
In dieser Aufgabe soll man ein Klassisches Bingo erstellen wo man eine zufällige Karte erhält wo auf einem 5 * 5 Feld Zahlen von 1 bis 75 verteilt liegen. Zu beachten ist das in der ersten Spalte zahlen von 1 bis 15, in der zweiten Spalte 16 bis 30, in der Dritten 31 bis 45, in der vierten 46 bis 50 und in der letzten 51 bis 75.
#2
von hollst (13980 Punkte)
- 31.03.2019 um 14:32 Uhr
using System;
using static System.Console;
using System.Text;
namespace Bingo_Console
{
class Program
{
static void Main()
{
byte anzahl = 5;
bool bo_loop = true;
while (bo_loop)
{
anzahl.Coupon().CouponToString().MessageLine();
"next (ESC = STOP)".MessageLine();
ConsoleKeyInfo ki = ReadKey(true);
bo_loop = !(ki.Key == ConsoleKey.Escape);
}
}
}
public static class Bingo_Extentions
{
public static byte[] Shuffle(this byte count, Random r) //count = 15
{
byte[] result = new byte[count];
for (byte i = 0; i < result.Length; i++)
result[i] = i;
byte temp, next;
for(byte i = 0; i < result.Length; i++)
{
temp = result[i];
next = (byte)r.Next(i, result.Length);
result[i] = result[next];
result[next] = temp;
}
return result;
}
public static void MessageLine(this string s) => WriteLine(s);
public static byte[][] Coupon(this byte count) //count = 5
{
Random r = new Random();
byte[][] result = new byte[count][];
for (byte i = 0; i < count; i++)
result[i] = new byte[count];
byte count_random = 15;
for(byte i = 0; i < count; i++)
{
byte[] temp = count_random.Shuffle(r);
for (byte j = 0; j < count; j++)
result[j][i] = (byte)(i * count_random + temp[j] + 1);
}
return result;
}
public static string CouponToString(this byte[][] a)
{
StringBuilder sb = new StringBuilder();
for(var i = 0; i < a.Length; i++)
{
for (var j = 0; j < a[i].Length; j++)
{
if(i == a.Length / 2 && j == i)
sb.Append($" ");
else
sb.Append($"{a[i][j],2} ");
}
sb.AppendLine();
}
return sb.ToString();
}
}
}
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1
