Hallo liebes Forum, ich erstelle gerade eine kleine Simulation in der Konsole, die eine Art Sticker-Karten-Tauschbörse werden soll.
Angenommen es ist ein Album da, das mit Stickern zu befüllen ist. Aus dieser Grundlagen soll in der Konsole folgendes geschehen:
eine kleine Simulation:
- sie legt die anzahl der teilnehmer fest (soll für die masse gelten also so 100 oder gar 1000 spieler sollen möglich sein)
- es wird festgelegt wie viele Karten das Album hat
- für jeden Spieler zufällig wie viele er von den Karten bereits hat
- für jeden Spieler zufällig welche von den Karten er hat
eine Abfrage der Konsole:
- es wird abgefragt, welche Spieler verglichen werden sollen
-es wir angezeigt, welche Karten die Spieler bereits gesammelt haben
- es wird angezeigt, welche Karten die Spieler nicht gemeinsam haben
Welche Schwierigkeiten ich hatte werde ich im Code als KOmmentar dazuschreiben. (werde versuchen überhaupt das ganze mit KOmmis zu versehen.)
Würde mich über TIpps freuen. LG
Angenommen es ist ein Album da, das mit Stickern zu befüllen ist. Aus dieser Grundlagen soll in der Konsole folgendes geschehen:
eine kleine Simulation:
- sie legt die anzahl der teilnehmer fest (soll für die masse gelten also so 100 oder gar 1000 spieler sollen möglich sein)
- es wird festgelegt wie viele Karten das Album hat
- für jeden Spieler zufällig wie viele er von den Karten bereits hat
- für jeden Spieler zufällig welche von den Karten er hat
eine Abfrage der Konsole:
- es wird abgefragt, welche Spieler verglichen werden sollen
-es wir angezeigt, welche Karten die Spieler bereits gesammelt haben
- es wird angezeigt, welche Karten die Spieler nicht gemeinsam haben
Welche Schwierigkeiten ich hatte werde ich im Code als KOmmentar dazuschreiben. (werde versuchen überhaupt das ganze mit KOmmis zu versehen.)
Würde mich über TIpps freuen. LG
VB.NET-Quellcode
- Module Module1
- 'simulation
- 'festlegung der spieleranzahl
- 'festlegung der kartenanzahl
- ' für jeden spieler vorhandene karten
- ' für jeden spieler fehlende karten
- 'abfrage
- 'festlegung zweier spieler die verglichen werden
- 'wie viele karten hat man gemeinsam ? welche hat man gemeinsam?
- 'wie viele karten hat man nicht gemeinsam? welche hat man nicht gemeinsam?
- Class spieler
- Public zufallkarten As New Random
- Public kartenvorhanden As Integer = zufallkarten.Next(0, gesamtkarten - 1)
- Public kartennichtvorhanden As Integer = gesamtkarten - kartenvorhanden
- Public welchevorhanden As Integer
- Public welchekarten As New List(Of Integer)
- Public welchekarten02 As New List(Of Integer)
- Public welchekartennicht As New List(Of Integer)
- Public gesamtkartenliste As New List(Of Integer)
- End Class
- Public gesamtkarten As Integer
- Public spielercount As Integer = 4 ' hier die anzahl der spieler angeben
- Public spieleranzahl(spielercount) As spieler
- Sub Main()
- Console.Write("Hier die Anzahl der Karten angeben: ")
- gesamtkarten = Console.ReadLine()
- 'array für die spieleranzahl initialisieren
- For i = 0 To spielercount
- spieleranzahl(i) = New spieler
- Next
- 'Hinweis: hier wird für jeden spieler in einer list of integer "welchevorhanden" die karten festgelegt, die vorhanden sind
- 'PROBLEM: für alle Spieler wird die gleiche list of integer verwendet, wie kann man hier für jeden spieler eine eigene LIst of Integer erstellen?
- For Each element As spieler In spieleranzahl
- While element.welchekarten.Count + 1 <= element.kartenvorhanden
- element.welchevorhanden = element.zufallkarten.Next(1, gesamtkarten + 1)
- If Not element.welchekarten.Contains(element.welchevorhanden) Then
- element.welchekarten.Add(element.welchevorhanden)
- End If
- End While
- Next
- 'Abfrage: funktioniert zur zeit nur für einen spieler, da ja die list of integer immer die gleiche ist also ob man spieleranzahl(2) wählt oder spieleranzahl(3) es kommen die gleiche werte raus, das ist unter anderem das Problemchen.
- Console.WriteLine("Spielerangaben")
- Console.WriteLine("Diese Karten sind vorhanden")
- Console.WriteLine("Spieler02")
- spieleranzahl(2).welchekarten.Sort()
- For i = 0 To spieleranzahl(2).welchekarten.Count - 1
- Console.WriteLine(spieleranzahl(2).welchekarten(i))
- Next
- Console.WriteLine("Diese Karten sind nicht vorhanden")
- Dim TheOthers = spieleranzahl(2).gesamtkartenliste.Except(spieleranzahl(2).welchekarten)
- For i = 1 To gesamtkarten
- spieleranzahl(2).gesamtkartenliste.Add(i)
- Next
- For i = 0 To TheOthers.Count - 1
- Console.WriteLine(TheOthers(i))
- Next
- Console.ReadLine()
- End Sub
- End Module