Ga naar inhoud

Commentaar nodig in programmacode


Anoniem2

Aanbevolen berichten

Goedenavond,\r\n\r\nIk heb een programma code welke voorzien moet worden van commentaar.\r\nBij elk stuk code moet uitgelegd worden wat er gedaan wordt. Het hoeft niet heel uitgebreid als er maar staat wat de operators en variabelen doen.\r\n\r\nHet programma bevat niet al te veel code en is hier te downloaden:\r\n[url]http://www.jsdstudios.nl/Boter%20Kaas%20en%20Eieren.zip[/url] \r\n\r\nEen eventuele vergoeding is mogelijk. Alvast bedankt!\r\n\r\nGroet,\r\nJSD1985
Link naar reactie
Het gaat trouwens om deze code:\n\n[code]\nnamespace tictactoe \n{\n using System;\n using System.Collections;\n using System.Text.RegularExpressions;\n using System.Windows.Forms;\n\n public class TicTacToeModel \n {\n public enum utility: int \n {\n MaxWin = 1,\n Draw = 0,\n MinWin = -1\n }\n private ArrayList validOperators;\n private char machineChar;\n private char userChar;\n private string game;\n public string Game \n {\n get \n {\n return game;\n }\n }\n \n public void Initialise(bool pGoFirst) \n {\n // Initialiseren wie met \'X\' speelt en wie met \'O\'\n machineChar = pGoFirst ? \'X\':\'O\';\n userChar = pGoFirst ? \'O\':\'X\';\n //Resetten van de string\n this.game = \" \";\n this.game += \" \";\n this.game += \" \";\n //Posities 0 t/m 8\n validOperators = new ArrayList(8);\n for (int i = 0; i<9; i++)\n validOperators.Add(i);\n }\n\n public bool MakeBestMove(bool pMaxTurn) \n {\n if (!TerminalTest(this.game)) \n {\n ArrayList operators;\n minimaxValueSuccesors(out operators, this.game, pMaxTurn, this.validOperators);\n #if Debug\n \n #endif\n //Selecteer een operator willekeurig\n int liOperator = (int)operators[new Random().Next(operators.Count)];\n //Het toepassen van de operator en deze verwijderen van de ArrayList met geldige operators\n this.game = ApplyMove(liOperator, this.game, pMaxTurn);\n this.validOperators.Remove(liOperator);\n }\n return (TerminalTest(this.game)); //Als het spel is afgelopen word return true\n } \n\n public bool MakeMove(int viOperator, bool vbMaxTurn) \n {\n //Is de operator geldig?\n if (this.validOperators.Contains(viOperator) & !TerminalTest(this.game)) \n {\n //Het toepassen van de operator en deze verwijderen van de lijst \'geldige\' operators\n this.game = ApplyMove(viOperator, this.game, vbMaxTurn);\n this.validOperators.Remove(viOperator);\n }\n return (TerminalTest(this.game)); //Als het spel is afgelopen word return true\n } \n\n //Private Methodes\n private string ApplyMove(int pOperator, string pGame, bool pMaxTurn) \n {\n return (pGame.Substring(0, pOperator) + \n (pMaxTurn ? machineChar : userChar) + \n pGame.Substring(pOperator+1));\n }\n\n private utility minimaxValueSuccesors(out ArrayList pOperator, string pGame, bool pMaxTurn, ArrayList pOperators) \n {\n utility value;\n utility maxValue = utility.MinWin;\n utility minValue = utility.MaxWin;\n ArrayList bestOps = new ArrayList();\n ArrayList worstOps = new ArrayList();\n ArrayList operatorsLeft;\n string workingGame;\n // Loop voor alle operators.\n foreach (int lOperator in pOperators) \n {\n workingGame = ApplyMove(lOperator, pGame, pMaxTurn);\n operatorsLeft = (ArrayList)pOperators.Clone();\n operatorsLeft.Remove(lOperator);\n value = minimaxValueForState(workingGame, pMaxTurn, operatorsLeft);\n\n if (value > maxValue) bestOps = new ArrayList();\n\n if (value >= maxValue) \n {\n bestOps.Add(lOperator);\n maxValue = value;\n }\n\n if (value < minValue) worstOps = new ArrayList();\n \n if (value <= minValue) \n { \n worstOps.Add(lOperator);\n minValue = value;\n }\n }\n\n pOperator = pMaxTurn ? bestOps : worstOps;\n return (pMaxTurn ? maxValue : minValue); \n }\n\n //true = X aan de beurt, false = O aan de beurt\n private utility minimaxValueForState(string pGame, bool pMaxTurn, ArrayList pOperators) \n {\n utility lUtility; \n ArrayList dummy;\n \n if (TerminalTest(pGame)) \n lUtility = UtilityTest(pGame);\n else \n lUtility = minimaxValueSuccesors(out dummy, pGame, !pMaxTurn, pOperators);\n \n return lUtility;\n }\n\n#if RegExp\n\n#else\n public utility UtilityTest (string pGame) \n {\n utility utility = utility.Draw; //0 is gelijkspel\n char[] aGame;\n aGame = pGame.ToCharArray();\n \n //Bovenste rij horizontaal\n if (aGame[0].Equals(aGame[1]) & aGame[0].Equals(aGame[2]) & !aGame[0].Equals(\' \')) \n utility = aGame[0].Equals(machineChar) ? utility.MaxWin : utility.MinWin;\n //Middelste rij horizontaal\n if (aGame[3].Equals(aGame[4]) & aGame[3].Equals(aGame[5]) & !aGame[3].Equals(\' \')) \n utility = aGame[3].Equals(machineChar) ? utility.MaxWin : utility.MinWin;\n //Onderste rij horizontaal\n if (aGame[6].Equals(aGame[7]) & aGame[6].Equals(aGame[8]) & !aGame[6].Equals(\' \')) \n utility = aGame[6].Equals(machineChar) ? utility.MaxWin : utility.MinWin;\n //De 1ste rij verticaal (links)\n if (aGame[0].Equals(aGame[3]) & aGame[0].Equals(aGame[6]) & !aGame[0].Equals(\' \')) \n utility = aGame[0].Equals(machineChar) ? utility.MaxWin : utility.MinWin;\n //De middelste rij verticaal\n if (aGame[1].Equals(aGame[4]) & aGame[1].Equals(aGame[7]) & !aGame[1].Equals(\' \')) \n utility = aGame[1].Equals(machineChar) ? utility.MaxWin : utility.MinWin;\n //De 3e rij verticaal (rechts)\n if (aGame[2].Equals(aGame[5]) & aGame[2].Equals(aGame[8]) & !aGame[2].Equals(\' \')) \n utility = aGame[2].Equals(machineChar) ? utility.MaxWin : utility.MinWin;\n //De 1ste diagonale rij\n if (aGame[0].Equals(aGame[4]) & aGame[0].Equals(aGame[8]) & !aGame[0].Equals(\' \')) \n utility = aGame[0].Equals(machineChar) ? utility.MaxWin : utility.MinWin;\n //De 2e diagonale rij\n if (aGame[2].Equals(aGame[4]) & aGame[2].Equals(aGame[6]) & !aGame[2].Equals(\' \')) \n utility = aGame[2].Equals(machineChar) ? utility.MaxWin : utility.MinWin;\n \n return utility;\n }\n#endif\n\n private bool TerminalTest (string pGame) \n {\n bool terminal = false; //Standaard voorwaarde\n if (pGame.IndexOf(\' \') == -1) //Controle of de \'grid\' vol is\n terminal = true;\n else\n terminal = (UtilityTest(pGame) == utility.Draw) ? false : true; // Check if someone has won\n return terminal;\n }\n }\n}\n[/code]\n\nGewoon het commentaar in een reply mag ook. \n\nIk heb deze code van internet af en enigzins aangepast maar ik snap nog weinig van het geheel, vandaar mijn vraag of iemand met wat commentaar in de code kan toelichten hoe het werkt, hoeft niet geheel uitgebreid maar dat ik een beetje een idee krijg.\n\nIk zou het fijn vinden als iemand mij hiermee zou kunnen helpen.\n\nGroet,\nJeroen
Link naar reactie

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

  • Populaire leden

    Er is nog niemand die deze week reputatie heeft ontvangen.

  • Leden

    Geen leden om te tonen

×
×
  • Nieuwe aanmaken...