public ComputerBrain(Types vType, Deelnemer vDeelnemer, PointTypes vPointType) { SetDeelNemer(vDeelnemer); SetTroefType(vType); SetPointType(vPointType); InitializeTroefKaarten(); kaartenGespeeld = new List<Kaart>(); }
public Deelnemer CalculateWinnerOfGame(Deelnemer human, Deelnemer computer) { if (SoortSpel == PointTypes.POINTS) { return points(human, computer); } //winnen op aantal kaarten else if (SoortSpel == PointTypes.NUMBEROFCARDS) { return numberofcards(human, computer); } //punten van speler zetten en kijken op welk soort hij het meeste heeft ingezet else { if (PointsOnNumberOfCards > PointsOnPoints) { //Er staan meer return numberofcards(human, computer); } else { return points(human, computer); } } }
public void SetDeelNemer(Deelnemer vdeelnemer) { this.deelNemer = vdeelnemer; }
public void StartUpDataWasEntered(string name, int totalpoints, string typeOfPoints, int pointsOnPoints, int pointsOnCards, string troef) { errormessage = ""; //Check name Regex r = new Regex(@"[^a-zA-Z]"); if (r.IsMatch(name)) { //Error met naam errormessage += "Your name contained illegal characters (most likely a space)."; } if (name.Length == 0) { errormessage += " You filled in an empty name."; } bool possible = false; if (pointsOnPoints < 0 || pointsOnCards < 0 || totalpoints > 1000) { errormessage += " You typed an invalid amount."; } else { possible = calc.CalculateIfPointsArePossible(totalpoints, pointsOnPoints, pointsOnCards); } //Error if (!possible) { errormessage += " The points you enter must be (max) half of your total points and you cannot have negative points entered."; } //Check typeOfPoints PointTypes pt = PointTypes.POINTS; if (typeOfPoints != null && typeOfPoints.Length > 0) { pt = (PointTypes)Enum.Parse(typeof(PointTypes), typeOfPoints); } else { //Error met PointTypesEnum errormessage += " Your type of pointdistributor was invalid."; } //Check Troef bool validTroef = false; if (troef != null && troef.Length > 0) { validTroef = lib.SetTroef(troef); } if (!validTroef) { //Error met troef errormessage += " Your troef was invalid."; } if (errormessage != "") { //Update view met errormessage UpdateViews(ViewCommunicationTypes.ERROR); } else { //Als playernaam nog niet bestaat, sla deze dan op met zijn punten via config if (!playersWithPoints.ContainsKey(name)) { conf.SetPlayerAndPoints(name, totalpoints); } //Set soort spel in PointCalculator en geef ook de punten mee. calc.SoortSpel = pt; //Zet troef als troef... //al gedaan hierboven ^ calc.Troef = lib.GetTroef(); calc.PointsOnPoints = pointsOnPoints; calc.PointsOnNumberOfCards = pointsOnCards; //Maak Kaartenspel aan //Al gedaan via constructor... //Schud de kaarten lib.ShakeCards(); //Maak human player List<KaartenLib.Kaart> kaartenspeler = new List<KaartenLib.Kaart>(10); for (int i = 0; i < 10; i++) { kaartenspeler.Add(lib.PullTopCard()); } lib.FlipCardsToFrontSide(ref kaartenspeler); humanPlayer = new Deelnemer(name, kaartenspeler, totalpoints); //Maak computer player List<KaartenLib.Kaart> kaartencomp = new List<KaartenLib.Kaart>(10); for (int i = 0; i < 10; i++) { kaartencomp.Add(lib.PullTopCard()); } computerPlayer = new Deelnemer("computer", kaartencomp, 1000); //Maak de computerbrain en geef jezelf en de computer mee brain = new ComputerBrain(lib.GetTroef(), computerPlayer, pt); //Maak nieuwe View aan. System.Windows.Forms.Form f = (System.Windows.Forms.Form)activeView; f.Close(); f.Dispose(); activeView = new Game(this, controller); activeView.SetVisible(true); } }
public Deelnemer CalculateWinnerOfRound(Deelnemer human, Kaart kaartspeler, Deelnemer computer, Kaart kaartcomputer, bool humanPlayedFirst) { if (humanPlayedFirst) { if (kaartspeler.Type == kaartcomputer.Type) { //Kijk naar Waarde van kaarten if (fromWaardesToPointsPerValue(kaartspeler.Waarde) > fromWaardesToPointsPerValue(kaartcomputer.Waarde)) { return human; } else { return computer; } } else if (kaartcomputer.Type != Troef && kaartspeler.Type != kaartcomputer.Type) { //Speler wint want computer heeft gewoon een random kaart gelegd... return human; } else if (kaartcomputer.Type == Troef && kaartspeler.Type != Troef) { //Computer wint want die heeft een troef gelegd return computer; } } else { if (kaartspeler.Type == kaartcomputer.Type) { //Kijk naar Waarde van kaarten if (fromWaardesToPointsPerValue(kaartspeler.Waarde) > fromWaardesToPointsPerValue(kaartcomputer.Waarde)) { return human; } else { return computer; } } else if (kaartspeler.Type != Troef && kaartspeler.Type != kaartcomputer.Type) { //Computer wint want speler heeft gewoon een random kaart gelegd... return computer; } else if (kaartspeler.Type == Troef && kaartcomputer.Type != Troef) { //Speler wint want die heeft een troef gelegd return human; } } //Normaal niet nodig maar hij klaagt als deze return er niet is omdat ik hierop terecht kom als em niet in de else-iffen gaat. return computer; }
private Deelnemer points(Deelnemer human, Deelnemer comp) { //Lijst human afgaan en alle punten optellen int humanpoints = 0; int comppoints = 0; foreach (Kaart k in human.KaartenOpTafelGewonnen) { humanpoints += (int) fromWaardesToPointsPerValue(k.Waarde); } foreach (Kaart k in comp.KaartenOpTafelGewonnen) { comppoints += (int) fromWaardesToPointsPerValue(k.Waarde); } if (humanpoints > comppoints) { return human; } else { return comp; } }
private Deelnemer numberofcards(Deelnemer human, Deelnemer comp) { if (human.AantalBeurtenGewonnen > comp.AantalBeurtenGewonnen) { return human; } else { return comp; } }
public int GetNewTotalpoints(Deelnemer human, Deelnemer computer) { int total = human.Totalpoints; if (SoortSpel == PointTypes.POINTS) { //Human wint if (human.Equals(CalculateWinnerOfGame(human, computer))) { total += (PointsOnPoints * 2); } //Computer wint else { total -= (PointsOnPoints * 2); } } //winnen op aantal kaarten else if (SoortSpel == PointTypes.NUMBEROFCARDS) { //Human wint if (human.Equals(CalculateWinnerOfGame(human, computer))) { total += (PointsOnNumberOfCards * 2); } //Computer wint else { total -= (PointsOnNumberOfCards * 2); } } //punten van speler zetten en kijken op welk soort hij het meeste heeft ingezet else { //Human wint if (human.Equals(CalculateWinnerOfGame(human, computer))) { total += (PointsOnPoints * 2); } //Computer wint else { total -= (PointsOnPoints * 2); } //Human wint if (human.Equals(CalculateWinnerOfGame(human, computer))) { total += (PointsOnNumberOfCards * 2); } //Computer wint else { total -= (PointsOnNumberOfCards * 2); } } return total; }