コード例 #1
0
ファイル: Program.cs プロジェクト: MikkelVibe/mastermind
        static void ChooseDifficulty() // her laver jeg en funktion som jeg kalder "ChooseDifficulty" dette er så jeg kan refere til den senere i teksten
        {
            bool       isValid    = false;
            Mastermind mastermind = new Mastermind(); // her referer jeg til min klasse mastermind og navngiver den Mastermind

            while (!isValid)                          //hvis brugeren har valgt at trykke 3 vil den udskrive "For medium press 1, for hardmode press 2"
            {
                Console.Clear();
                Console.WriteLine("For medium press 1, for hardmode press 2");

                string difficult = Console.ReadLine();
                Console.Clear();

                switch (difficult) //her lavet jeg en swich til mine 2 cases
                {
                case "1":          // hvis 1 er valgt vil udkommet være korrekt og den vil derfor køre mastermind classen 1
                    isValid = true;
                    mastermind.Run(1);
                    break;    // Jeg siger her at den skal stoppe med at læse koden og den vil derfor gå videre til mastermind clasen

                case "2":     // hvis 2 er valgt vil udkommet være korrekt og den vil derfor køre mastermind classen 2
                    isValid = true;
                    mastermind.Run(2);
                    break;     // Jeg siger her at den skal stoppe med at læse koden og den vil derfor gå videre til mastermind classen
                }
            }
        }
コード例 #2
0
        static void Main(string[] args)
        {
            Console.WriteLine("mmmmmastermind");
            Mastermind b = new Mastermind();

            b.GenerateRandomNumber();
        }
コード例 #3
0
ファイル: FrmMain.cs プロジェクト: robin-vandaele/Mastermind
		} /*btnHint_Click*/

		public void btnGiveFeedBack_Click(object sender, EventArgs e) {
			if (!Mastermind.gameIsOver()) {
				try {
					Button btn = sender as Button;
					byte correcPlaceAndCol = 0;
					byte correctCol = 0;
					for (int i = 0; i < Mastermind.GameState.NrOfPins; i++) {
						if (CtrlController.LblArrayFeedBackPins[Mastermind.GameState.TurnNumber - 1, i].BackColor == Color.Black) {
							correcPlaceAndCol++;
						}
						if (CtrlController.LblArrayFeedBackPins[Mastermind.GameState.TurnNumber - 1, i].BackColor == Color.White) {
							correctCol++;
						}
					}
					Feedback fb = new Feedback(correcPlaceAndCol, correctCol);
					ColorSequence newGuess = Mastermind.MSolver.makeGuess(fb);
					if (Mastermind.gameIsOver()) {
						MessageBox.Show(Mastermind.GameState.Won ? "Won" : "Lost");
					} else {
						for (byte i = 0; i < newGuess.Length; i++) {
							CtrlController.LblArrayPlayer[Mastermind.GameState.TurnNumber - 1, i].BackColor =
								Color.FromName(newGuess.getColorOnPlace(i).ToString());
						}
						if (btn != null) btn.Top += 50;
						pnlPlace.ScrollControlIntoView(CtrlController.LblArrayPlayer[Mastermind.GameState.TurnNumber - 1, 0]);
					}
				} catch (ArgumentOutOfRangeException) {
					MessageBox.Show(Mastermind.GameState.Won ? "Won" : "You must have made a mistake, I can't do anything anymore");
				}
			}
		} /*btnGiveFeedBack_Click*/
コード例 #4
0
ファイル: Program.cs プロジェクト: AlejandroTorres243/.Net
        static void Main(string[] args)
        {
            Mastermind Juego = new Mastermind();

            Juego.Bienvenida();
            

        }
コード例 #5
0
        public Mastermind InsertMastermind(Mastermind mastermind)
        {
            var collection = _database.GetCollection <Mastermind>("mastermind");

            collection.InsertOne(mastermind);

            return(mastermind);
        }
コード例 #6
0
ファイル: Program.cs プロジェクト: Dawidgrad/Mastermind
        //=======================================================//
        //                    Game methods                       //
        //=======================================================//

        // Start the program
        static void Main(string[] args)
        {
            Mastermind mastermind = new Mastermind();

            mastermind.StartGame();

            Console.WriteLine("End of the game. Press any key to end.");
            Console.ReadKey();
        }
コード例 #7
0
        public static void Main(string[] args)
        {
            Mastermind mastermind = new Mastermind(NUM_OF_TRIES);

            while (true)
            {
                mastermind.Play();
            }
        }
コード例 #8
0
        public void Post_SingleMastermind_ReturnsMastermind()
        {
            var mastermind = new Mastermind {
                Name = "test"
            };

            var result = _ctrl.Post(mastermind);

            Assert.Equal(mastermind.Name, result.Name);
        }
コード例 #9
0
        public void GetMastermind_ValidName_ReturnsMastermind()
        {
            var mastermind = new Mastermind();

            _mockDAO.Setup(m => m.GetMastermind(It.IsAny <string>())).Returns(mastermind);

            var result = _blc.GetMastermind("test");

            Assert.Equal(mastermind, result);
        }
コード例 #10
0
ファイル: Program.cs プロジェクト: davidoff28/Mastermind
        public static void Start()
        {
            _mastermind = new Mastermind(13);
            _mastermind.IntroScreen();

            while (_mastermind.IsRunning)
            {
                _mastermind.Run();
            }
        }
コード例 #11
0
        public void PostMastermind_NewMastermind_InsertsMastermind()
        {
            var mastermind = new Mastermind();

            _mockDAO.Setup(m => m.GetMastermind(It.IsAny <string>())).Returns((Mastermind)null);

            var result = _blc.PostMastermind(mastermind);

            _mockDAO.Verify(m => m.InsertMastermind(mastermind));
        }
コード例 #12
0
        public void PostMastermind_ExistingMastermind_UpdatesMastermind()
        {
            var mastermind = new Mastermind();

            _mockDAO.Setup(m => m.GetMastermind(It.IsAny <string>())).Returns(mastermind);

            var result = _blc.PostMastermind(mastermind);

            _mockDAO.Verify(m => m.UpdateMastermind(mastermind));
        }
コード例 #13
0
ファイル: FrmMain.cs プロジェクト: robin-vandaele/Mastermind
		} /*toolStripUsage_Click*/

		private void toolStripNew_Click(object sender, EventArgs e) {
			CtrlController.removeAllControls();
			try {
				byte nrOfTries = Mastermind.GameState.NrOfTries;
				byte nrOfPins = Mastermind.GameState.NrOfPins;
				byte nrOfAvailableColors = Mastermind.GameState.NrOfAvailableColors;
				bool computerisPlaying = Mastermind.GameState.ComputerIsPlaying;
				Mastermind = new Mastermind(nrOfTries, nrOfPins, nrOfAvailableColors, computerisPlaying);
			} catch (Exception) {
				Mastermind = new Mastermind();
			}
			CtrlController.drawFrm();
		} /*toolStripNew_Click*/
コード例 #14
0
        public Mastermind PostMastermind(Mastermind mastermind)
        {
            var result = _dao.GetMastermind(mastermind.Name);

            if (result == null)
            {
                return(_dao.InsertMastermind(mastermind));
            }
            else
            {
                return(_dao.UpdateMastermind(mastermind));
            }
        }
コード例 #15
0
        public Mastermind UpdateMastermind(Mastermind mastermind)
        {
            var collection = _database.GetCollection <Mastermind>("mastermind");
            var builder    = Builders <Mastermind> .Filter;
            var filter     = builder.Where(m => m.Name == mastermind.Name);
            var update     = Builders <Mastermind> .Update
                             .Set("name", mastermind.Name)
                             .Set("edition", mastermind.Edition)
                             .Set("rules", mastermind.Rules);

            collection.UpdateOne(filter, update);

            return(mastermind);
        }
コード例 #16
0
ファイル: MastermindAI.cs プロジェクト: robwil/Mastermind.Net
        bool[] whiteVisited; // store if we recorded a white hit here

        public MastermindAI(Mastermind mastermind)
        {          
            this.mastermind = mastermind;
            csc = new ColorSequenceComparer();
            current_set = new HashSet<ColorSequence>();
            generatePossibilities(new ColorSequence(), 0);

            blackVisited = new bool[DEPTH];
            whiteVisited = new bool[DEPTH];
            
            stopWatch = new Stopwatch();
            stopWatch.Start();            
            play();            
            mastermind.revealAnswer();
        }
コード例 #17
0
ファイル: FrmMain.cs プロジェクト: robin-vandaele/Mastermind
		} /*btnGuess_Click*/

		public void btnHint_Click(object sender, EventArgs e) {
			if (!Mastermind.gameIsOver()) {
				try {
					ColorSequence guess = Mastermind.MSolver.giveHint();
					for (byte i = 0; i < guess.Length; i++) {
						CtrlController.LblArrayPlayer[Mastermind.GameState.TurnNumber - 1, i].BackColor =
							Color.FromName(guess.getColorOnPlace(i).ToString());
					}
					passGuessAndGetFeedback(guess);
				} catch (IndexOutOfRangeException) {
					MessageBox.Show(
						string.Format("I can't seem to resolve the puzzel"), string.Format("Error"));
				}
			}
		} /*btnHint_Click*/
コード例 #18
0
ファイル: FrmMain.cs プロジェクト: robin-vandaele/Mastermind
		public void btnGuess_Click(object sender, EventArgs e) {
			if (!Mastermind.gameIsOver()) {
				try {
					ColorSequence guess = new ColorSequence();
					for (int i = 0; i < Mastermind.GameState.NrOfPins; i++)
						guess.addLast(
							ClrPicker.parseEnum <Colors>(
								CtrlController.LblArrayPlayer[Mastermind.GameState.TurnNumber - 1, i].BackColor.ToKnownColor().ToString()));
					passGuessAndGetFeedback(guess);
				} catch (ArgumentException) {
					MessageBox.Show(
						string.Format("Every pin must have a color and a color can't be used twice..."), string.Format("Error"));
				}
			}
		} /*btnGuess_Click*/
コード例 #19
0
        public Mastermind Post([FromBody] Mastermind mastermind)
        {
            try
            {
                if (mastermind == null)
                {
                    throw new HttpRequestException("Invalid mastermind");
                }

                return(_blc.PostMastermind(mastermind));
            }
            catch (Exception ex)
            {
                throw new HttpRequestException(ex.Message);
            }
        }
コード例 #20
0
ファイル: FrmMain.cs プロジェクト: robin-vandaele/Mastermind
		} /*CenterThisScreen*/

		private void showOptions() {
			FrmOptions options = new FrmOptions();
			if (Mastermind != null)
				options = new FrmOptions(Mastermind.GameState.NrOfTries, Mastermind.GameState.NrOfPins,
					Mastermind.GameState.NrOfAvailableColors,
					Mastermind.GameState.ComputerIsPlaying);
			options.ShowDialog();
			if (options.ClickedOk) {
				CtrlController.removeAllControls();
				Mastermind = new Mastermind(options.getOptions());
				CtrlController.drawFrm();
				if (!Mastermind.GameState.ComputerIsPlaying) {
					CtrlController.highlightAccesiblePlayerLabels();
				}
			}
		} /*showOptions*/
コード例 #21
0
        public void testColorIsUnique() {
            Mastermind mm = new Mastermind();
            GameState settings = mm.GameState;
            ColorSequence secretcombo = mm.GameState.SecretCombo;
            byte lengthOfSecretCombo = 4;

            for (byte i = 0; i < lengthOfSecretCombo; i++) {
                byte colorFrequency = 0;
                for (byte j = 0; j < settings.NrOfPins; j++) {
						 if (secretcombo.getColorOnPlace(i) == secretcombo.getColorOnPlace(j)) {
                        colorFrequency++;
                    }
                }
                Assert.AreEqual(1, colorFrequency);
                colorFrequency--;
            }
        }/*testColorIsUnique*/
コード例 #22
0
        public void testCreateSecretComboOnAvailableColors() {
            Mastermind mm = new Mastermind();
            GameState settings = mm.GameState;
            ColorSequence secretcombo = mm.GameState.SecretCombo;
            byte lengthOfSecretCombo = 4;
            byte nrPermittedOfColors = 0;

            for (byte i = 0; i < lengthOfSecretCombo; i++) {
                for (byte j = 0; j < settings.NrOfAvailableColors; j++) {
                    if (secretcombo.getColorOnPlace(i) == (Colors)j) {
                        nrPermittedOfColors++;
                    }
                }
            }

            Assert.AreEqual(nrPermittedOfColors, lengthOfSecretCombo);
        }/*testCreateSecretComboOnAvailableColors*/
コード例 #23
0
        static void Main(string[] args)
        {
            bool debugging  = false;
            bool allCorrect = false;
            int  turn       = 0;
            var  game       = new Mastermind();

            game.gameWelcome();

            if (debugging)
            {
                game.printComputerCode();
            }
            do
            {
                turn++;
                Console.WriteLine($"You are on turn {turn}.");
                //Enter Human Guess, converts it to array and checks it against computer code
                Console.Write("Type your guess: ");
                String   sHumanGuess = Console.ReadLine();
                string[] cHumanGuess = sHumanGuess.Split(' ');
                int[]    iHumanGuess = Array.ConvertAll(cHumanGuess, Int32.Parse);

                int blackPegs = game.positionsRight(iHumanGuess);
                int whitePegs = (game.colorsRight(iHumanGuess) - blackPegs);
                //Displays black and white pegs if black pegs does not equal four.
                if (blackPegs != 4)
                {
                    Console.WriteLine($"You have {blackPegs} Black Pegs ");
                    Console.WriteLine($"and {whitePegs} White Pegs.");
                }
                else
                {
                    allCorrect = true;
                }
            } while ((allCorrect == false) && (turn < 10));

            if (turn >= 10)
            {
                game.printComputerCode();
            }
            else
            {
                Console.WriteLine("Congradulations! You guessed the correct code!");
            }
        }
コード例 #24
0
ファイル: Program.cs プロジェクト: vraedac/mastermind
        static void Main(string[] args)
        {
            int[] solution = GenerateSolution();
            var   game     = new Mastermind(solution);

            Console.Write("Welcome to Mastermind.  Start Guessing: ");

            while (!game.IsComplete)
            {
                var input = Console.ReadLine();

                try
                {
                    var(result, hint) = game.Guess(input);

                    if (result)
                    {
                        Console.WriteLine("Congratulations, you've won!");
                    }
                    else if (!game.IsComplete)
                    {
                        Console.WriteLine($"Incorrect answer.  Hint: {hint}; {game.GuessesRemaining} guesses remaining.");
                        Console.Write("Next guess: ");
                    }
                    else
                    {
                        Console.WriteLine($"Sorry, you have lost!  The solution was {string.Join(string.Empty, solution)}.");
                    }

                    if (game.IsComplete)
                    {
                        Console.WriteLine("Press any key to exit.");
                        Console.ReadKey();
                        break;
                    }
                }
                catch (Exception e)
                {
                    Console.Error.WriteLine(e.Message);
                }
            }
        }
コード例 #25
0
ファイル: FrmMain.cs プロジェクト: robin-vandaele/Mastermind
		} /*showOptions*/

		private void passGuessAndGetFeedback(ColorSequence guess) {
			Feedback feedback = Mastermind.checkAnswerAndGiveFeedbackFor(guess);
			int tmp = 0;
			for (byte j = 0; j < feedback.CorrectPositionAndColor; j++) {
				CtrlController.LblArrayFeedBackPins[Mastermind.GameState.TurnNumber - 2, tmp].BackColor = Color.Black;
				tmp++;
			}
			for (byte j = 0; j < feedback.CorrectColor; j++) {
				CtrlController.LblArrayFeedBackPins[Mastermind.GameState.TurnNumber - 2, tmp].BackColor = Color.White;
				tmp++;
			}
			if (Mastermind.gameIsOver()) {
				MessageBox.Show(Mastermind.GameState.Won ? "Won" : "Lost");
				CtrlController.unvealSecret();
			} else {
				if (CtrlController.BtnGuess != null) CtrlController.BtnGuess.Top += 50;
				pnlPlace.ScrollControlIntoView(CtrlController.LblArrayPlayer[Mastermind.GameState.TurnNumber - 1, 0]);
				CtrlController.highlightAccesiblePlayerLabels();
			}
		} /*passGuessAndGetFeedback*/
コード例 #26
0
 public void testCreateSecretComboOnLength() {
     Mastermind mm = new Mastermind();
     ColorSequence secretcombo = mm.GameState.SecretCombo;
     byte lengthOfSecretCombo = 4;
     Assert.AreEqual(secretcombo.Length, lengthOfSecretCombo);
 }/*testCreateSecretComboOnLength*/
コード例 #27
0
 static void Main(string[] args)
 {
     Mastermind test = new Mastermind();
 }
コード例 #28
0
ファイル: FrmMain.cs プロジェクト: robin-vandaele/Mastermind
		} /*lblArrayPlayer_DragDrop*/

		public void lblArrayPlayer_DragEnter(object sender, DragEventArgs e) {
			Label lbl = sender as Label;
			if (lbl != null && int.Parse(lbl.Tag.ToString()) == Mastermind.GameState.TurnNumber - 1 && !Mastermind.gameIsOver()) {
				e.Effect = DragDropEffects.Copy;
			}
		} /*lblArrayPlayer_DragEnter*/
コード例 #29
0
ファイル: FrmMain.cs プロジェクト: robin-vandaele/Mastermind
		} /*lbl_MouseHover*/

		public void lblArrayPlayer_MouseClick(object sender, MouseEventArgs e) {
			Label lbl = sender as Label;
			if (lbl != null && int.Parse(lbl.Tag.ToString()) == Mastermind.GameState.TurnNumber - 1 && !Mastermind.gameIsOver()) {
				string backColor = lbl.BackColor.ToKnownColor().ToString();
				lbl.BackColor = ClrPicker.nextOrPreviousAvailableColor(Mastermind.GameState.NrOfAvailableColors,
					e.Button == MouseButtons.Right,
					backColor);
			}
		} /*lblArrayPlayer_MouseClick*/
コード例 #30
0
ファイル: FrmMain.cs プロジェクト: robin-vandaele/Mastermind
		} /*lblArrayAvailable_MouseDown*/

		public void lblArrayFeedBackPins_MouseClick(object sender, MouseEventArgs e) {
			Label lbl = sender as Label;
			if (lbl != null && int.Parse(lbl.Tag.ToString()) == Mastermind.GameState.TurnNumber - 1 && !Mastermind.gameIsOver())
				lbl.BackColor = ClrPicker.nextFeedBackColor(lbl.BackColor.ToKnownColor().ToString());
		}