Autor Beitrag
Armour
Hält's aus hier
Beiträge: 5



BeitragVerfasst: So 23.01.11 15:34 
Ich habe eine Liste mit Manschaften, in einer foreach werden den Manschaften per zufall Tore gegeben, jetzt möchte ich(je nach Spieltag) der anderen Manschaft diese Tore als gegentore geben, nur Leider weiß ich nicht wie ich das anstellen kann, hat jemand vielleicht eine Idee?
Ich dachte das klappt auch mit foreach, allerdings kann ich da ja nicht vergleichen, wer gegen wem spielt und die gegentore da so zuweisen, oder ich hab da einfach einen riesigen denkfehler.
lg Armour
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4807
Erhaltene Danke: 1061

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: So 23.01.11 17:33 
Hallo,

du mußt ja irgendeine Klasse für den aktuellen Spieltag haben, oder?
Und dann kannst du jeder Mannschaft die entsprechenden Tore und Gegentore geben (d.h. zu den aktuellen Toren und Gegentoren addieren).

Ansonsten poste einfach mal etwas relevanten Code...
Armour Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: So 23.01.11 18:08 
Das ist jetzt nur ein kleiner auszug!

Hier werden die vereine gespeichert
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Buli
{
    public class Vereine
    {
        public int VereinsID;
        public string Name;
        public int Tore;
        public int Gegentore;
    }
}

und hier die Tore zugewiesen:
ausblenden C#-Quelltext
1:
2:
3:
4:
 foreach (Vereine item in Buli)
            {
                item.Tore = zufall.Next(15);
            }


Ich machs noch nicht alzulang, das muss ich dazusagen.
Dies ist nur ein ausschnitt, hab das soweit schon fertig, das alle vereine drin sind, und es auch sortiert nach punkten und tordifferenz ausgegeben wird, allerdings nur nach zufälligen werten für Tore und Gegentore, kurz gesagt die spielen nie gegeneinander, das will ich erreichen, sollte der Code nicht reichen, kann ich auch das ganze Projekt posten mit dem sortieren und co, aber da wird zwar alles gut zusammengerechnet, allerdings nicht gegeneinander gespielt, ich weiß auch nicht wie ich das in einer klasse schreiben soll mit dem Spieltag.

Achso eines noch, die ID ist nur dabei, weil ich versucht habe, damit die spieltage zu machen, weil ich später ja die Liste ja sortiere
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4807
Erhaltene Danke: 1061

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: So 23.01.11 20:00 
Hallo nochmal,

die Vereinsklasse ist ja soweit in Ordnung (evtl. fehlen noch Punkte ;-)
Nur die foreach-Schleife macht so ja auch keinen Sinn, da du ja einfach nur jeder Mannschaft zufällig Tore zuteilst (ohne zu wissen, gegen wen sie spielt).

Ein Spieltag müßte in etwa dann so aussehen:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
class Spieltag
{
  public List<Spielpaarung> Spiele { get; private set; }
}

class Spielpaarung
{
  public int HeimVereinId { get; set; }
  public int AuswaertsVereinId { get; set; }

  public int HeimTore { get; set; }
  public int AuswaertsTore { get; set; }
}

Nun kannst du jeder Spielpaarung (für den aktuellen Spieltag) die Heim- und Auswärtstore zuweisen.
Und anschließend dann jedem Verein die Heim- sowie Auswärtstore dazu addieren (bei der Auswärtsmannschaft dann entsprechend Heim- und Auswärtstore vertauschen).

Was dir dann natürlich noch fehlt, ist ein Algorithmus zur Erstellung einer Saison.
Für den Anfang kannst du ja einfach jeweils die beiden benachbarten Vereine gegeneinander spielen lassen, d.h. bei 18 Mannschaften 1-2, 3-4, ..., 17-18.

Und dann für die weitere Entwicklung könntest du ja eine komplette Saison fest hinterlegen (oder in eine Textdatei auslagern). Und damit nicht jede Saison gleich ist, die Spieltage oder die Mannschaften zufällig vertauschen.

Für C++ habe ich auch mal einen Algorithmus für die zufällige Erstellung von Spieltagen (für eine ganze Saison) mit beliebiger Anzahl von Mannschaften erstellt. Nur ich weiß nicht, ob dir das etwas nützen würde?

Für diesen Beitrag haben gedankt: Armour
Armour Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Mo 24.01.11 06:20 
Danke dir, das Hilft mir schon ein riesiges Stück weiter
Zitat:
Für C++ habe ich auch mal einen Algorithmus für die zufällige Erstellung von Spieltagen (für eine ganze Saison) mit beliebiger Anzahl von Mannschaften erstellt. Nur ich weiß nicht, ob dir das etwas nützen würde?

Das würde auch helfen. Die Logik ist ja das interessante, auf jeden Fall schonmal vielen Dank

lg Armour
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4807
Erhaltene Danke: 1061

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Mo 24.01.11 13:28 
Hallo Armour,

dann schau dir mal den Anhang an. Dort gibt es dann die Klasse TMatchPlan, mit dessen Methode 'CreateMatchPlan' dann eine komplette Saison mit N-1 Spieltagen erzeugt wird (die Rückrunde ist automatisch die Spiegelung der Hinrunde).
In der Matchplan.txt findest du eine genauere Erklärung dazu (den Text habe ich schon vor ca. 10 Jahren geschrieben ;-)
Einloggen, um Attachments anzusehen!

Für diesen Beitrag haben gedankt: Armour
Armour Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Mo 24.01.11 14:23 
Tausend dank das hilft schon viel