Results 1 to 8 of 8

Thread: Biljart project starten

  1. #1
    Carpe Diem Leander's Avatar
    Join Date
    Feb 2005
    Location
    Noord Brabant
    Posts
    125

    Biljart project starten

    Een goede middag allemaal,

    Ik wil een project gaan maken voor een bejaardentehuis die een biljartclub hebben waar ze toernooitjes en competities verzorgen onder elkaar, ik weet dat er genoeg freeware programma's te vinden zijn op internet maar wil er toch zelf een gaan maken.
    Ben gestart en maak gebruik van een Access (mdb) database met FireDac dat prima en snel werkt.

    Ik zit met het volgende,

    Voorbeeld:
    ik heb 23 spelers die verdeeld moeten worden in een poule van 4, dus zijn er 3 spelers die verdeeld moeten worden over 5 poules.
    ook wil ik de mogelijkheid creëren om spelers te wisselen naar een andere poule bv. om de betere spelers te verdelen zodat die niet bij elkaar zitten.

    Zou een StringGrid dan de beste keuze zijn om die 5 poules te realiseren of zijn er andere ideeën om dit te kunnen maken.


    Alle tips zijn welkom.
    Met vriendelijke groet, With kind regards, Mit freundlichen grüßen,
    Leander

  2. #2
    Ik denk dat je in eerste instantie het visuele moet scheiden van de logica.

    Begin dus met het bedenken van de database structuren en arrays waar je de poules en spelers in gaat zetten. Daarna kun je bedenken hoe je zoiets visueel op het scherm gaat zetten.

    Als alles in een database zou daaraan dan is een TDBGrid het meest logische. Als je eerst met arrays werkt en dan met een drag en drop component werkt on de indeling te wijzigen dan kun je het ook later opslaan in de database.

    Maar je begint dus eerst met het ontwerp en regels hoe je de spelers wilt indelen en wat de gebruiker allemaal moet kunnen doen. Wel ook bedenken wat je visueel op het scherm wilt hebben.

    Is het de bedoeling dat de computer de indeling maakt? En moet de gebruiker dit nog kunnen wijzigen? Is het daarna nodig dat er opnieuw gehusdeld wordt voor een tweede ronde o.i.d.? Wat zijn daar de regels voor. Etc.

    Ps. Het zou natuurlijk voor de computer best mogelijk zijn om rekening te houden met sterkte bij het husselen/indelen. Daar zou je als gebruiken niet zoveel over na moeten denken. Lijkt me wel een leuk hussel-mechanisme.

    Pps. Heb je ook al gekeken naar die andere programma's of die een mechanisme hebben om spelers te husselen rekening houdend met sterkte? Doe je dat moeten ook met levels ofzo?

  3. #3
    Carpe Diem Leander's Avatar
    Join Date
    Feb 2005
    Location
    Noord Brabant
    Posts
    125
    Quote Originally Posted by rvk View Post
    Ik denk dat je in eerste instantie het visuele moet scheiden van de logica.
    Begin dus met het bedenken van de database structuren en arrays waar je de poules en spelers in gaat zetten. Daarna kun je bedenken hoe je zoiets visueel op het scherm gaat zetten.
    Ik heb een form wedstrijdAanmaken waar je aangeeft hoeveel spelers er mee doen, als de form goed is ingevuld word de button wedstrijd genereren enabled om de competitie/toernooi aan te maken
    Ik heb al een opzetje gemaakt met Click image for larger version. 

Name:	wedstrijdaanmaken.jpg 
Views:	29 
Size:	87.1 KB 
ID:	8232

    Tabel: Wedstrijden
    Wedstrijden.ID
    Wedstrijden_nummer
    Wedstrijden_aantal_spelers < ----
    Wedstrijden_aantal_tafels
    Wedstrijden_discipline
    Wedstrijden_moyene
    Wedstrijden_caramboles
    ect

    Tabel: Spelers
    spelers_ID
    spelers_nummer
    spelers_speler_id
    spelers_volgnummer
    spelers_naam
    ect

    Tabel: Uitslagen
    uitslagen_ID
    uitslagen_nummer
    uitslagen_speler_id
    uitslagen_tegenstander_id ???
    uitslagen_tm_caramboles (te maken)
    uitslagen_gm_caramboles (gemaakte)
    uitslagen_beurten
    uitslagen_hoogsteserie
    uitslagen_punten

    Ik worstel nog in tabel uitslagen of ik de 2 spelers apart op sla of met een veld uitslagen_tegenstander_id
    Met vriendelijke groet, With kind regards, Mit freundlichen grüßen,
    Leander

  4. #4
    Waarom geef je 23 spelers op?
    Welke spelers zijn dat dan?

    Is het niet handiger om de deelnemers eerst aan te geven (via toevoegen in een grid) en dan daaruit te bepalen hoeveel deelnemers er zijn.

    Dat zou dan een tdbgrid kunnen zijn waarbij je de ID van de spelers toevoegt aan die wedstrijd (ID_deelnemer, ID_wedstrijd).

    En hoe zat het dan met de sterkte?
    Van die 23 iedereen random tegen elkaar?
    Of poules op sterkte (en dan heb je dus ook de sterktes nodig)

    Voor het ontwerp is het misschien ook van belang de sterkte op te slaan bij de wedstrijd_id onder deelnemer want die kan een week later natuurlijk sterker geworden zijn en ik weet niet of je sterkte_history ingebouwd hebt of überhaupt nodig hebt.

  5. #5
    Carpe Diem Leander's Avatar
    Join Date
    Feb 2005
    Location
    Noord Brabant
    Posts
    125
    Quote Originally Posted by rvk View Post
    Waarom geef je 23 spelers op? Welke spelers zijn dat dan?
    Was deze afbeelding vergeten ... als je bij tabblad gegevens de aantal spelers hebt ingevoerd kun je bij tabblad deelnemers de spelers invoeren, de 23 spelers is gewoon een voorbeeld.

    Click image for larger version. 

Name:	wedstrijd_deelnemers.jpg 
Views:	18 
Size:	92.1 KB 
ID:	8236

    Quote Originally Posted by rvk View Post
    Dat zou dan een tdbgrid kunnen zijn waarbij je de ID van de spelers toevoegt aan die wedstrijd (ID_deelnemer, ID_wedstrijd)
    De deelnemers kun je in de grid plaatsen en de sterkte is te wijzigen waar je daarna de wedstrijd kan aanmaken in de tabblad controleer waar de button wedstrijd genereren staat die enabled word als de gehele invoer ok is.

    Quote Originally Posted by rvk View Post
    En hoe zat het dan met de sterkte? Van die 23 iedereen random tegen elkaar? Of poules op sterkte (en dan heb je dus ook de sterktes nodig)
    Voor het ontwerp is het misschien ook van belang de sterkte op te slaan bij de wedstrijd_id onder deelnemer want die kan een week later natuurlijk sterker geworden zijn en ik weet niet of je sterkte_history ingebouwd hebt of überhaupt nodig hebt.
    Er kan met de zelfde sterkte gespeeld worden maar ook met een variabele sterkte die je dan in de deelnemers grid kan wijzigen.
    Over de sterkte is het een goed idee om een tabel moyene en history te maken om dat per speler bij te houden.

    Het belangrijkste nu is om de poules samen te stellen en dat je de spelers kan husselen/indelen om de sterkere spelers te verspreiden in het toernooi/competitie.
    Hoe kan ik het beste 23 spelers verdeeld in 5 poules tonen in een StringGrid ... 5 StringGrids met drag en drop ? gezien dat er ook 64 spelers kunnen zijn bij een andere biljart vereniging, en dat zijn dan 16 poules.
    Last edited by Leander; 18-Jun-22 at 15:47. Reason: Afbeelding vergeten
    Met vriendelijke groet, With kind regards, Mit freundlichen grüßen,
    Leander

  6. #6
    Makkelijkste is links een stringgrid met poules en als je op een poul klinkt rechts een stringgrid met deelnemers in die poule. Slepen kan dan van rechts naar links.

    Mooiste is natuurlijk iets visueels. 5 poule-tafels met balkjes daarin per deelnemer. Die kun je dan van tafel naar tafel slepen. Is overzichtelijker (alle deelnemers direct in beeld) maar wel wat moeilijker te programmeren. Namen kunnen dan wel afgekapt worden als ze te lang zijn.

    Nog een alternatief is gewoon één stringgrid met alle deelnemers met poul-headers erboven. Je kunt met customdraw wel wat visueel opleuken zoals ronde hoeken. Heb ik ook gedaan.

    Click image for larger version. 

Name:	2022-06-18 17_13_08-Window.png 
Views:	22 
Size:	47.2 KB 
ID:	8237

  7. #7
    Carpe Diem Leander's Avatar
    Join Date
    Feb 2005
    Location
    Noord Brabant
    Posts
    125
    Quote Originally Posted by rvk View Post
    Makkelijkste is links een stringgrid met poules en als je op een poul klinkt rechts een stringgrid met deelnemers in die poule. Slepen kan dan van rechts naar links.
    Mooiste is natuurlijk iets visueels. 5 poule-tafels met balkjes daarin per deelnemer. Die kun je dan van tafel naar tafel slepen. Is overzichtelijker (alle deelnemers direct in beeld) maar wel wat moeilijker te programmeren. Namen kunnen dan wel afgekapt worden als ze te lang zijn.
    ]
    Dat zou een super oplossing zijn maar dat is voor mij te hoog gegrepen, ik kan is naar voorbeelden gaan zoeken.
    Met vriendelijke groet, With kind regards, Mit freundlichen grüßen,
    Leander

  8. #8
    In principe is dit gewoon een stringgrid die ik elke keer vul bij het resizen. Dit omdat bij breder of hoger form de kolommen en rijen aangepast moeten worden.

    Maar het vullen gaat dus vanuit een interne array die je eerst met genereren (code scheiden van scherm afhandeling).

    Bv

    TDeelnemer = record met gegevens
    TPoule = array of TDeelnemer
    TPoules = array of TPoule

    procedure vulscherm

    Poule 1
    Deelnemer 14
    Deelnemer 27
    Etc.

    Poule 2
    Deelnemer 16
    Deelnemer 22
    Etc.

    Eventueel kun je dus het vullen maar de tweede kolom om daar verder te gaan met een nieuwe poule (afhankelijk van de ruimte).

    Maar eerst het ontwerpen en vullen van de array regelen.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •