/// <summary> /// EvalGame bestimmt, ob Player1 oder Player2 gewonnen hat. Falls /// </summary> /// <param name="player1Selection">Wahl des Player1</param> /// <param name="player2Selection">Wahl des Player2</param> /// <returns>Gewinner des Spiels: /// - 1 falls Player1 gewonnen hat /// - 2 falls Player2 gewonnen hat /// - 0 im Fall eines Unentschieden</returns> public static int EvalGame(ESchereSteinPapier player1Selection, ESchereSteinPapier player2Selection) { if (player2Selection == player1Selection) { return(0); } else { switch (player1Selection) { case ESchereSteinPapier.Papier: if (player2Selection == ESchereSteinPapier.Stein) { return(1); } break; case ESchereSteinPapier.Schere: if (player2Selection == ESchereSteinPapier.Papier) { return(1); } break; case ESchereSteinPapier.Stein: if (player2Selection == ESchereSteinPapier.Schere) { return(1); } break; } return(2); } }
public ESchereSteinPapier SchereSteinPapier(int nrOfInvocations, ESchereSteinPapier ownSelection, ESchereSteinPapier adversarialSelection) { var attempt = nrOfInvocations + 1; /// add your own code here if (!_playStrategies.TryGetValue(Name, out Func <int, ESchereSteinPapier, ESchereSteinPapier, ESchereSteinPapier> fun)) { fun = DummyToss; } var toss = fun(nrOfInvocations, ownSelection, adversarialSelection); //Console.WriteLine("{0}. attempt -> {1}", attempt, toss); return(toss); }
public ESchereSteinPapier SchereSteinPapier(int nrOfInvocations, ESchereSteinPapier ownSelection, ESchereSteinPapier adversarialSelection) { return((ESchereSteinPapier)0); }
private ESchereSteinPapier RoundRobinToss(int nrOfInvocation, ESchereSteinPapier ownSelection, ESchereSteinPapier adversarialSelection) { return((ESchereSteinPapier)((int)(ownSelection + 2) % 3)); }
private ESchereSteinPapier NeuronalNetworkToss(int nrOfInvocation, ESchereSteinPapier ownSelection, ESchereSteinPapier adversarialSelection) { return(_network.SchereSteinPapier(nrOfInvocation, ownSelection, adversarialSelection)); }
private ESchereSteinPapier RandomToss(int nrOfInvocations, ESchereSteinPapier ownSelection, ESchereSteinPapier adversarialSelection) { return((ESchereSteinPapier)(int)(_rand.NextDouble() * 3)); }
private ESchereSteinPapier DummyToss(int nrOfInvocations, ESchereSteinPapier ownSelection, ESchereSteinPapier adversarialSelection) { return(ESchereSteinPapier.Papier); }