Spelrum
Giraffen | 4 |
Krokodilen | 0 |
Elefanten | 0 |
Musen Böjningslistan | 0 |
Grisen Böjningslistan | 0 |
Inloggade | 4 |
Mobilspel
Pågående | 20 420 |
Forumkategorier
Användare | Inlägg | |
---|---|---|
Perpersa - Ej medlem längre | 2007-07-03 08:11 | |
Turneringar och PJ-poäng Ok en liten genomgång av PJ-poängens betydelse. Med anledning av ett allt större intresse av turneringar. Den som inte är intresserad av alla formler kan alltid tillgodogöra sig av den sista meningen i detta inlägg! : ) Variabler: PJ = Pellejöns-poäng SP = Segerpoäng, antal vunna matcher (0.5 om oavgjort) PS = Total poängskillnad (för en spelares alla matcher) AS = Antal spelade ronder MV = Motståndarnas vinster (en spelares alla motståndares vinstpoäng summerat) PJ grundar sig på total poängskillnad(PS), antal spelade ronder(AS) och Motståndarnas vinster(MV), och den räknas om efter varje rond i en turnering. När man lottar matcher i en ny rond tar man inte hänsyn till PJ utan endast till vinstpoäng (VP). Formeln är: PJ = PS + (300 / AS * MV) PJ beror alltså på tre variabler, av vilken antal spelade ronder är den som behöver minst förklaring. - AS är alltså en räknare som ökar med ett per spelad rond i turneringen. Efter första ronden är den 1, efter andra 2 och så vidare. - PS är spelarens Totala poängskillnad, med totala menas att den räknar med alla hittills spelade matcher, för den spelare vars PJ ska räknas ut. Exempel: Rond #1. 300-200 till spelarens favör. PS blir då 100, om spelaren förlorat skulle den blivit -100. Rond #2 400-200 till spelarens favör. Differensen från föregående rond räknas ut och adderas till denna ronds differans: d.v.s. 100 + (400-200) = 300. När det gäller PS kör man med ett tak på 150, d.v.s. om differensen i en enskild match blir över 150 eller under -150 så blir den automatiskt 150 eller -150. Detta beroende på att bättre spelare annars skulle kunna få alltför mycket fördel i matcher mot sämre spelare. Detta får till följd att det inte spelar något roll om du förlorar/vinner med 150 poäng eller mer. Allt differens utöver 150 försvinner. Detta kan var värt att tänka på under spelets gång. - MV är något mer svårt att hålla koll på, men det är alltså alla summan av dina motståndares vinstpoäng. Detta tal är alltså lågt i början och blir högre allt eftersom, beroende på hur framgångsrika dina tidigare motståndare är under turneringen. --- Första ronden Efter första ronden är det väldigt lätt att räkna ut sin egen PJ-poäng eftersom AS = 1. Formlen blir då: PJ = PS + (300 / AS * MV) Eftersom MV är antingen 1 eller 0 blir formeln antingen Vid förlust: PJ = PS + 300 Vid vinst: PJ = PS Alltså, förlorar du första ronden ska din PJ vara lika med poängskillnaden + 300. Detta värde blir alltid mindre än 300 eftersom din poängskillnad är negativ om du förlorar. Vinner du är den kort och gott din poängskillnad. Detta gör att de som vinner sin första match ofta få väldigt lite PJ-poäng (max 150 p.g.a. taket), och de som förlorar får 300 - differensen. Ibland klagas det över detta: "Varför fick jag så lite PJ-poäng, jag vann ju?!?!". Men vinnaren har fått 1 vinstpoäng medans förloraren fått 0. Det optimala för vinnaren är att vinna med 150 poäng eller mer. I så fall får bägge spelare 150 pj-poäng. (I första ronden alltså) --- Andra ronden I andra ronden blir det fler scenarier, alla har spelet två matcher, din motståndare kan ha vunnit antingen noll, en eller två matcher (om det ej blivit oavgjort). Din poängskillnad från rond ett följer med. Formeln blir: PJ = PS +(150 *MV) 150 är alltså 300 / antalet spelade ronder, det blir 100 efter nästa rond och 75 efter den, o.s.v. Här vill du alltså ha ett högt värde på MV för att få mycket PJ-poäng. Ur den synvinkeln är det bra om du förlorat i rond två eftersom MV då blir ett högre, d.v.s två eller ett (i den andra ronden alltså). Å andra sidan vill du gärna ha vunnit matchen för att få en positiv poängdifferens (PS-differens), och en segerpoäng. Något paradoxalt alltså, men självklart är det ju alltid bäst att ha vunnit sin match eftersom man då får segerpoäng. Det man kan, och bör, snegla på är hur det gått för den spelare man mötte i förra ronden. Om den vann så blir ens MV i rond två ett högre. Detta gör att man för det mesta vill att ens tidigare motståndare ska vinna! Alltså bör man heja på dem! Eller? Risken är ju att de får mer eller lika mycket segerpoäng som dig om de vinner för mycket. Jaja, det är inte så viktigt, du kan ju trots allt inte påverka dem så nämnvärt mycket genom att enbart heja på dem. Det är bra för din PJ hur som helst. ---- Tredje ronden o.s.v. Fortsätt håll koll på dina motståndares vinster men ha i åtanke att det spelar mindre och mindre och roll ju flera ronder som spelats. Första ronden multipliceras MV med 300, sen i fallande ordning: 150, 100, 75, 60, 50, 43, 38, 33, 30,27, 25, 23, 21, 20, 19 ,18, 17, 16, 15... --- Du kan tänka så här: "Aha han/hon har jag spelat mot, hoppas han vinner då får jag mer PJ-poäng! Hoppas han inte får mer vinster än mig dock! :D" | ||
REDLINEROOKZ - Ej medlem längre | 2007-07-03 08:31 | |
Jvävlar nice jobbb perpersa | ||
Birgerkung - Spelvärd | 2007-07-03 10:08 | |
Kort skulle man kunna sammanfatta det med att: Det gäller att vinna så många matcher som möjligt, med så mycket poäng som möjligt! =) | ||
Radagast | 2007-07-03 10:11 | |
Och dessutom ska man peppa de man spelar mot så att de spelar bra under resten av turneringen! | ||
Perpersa - Ej medlem längre | 2007-07-22 09:06 | |
Lottning. Lottningen är mer avancerad än man tror. Den görs genom iterering av en rutin som håller sig till följande regler. 1. Varje spelare får möta en och samma spelare max x (vanligen är x=1) gånger. 2. Varje spelare får max ha en frirond. Dessa uppstår endast om antalet deltagare är udda. 3. De spelare som vunnit mest ska i möjligaste mån lottas mot varandra. (Det krångligaste programmeringsmässigt.) Lottningsrutinen görs helt utan hänsyn till pjpoäng. Att få frirond innebär att man får 150 PJ-poäng och en 'gratis' vinst. Det är väldigt fördelaktigt att få den i början av en turnering, i synnerhet om man är en av de starkare spelarna. Egentligen borde någon av de lägre rankade få den, enligt min mening, men det finns ingen sådan regel i dagens standard. (Och var skulle man dra gränserna å så vidare...) Lottningen kan även bugga ihop totalt. Ju fler spelare man är desto större är risken att en itereringsprocess kommer till korta. Detta är givetsvis upp till programmerarna av lottningsprogrammet. Om nu ett sånt scenario inträffar, kan man lotta manuellt. D.v.s. man matar manuellt in vilka som ska spela mot varandra, grundat på tidigare resultat. Kan bli godtyckligt i vissa fall men det är betydligt bättre än att avbryta en turnering enbart för att lottningen misslyckades. --- Ibland kan lottningen helt enkelt inte fullbordas på grund av att deltagare spelat tidigare med varandra och inte kan lottas mot varandra igen. Detta kan även hända med ett fåtal spelare. T.ex. Fem deltagare som spelar fyra ronder. Sista ronden kan bli olottbar för att de som haft frirond inte kan ha det igen och de som mötts tidigare inte kan mötas igen. Några ord om Manfred Nu känner jag inte tiill hur programmet Manfred hanterar detta. Förmodligen har det en smartare algoritm än min men det ter sig sannerligen svårt att förutse lottningar flera matcher framåt i historien utan att i förväg veta deras utfall. Ödmjukast... /Persan | ||
ReHoChPe - Ej medlem längre | 2007-07-22 17:07 | |
Tack Persan, du skulle inte kunna dra hur du kopierar in i mainchatten-i betarummen? Bara du som lyckas göra det=) Syftar alltså på resultaten i turneringarna... | ||
illiterate - Ej medlem längre | 2007-07-22 17:30 | |
Han använder SendKeys :) | ||
ReHoChPe - Ej medlem längre | 2007-07-22 18:28 | |
Hur fungerar det då? :D | ||
Birgerkung - Spelvärd | 2007-07-22 18:59 | |
Jag känner mig ganska säker på att Manfred hanterar lottningen på ett bra sätt, eftersom Johan som har programmerat det är en förbaskat duktig programmerare. Jag tror faktiskt inte att programmet KAN krascha till följd av att ingen lottning hittas. Manfred finns att ladda ner och har öppen källkod, så den intresserade kan ju alltid läsa koden för att ta reda på hur det går till. | ||
illiterate - Ej medlem längre | 2007-07-22 19:03 | |
Det förutsätter dock att man kan REBOL, Birgerkung. :) Vem kan det egentligen, förutom Johan? :) monrad: func [tmt pls urg drawnm /local matches p op t tt tp i tm tmm failedmonrads][ ; return matches as decided by the monrad algorithm ; the algorithm pairs player by taking the first player in the list and ; pairing it with the highest player on the list, as long as ; 1) this does not mean two players meet more than allowed number of times ; 2) this does not mean a player who already got a free round gets it again ; 3) this does not mean subsequent rounds cannot be drawn failedmonrads: 0 if pls = [] [ return true ] if (length? pls) = 1 [either (gotfreeround tmt (pick first pls 15)) and (urg > 1) [ return false] [ matches: copy [] append/only matches to-block reduce [pick first pls 15 pick first pls 15 do true 0 0] return matches ] ] matches: copy [] either (do pick first tmt 10) [op: (length? pls) + 1] ; Is the tournament inverse monrad? [op: 1] p: pick first pls 15 until [ either (do pick first tmt 10) [op: op - 1] ; Is the tournament inverse monrad? [op: op + 1] if not met tmt p (pick (pick pls op) 15) [ print ["matching " p " with " pick pick pls op 15 "in round" ((pick first tmt 4)+ 1)] tt: copy [] tmm: copy/deep matches append tt decideadv tmt p (pick (pick pls op) 15) append tt reduce [do false 0 0] append/only tmm to-block tt tt: copy pls remove at tt op tt: next tt tm: copy/deep drawnm append tm tmm t: monrad tmt tt 2 tm if t [ if series? t [append tmm t] either (not (tt = [])) [ return tmm ] [ tm: copy/deep drawnm append tm tmm print ["Checking round " ((pick first tmt 4)+ 1)".."] if (checklaterrounds tmt tm) [return tmm] print [first first pls "can't meet" first pick pls op "in round"((pick first tmt 4)+ 1)", doesn't work for all rounds"] failedmonrads: failedmonrads + 1 if ((do pick first tmt 10) and (failedmonrads > 1)) [ return false ] ] ] ] (((do pick first tmt 10) and (op = 2)) or ((not (do pick first tmt 10)) and (op = (length? pls)))) ] if (odd? (length? pls)) and not gotfreeround tmt p [ print ["Trying with" p "getting a free round"] tt: to-block reduce [p p do true 0 0] append/only matches to-block tt tt: copy pls tt: next tt tm: copy/deep drawnm append tm matches t: monrad tmt tt 2 tm if t [ if series? t [append matches t] either ((series? pls) and ((length? pls) > 2)) [ return matches ] [ tm: copy/deep drawnm append tm matches either (checklaterrounds tmt tm) [return matches] [ return false] ] ] ] return false ] | ||
illiterate - Ej medlem längre | 2007-07-22 19:05 | |
ReHoChPe: www.rutherfurd.net/p.../s endkeys/ | ||
Perpersa - Ej medlem längre | 2007-07-22 20:33 | |
Jag menade absolut inte att rikta negativ kritik mot Manfred. Sen så behöver inte programmet "KRASCHA" bara för att en lottning inte går att fullborda. Programmet får helt enkelt "ge upp" efter ett tag (många många lottningsförsök) och meddela att lottning inte är genomförbar. | ||
Birgerkung - Spelvärd | 2007-07-22 21:14 | |
Och det är precis vad Manfred gör. Om lottning inte kan genomföras ger programmet följande besked: Det går inte att lotta fler ronder. Det finns tre sätt att lösa detta 1. Minska antalet ronder i turneringen (om många ronder återstår). 2. Öka max antal möten för två spelare. 3. Lotta manuellt. Mig veterligen har detta aldrig kommit upp under en tävling, och då har programmet ändå används på nästan alla tävlingar under flera år. Och det borde väl bara kunna ske om antalet spelare är mindre än antalet ronder? | ||
Perpersa - Ej medlem längre | 2007-07-22 21:26 | |
Jo men detta beror på att antalet spelare under turneringar så gott som alltid är långt fler än antal ronder, vilket gör att det alltid finns en mängd altnernativlottningar i slutet av turneringen... Är man däremot 5 spelare och vill köra fem eller fyra ronder ökar risken avsevärt att lottningen fallerar på slutet. | ||
illiterate - Ej medlem längre | 2007-07-22 21:31 | |
Här kan för övrigt MANFRED laddas ner: www.scrabbleforbunde...It emid=148 | ||
Birgerkung - Spelvärd | 2007-07-22 21:48 | |
Om man är fem spelare och spelar fem ronder och bara lottar matcherna helt på måfå är det inte troligt att man får till det i slutet nej. Men Manfred lottar inte på måfå, utan tar i varje lottning hänsyn till att även alla resterande ronder i turneringen ska kunna lottas. Om programmet inte hittar minst ett sätt att lotta de kvarvarande ronderna i turneringen ger det felmeddelandet enligt ovan, även om den närmast kommande ronden faktiskt går att lotta. | ||
Perpersa - Ej medlem längre | 2007-07-22 22:26 | |
Eh hur kan programmet ta hänsyn till de resterande matchernas utgång om det inte vet hur de slutade? Enligt min mening kan det omöjligt veta vem som vann innan en match spelades. Självklart lottar programmet på måfå, dock bunden av de regler som givits (ej frirond x gånger, ej samma motståndare x gånger och så vidare...). Slumpen i lottningen är en given faktor från början, faktum är att den spelar störst roll i början eftersom den sedan begränsas av de resultat som uppkommit. | ||
Perpersa - Ej medlem längre | 2007-07-22 22:28 | |
BTW: Fem spelare och fem ronder går för det mesta fint att lotta. | ||
Birgerkung - Spelvärd | 2007-07-22 22:45 | |
Utgången av matcherna har ingen betydelse för huruvida det kommer att finnas en lottning som uppfyller kravet på max ett inbördes möte. Och återigen, programmet lottar inte på måfå. Testa själv att försöka sätta ihop en turnering med till exempel 6 spelare och fem ronder och skriv på måfå upp vilka som ska få möta varandra i varje rond, med kravet att inga ska ha mött varandra tidigare under turneringen. Det är inte troligt att du får till det i slutet. Det kräver ett himla pusslande om man ska sätta ihop ett sånt turneringssystem med bara papper och penna, eller att man använder ett färdigt system. Eller Manfred. | ||
Perpersa - Ej medlem längre | 2007-07-22 22:59 | |
Jag har en känsla av att programmet måfåar(!) sig fram till en godtagbar spellista. Det är möjligt att jag har fel. Men jag står fast vid min slutsats tills vidare. | ||