コード例 #1
0
 public Projectiel_van_ventje(Spel spel, Point startpunt, Direction direction)
 {
     _direction = direction;
     _spel = spel;
     _locatie = startpunt;
     _gestopt = false;
 }
コード例 #2
0
        public bool AcceptSurrender(string player, Spel game)
        {
            using (SqlConnection sqlCon = new SqlConnection(ConnectionString))
            {
                sqlCon.Open();
                var sqlCmd = new SqlCommand("UPDATE Games SET " + player + " = 1 WHERE Token = @gameToken", sqlCon);

                sqlCmd.Parameters.AddWithValue("@gameToken", game.Token);
                var result = sqlCmd.ExecuteNonQuery();
                sqlCon.Close();

                if (result > 0)
                {
                    return(true);
                }
            }
            return(false);
        }
コード例 #3
0
        public IActionResult JoinPost(int id)
        {
            Spel spel = _spelService.GetSpel(id);

            if (_spelService.GetSpellen(_authService.Get()).Count(x => !x.Afgelopen() && !x.Cancelled) > 0)
            {
                return(new RedirectResult("/game"));
            }

            if (spel.Speler2 != null || spel.Afgelopen() || spel.Cancelled)
            {
                return(new RedirectResult("/game"));
            }

            spel = _spelService.JoinSpel(spel);

            return(new RedirectResult($"/index.html?token={Base64UrlEncoder.Encode(spel.Speler2Token)}"));
        }
コード例 #4
0
        public ActionResult Create([Bind("Omschrijving")] Spel spel)
        {
            ClaimsPrincipal currentUser = this.User;

            if (_helper.CheckVoorSpel(this.User) != null)
            {
                return(RedirectToAction("Details", "Spel", new { id = _helper.CheckVoorSpel(this.User).Token }));
            }
            else if (ModelState.IsValid)
            {
                //maak een nieuw spel en post het naar de API
                spel.Speler1Token = currentUser.FindFirst(ClaimTypes.NameIdentifier).Value;
                string GameApiUri = "api/spel";
                var    response   = _client.PostAsJsonAsync(GameApiUri, spel).Result;
                return(RedirectToAction(nameof(Index)));
            }
            return(View());
        }
コード例 #5
0
        private void startSpel()
        {
            /*
             * frmNaamTypeKiezen kiesNaam = new frmNaamTypeKiezen(this);
             * int xPos = this.Location.X + (this.Size.Width / 2) - (kiesNaam.Size.Width / 2);
             * int yPos = this.Location.Y + (this.Size.Height / 2) - (kiesNaam.Size.Height / 2);
             * kiesNaam.Location = new Point(xPos,yPos);
             * kiesNaam.ShowDialog();
             */
            if (btnStart.Text.Equals("Start"))
            {
                //Kruis = 0
                //Rondje = 1
                //Vierkant = 2
                int rondjeGekozen = 0;
                if (comboType.SelectedIndex == 1)
                {
                    rondjeGekozen = 1;
                }
                else if (comboType.SelectedIndex == 2)
                {
                    rondjeGekozen = 2;
                }

                setSpelerNaamEnType("", rondjeGekozen);
                comboType.Enabled  = false;
                comboKleur.Enabled = false;
                btnStart.Text      = "Stop";
                btnReset.Enabled   = true;
                enableDisablePlayLevelChosers(false);
            }
            else
            {
                setInfoMessage("-");
                btnStart.Text      = "Start";
                btnReset.Enabled   = false;
                comboType.Enabled  = true;
                comboKleur.Enabled = true;
                spel = null;
                enableDisablePlayLevelChosers(true);
                clearAllLabels();
            }
        }
コード例 #6
0
 public void RedHit(Spel r1)
 {
     if (r1.stamina > 0 && armor > 0)
     {
         hp = hp + (armor / 2 * r1.stamina / 2 * hp / 2) / 10;
     }
     else if (r1.stamina > 0)
     {
         hp = hp + (r1.stamina / 2 * hp / 2) / 10;
     }
     else if (armor > 0)
     {
         hp = hp + (armor / 2 * hp / 2) / 10;
     }
     else
     {
         hp = hp * hp / 10;
     }
 }
コード例 #7
0
        public Speler(Spel spel, int speler)
        {
            playerInt = speler;
            // stukken aanmaken
            this.spel = spel;

            Stukken = new List <Stuk>();
            string stukKleur = "zwart";

            if (speler == 0)
            {
                stukKleur = "wit";
            }

            for (int i = 0; i < 6; i++)
            {
                Stukken.Add(new Stuk(stukKleur, i + 1));
            }
        }
コード例 #8
0
        public ActionResult Join(string token)
        {
            Spel _spel = _context.Spellen.FirstOrDefault(x => x.Token == token);

            int   spelUsers   = 0;
            Kleur spelerKleur = Kleur.Geen;

            if (_spel != null)
            {
                foreach (var speler in _identityContext.Users.ToList())
                {
                    if (speler.SpelToken == _spel.Token)
                    {
                        spelUsers++;
                        spelerKleur = speler.Kleur.Value;
                    }
                }

                if (spelUsers == 1)
                {
                    if (spelerKleur == Kleur.Wit)
                    {
                        _currentUser.Kleur = Kleur.Zwart;
                    }
                    else
                    {
                        _currentUser.Kleur = Kleur.Wit;
                    }
                    _currentUser.SpelToken = token;
                    _identityContext.SaveChanges();
                    return(RedirectToAction(nameof(Game)));
                }
                else
                {
                    return(RedirectToAction(nameof(Index)));
                }
            }
            else
            {
                return(RedirectToAction(nameof(Index)));
            }
        }
コード例 #9
0
 protected Veld BlokkerendVeld(Spel spel)
 {
     foreach (Lijn lijn in spel.Bord.Lijnen)
     {
         //Indien er op een lijn nog 1 vrij veld is, en 2 velden die door de tegenstander zijn bezet:
         if (lijn.AantalVrijeVelden() == 1 && lijn.AantalVelden(Tegenstander) == 2)
         {
             //Lever het nog vrij veld op.
             foreach (Veld v in lijn.Velden)
             {
                 if (v.IsVrij())
                 {
                     return(v);
                 }
             }
             //of: return lijn.Velden.First(veld => veld.IsVrij());
         }
     }
     return(null);
 }
コード例 #10
0
        public async Task <IActionResult> Scores([FromBody] Spel spel)
        {
            var spelerZwart = await _context.Speler.FindAsync(spel.Speler1token);

            var spelerWit = await _context.Speler.FindAsync(spel.Speler2token);

            var zwartScore = 0;
            var witScore   = 0;

            foreach (var kleur in spel.Bord)
            {
                if (kleur == Kleur.Wit)
                {
                    witScore++;
                }
                else if (kleur == Kleur.Zwart)
                {
                    zwartScore++;
                }
            }

            if (witScore > zwartScore)
            {
                spelerWit.AantalGewonnen++;
                spelerZwart.AantalVerloren++;
            }
            else if (witScore == zwartScore)
            {
                spelerWit.AantalGelijk++;
                spelerZwart.AantalGelijk++;
            }
            else if (zwartScore > witScore)
            {
                spelerZwart.AantalGewonnen++;
                spelerWit.AantalVerloren++;
            }

            await _context.SaveChangesAsync();

            return(Ok());
        }
コード例 #11
0
        public override Veld VerkiestVeld(Spel spel)
        {
            //1) Probeer een reeks van de tegenstander te blokkeren:
            Veld blokkerendVeld = BlokkerendVeld(spel);

            if (blokkerendVeld != null)
            {
                return(blokkerendVeld);
            }

            //2) Indien het middelste veld nog vrij is lever deze op:
            Veld middelsteVeld = spel.Bord[1, 1];

            if (middelsteVeld.IsVrij())
            {
                return(middelsteVeld);
            }

            //3) Willekeurig vrij veld opleveren:
            return(base.VerkiestVeld(spel));
        }
コード例 #12
0
        public void setSpelerNaamEnType(String spelerNaam, int rondjeGekozen)
        {
            //Kruis = 0
            //Rondje = 1
            //Vierkant = 2
            SpeelSteenType type;

            if (rondjeGekozen == 0)
            {
                type = SpeelSteenType.KRUIS;
            }
            else if (rondjeGekozen == 1)
            {
                type = SpeelSteenType.RONDJE;
            }
            else
            {
                type = SpeelSteenType.VIERKANT;
            }
            spel = new Spel(spelerNaam, type, getPlayModus());
        }
コード例 #13
0
        //Insert game to database table & insert all cell values into cell table with the game token
        public void AddSpel(Spel spel)
        {
            using (SqlConnection sqlCon = new SqlConnection(ConnectionString))
            {
                SqlCommand sqlCmdOn  = new SqlCommand(IdOn, sqlCon);
                SqlCommand sqlCmdOff = new SqlCommand(IdOff, sqlCon);

                sqlCon.Open();
                sqlCmdOff.ExecuteNonQuery();
                //INSET querys for game and bord
                string addSpelQuery = "INSERT INTO Games (Token, Speler1Token, Omschrijving, AandeBeurt) VALUES(@Token, @Speler1Token, @Omschrijving, @AandeBeurt)";
                string addBordQuery = "INSERT INTO Cell (Token, Row, Col, Kleur) VALUES (@Token, @Row, @Col, @Kleur)";

                SqlCommand sqlCmd = new SqlCommand(addSpelQuery, sqlCon);
                sqlCmd.Parameters.AddWithValue("@Token", spel.Token);
                sqlCmd.Parameters.AddWithValue("@Speler1Token", spel.PlayerToken1);
                sqlCmd.Parameters.AddWithValue("@Omschrijving", spel.Description);
                sqlCmd.Parameters.AddWithValue("@AandeBeurt", spel.AandeBeurt);

                sqlCmd.ExecuteNonQuery();

                //Loops over game bord and adds all cells with x and y locations and the colour that occupies the space and the game token
                for (int i = 0; i < spel.Bord.GetLength(0); i++)
                {
                    for (int j = 0; j < spel.Bord.GetLength(1); j++)
                    {
                        SqlCommand sqlCmdAddBord = new SqlCommand(addBordQuery, sqlCon);
                        sqlCmdAddBord.Parameters.AddWithValue("@Token", spel.Token);
                        sqlCmdAddBord.Parameters.AddWithValue("@Row", i);
                        sqlCmdAddBord.Parameters.AddWithValue("@Col", j);
                        sqlCmdAddBord.Parameters.AddWithValue("@Kleur", spel.Bord[i, j]);
                        sqlCmdAddBord.ExecuteNonQuery();
                    }
                }

                sqlCmdOff.ExecuteNonQuery();
                sqlCon.Close();
            }
        }
コード例 #14
0
        public void PlacePiece(string spelToken, Spel localGame)
        {
            using (SqlConnection sqlCon = new SqlConnection(ConnectionString))
            {
                Console.WriteLine(localGame.Bord);
                sqlCon.Open();
                string addBordQuery = "UPDATE Cell SET kleur = @Kleur WHERE Token = @Token AND Row = @Row AND Col = @Col";
                //Loops over game bord and adds all cells with x and y locations and the colour that occupies the space and the game token
                for (int i = 0; i < localGame.Bord.GetLength(0); i++)
                {
                    for (int j = 0; j < localGame.Bord.GetLength(1); j++)
                    {
                        SqlCommand sqlCmdAddBord = new SqlCommand(addBordQuery, sqlCon);
                        sqlCmdAddBord.Parameters.AddWithValue("@Token", localGame.Token);
                        sqlCmdAddBord.Parameters.AddWithValue("@Row", i);
                        sqlCmdAddBord.Parameters.AddWithValue("@Col", j);
                        sqlCmdAddBord.Parameters.AddWithValue("@Kleur", localGame.Bord[i, j]);

                        Console.WriteLine(DateTime.Now.ToString() + i + ", " + j + localGame.Bord[i, j] + Thread.CurrentThread.ManagedThreadId);
                        sqlCmdAddBord.ExecuteNonQuery();
                    }
                }
                //Check if game is finished & if it is update
                if (localGame.Finished == true)
                {
                    string     addWinner = "UPDATE Games SET Afgelopen = 1, Winnaar = @Winner WHERE Token = @Token";
                    SqlCommand sqlCmd    = new SqlCommand(addWinner, sqlCon);
                    sqlCmd.Parameters.AddWithValue("@Winner", localGame.Winner);
                    sqlCmd.Parameters.AddWithValue("@Token", spelToken);

                    sqlCmd.ExecuteNonQuery();
                }
                sqlCon.Close();
            }
            //Adds te amount of piecies from the other player
            AddPieceToHistory(spelToken, localGame.PlayerToken1, localGame.getPieceAmount(Kleur.Wit));
            AddPieceToHistory(spelToken, localGame.Speler2Token, localGame.getPieceAmount(Kleur.Zwart));
            NextTurn(spelToken, localGame.AandeBeurt);
        }
コード例 #15
0
        public async Task <IActionResult> Create([Bind("ID,Omschrijving,")] Spel spel)
        {
            if (ModelState.IsValid)
            {
                System.Security.Claims.ClaimsPrincipal currentUser = this.User;
                var user = await _userManager.GetUserAsync(currentUser);

                user.Kleur = Kleur.Wit;

                spel.Spelers.Add(user);

                spel.Token      = Guid.NewGuid().ToString();
                spel.AandeBeurt = Kleur.Wit;
                spel.Beurt      = 1;

                _context.Add(spel);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(spel));
        }
コード例 #16
0
        // methode om alle spellen op basis van een filter uit de tabel op te halen
        // ... de tekst die je opgeeft moet een deel van de titel zijn
        public List <Spel> ReadTableFilterNaam(String tekst)
        {
            List <Spel> spellenLijst = new List <Spel>();

            // AANVULLEN
            // SQL-instructie om alle spellen met die moeilijkheidsgraad, alfabetisch gerangschikt, op te vragen
            String sql = "SQL-code aanvullen";

            // SQL-commando dat we willen uitvoeren aanmaken op basis onze SQL-instructie
            MySqlCommand mySqlCommand = new MySqlCommand(sql, _mySqlConnection);

            // AANVULLEN ...
            // @-parameter in het SQL-commando een waarde geven



            // de connectie met de databank openen
            _mySqlConnection.Open();

            // met ExecuteReader laat je een leescommando opstarten
            // ingelezen informatie komt in mySqlDataReader terecht
            MySqlDataReader mySqlDataReader = mySqlCommand.ExecuteReader();

            // lusje om alle records in mySqlDataReader te overlopen
            while (mySqlDataReader.Read() == true)
            {
                // nieuw spel maken met het actieve record in mySqlDataReader
                Spel spel = new Spel(Convert.ToInt32(mySqlDataReader["SpelID"]), mySqlDataReader["Titel"].ToString(), mySqlDataReader["Omschrijving"].ToString(), Convert.ToInt32(mySqlDataReader["AantalSpelersVanaf"]), Convert.ToInt32(mySqlDataReader["AantalSpelersTot"]), Convert.ToInt32(mySqlDataReader["Moeilijkheidsgraad"]), Convert.ToInt32(mySqlDataReader["Spelduur"]), mySqlDataReader["Afbeelding"].ToString());

                // voeg het spel toe aan de lijst
                spellenLijst.Add(spel);
            }

            // de connectie met de databank terug sluiten
            _mySqlConnection.Close();

            // lijst met alle gevonden spellen teruggeven
            return(spellenLijst);
        }
コード例 #17
0
        public ActionResult Create(Spel _speler)
        {
            if (ModelState.IsValid)
            {
                //Set the random token
                _speler.Token          = randomToken();
                _currentUser.SpelToken = _speler.Token;
                //Set the board
                Spel x = new Spel();

                _speler.BordJson   = JsonConvert.SerializeObject(x.Bord);
                _speler.AandeBeurt = Kleur.Wit;
                _currentUser.Kleur = Kleur.Wit;

                _context.Add(_speler);
                _context.SaveChanges();
                _identityContext.SaveChanges();
                return(RedirectToAction(nameof(Game)));
            }

            return(View(_speler));
        }
コード例 #18
0
        public IActionResult Zet([FromBody] Zet zet)
        {
            Debug.WriteLine($"<<zet, Kolom: {zet.kolomZet} Rij: {zet.rijZet}>>");
            Spel spel = iRepository.GetSpel(zet.Token);

            if (spel != null)
            {
                if (zet.Pas)
                {
                    spel.Pas();
                    return(Ok("Passed"));
                }
                else
                {
                    bool zetMogelijk = spel.DoeZet(zet.rijZet, zet.kolomZet);
                    return(Ok(zetMogelijk));
                }
            }
            else
            {
                return(NotFound());
            }
        }
コード例 #19
0
ファイル: AI_Random.cs プロジェクト: rbovenkamp/Imp
        private async void Spel_onNieuweBeurt(object sender, EventArgs e)
        {
            if (sender is Spel)
            {
                Spel spel = sender as Spel;

                if (spel.SpelerAanZet == this)
                {
                    // Asynchroon zodat de UI kan updaten
                    await Task.Delay(denkTijdMiliSec);

                    int aantalMogelijkeZetten = spel.MogelijkeZetten.Count;
                    if (aantalMogelijkeZetten != 0)
                    {
                        Point zet = spel.MogelijkeZetten.Keys
                                    .ToList()
                                    [new Random().Next(0, aantalMogelijkeZetten - 1)];

                        spel.DoeZet(this, zet);
                    }
                }
            }
        }
コード例 #20
0
        public ActionResult <SpelDTO> GetSpel(string token)
        {
            try
            {
                Spel tokenGame = (from game in games
                                  where game.Token == token
                                  select game).First();

                return(new SpelDTO
                {
                    Omschrijving = tokenGame.Omschrijving,
                    Token = tokenGame.Token,
                    Spelers = tokenGame.Spelers,
                    Bord = JsonConvert.SerializeObject(tokenGame.Bord),
                    AandeBeurt = tokenGame.AandeBeurt,
                    Status = null,
                    ID = tokenGame.ID
                });
            }
            catch
            {
                return(null);
            }
        }
コード例 #21
0
        public async Task <IActionResult> Create(string omschrijving)
        {
            string apiUrl        = baseApiUrl + "spel";
            string currentUserID = User.FindFirst(ClaimTypes.NameIdentifier).Value;

            Spel spel = new Spel();

            spel.Omschrijving = omschrijving;
            spel.Speler1token = currentUserID;

            string        json    = JsonConvert.SerializeObject(spel);
            StringContent content = new StringContent(json, Encoding.UTF8, "application/json");

            try
            {
                using (HttpClient client = new HttpClient())
                {
                    var response = await client.PostAsync(apiUrl, content);

                    if (response.StatusCode == System.Net.HttpStatusCode.Created)
                    {
                        return(View());
                    }
                    else
                    {
                        string returnValue = response.Content.ReadAsStringAsync().Result;
                        throw new Exception($"Failed to POST data: ({response.StatusCode}): {returnValue}");
                    }
                }
            }
            catch
            {
            }

            return(View());
        }
コード例 #22
0
ファイル: speldetails1.aspx.cs プロジェクト: dgrial/Playtime
        protected void Page_Load(object sender, EventArgs e)
        {
            //spellenLijst declareren en initialiseren als een lijst van spel-objecten
            List <Spel> spellenLijst = new List <Spel>();

            //een SpelDA-object declareren en initialiseren
            SpelDA spelDA = new SpelDA();

            int spelID = Convert.ToInt32(Request.QueryString["id"]);

            //uit de databank het spel met spelID 2 ophalen (= 7 Wonders)
            //dit spel toewijzen aan een nieuwe Spel-variabele
            Spel spel = spelDA.ReadRecord(spelID);

            //controleer of er een Spel gevonden is
            if (spel != null)
            {
                spellenLijst.Add(spel);

                //het opgehaalde Spel-object wegschrijven in de Repeater
                repeaterSpel.DataSource = spellenLijst;
                repeaterSpel.DataBind();
            }
        }
コード例 #23
0
        public IActionResult Post([FromBody] Spel spel)
        {
            if (!ModelState.IsValid)
            {
                var error = new ErrorMessage(ErrorTypes.BadRequest, "Modelstate invalid");
                return(BadRequest(error));
            }

            try
            {
                _repo.Insert(spel);
                return(Ok());
            }
            catch (DbUpdateException)
            {
                var error = new ErrorMessage(ErrorTypes.DuplicateKey, "This key already exist");
                return(BadRequest(error));
            }
            catch (Exception)
            {
                var error = new ErrorMessage(ErrorTypes.Unknown, "Oops, something went wrong");
                return(NotFound(error));
            }
        }
コード例 #24
0
        //haal één reservatie op uit de tabel op basis van een gegeven reservatieID
        public Reservatie ReadRecord(int reservatieID)
        {
            Spel       spel       = null;
            Reservatie reservatie = null;

            // SQL-instructie om één reservatie te lezen
            String sql = "SELECT * FROM tblReservaties INNER JOIN tblSpellen ON tblReservaties.Spel = tblSpellen.SpelID WHERE ReservatieID = @ReservatieID;";

            //  SQL-commando dat we willen uitvoeren aanmaken op basis onze SQL-instructie
            MySqlCommand mySqlCommand = new MySqlCommand(sql, _mySqlConnection);

            //  parameters in het SQL-commando hun waarde geven
            mySqlCommand.Parameters.AddWithValue("@ReservatieID", reservatieID);

            //  de connectie met de databank openen
            _mySqlConnection.Open();

            // met de methode ExecuteReader() laat je een leescommando opstarten
            // ingelezen informatie komt in mySqlDataReader terecht
            MySqlDataReader mySqlDataReader = mySqlCommand.ExecuteReader();

            // nagaan of een record ingelezen werd in mySqlDataReader
            if (mySqlDataReader.Read() == true)
            {
                // nieuw spelobject aanmaken
                spel = new Spel(Convert.ToInt32(mySqlDataReader["SpelID"]), mySqlDataReader["Titel"].ToString(), mySqlDataReader["Omschrijving"].ToString(), Convert.ToInt32(mySqlDataReader["AantalSpelersVanaf"]), Convert.ToInt32(mySqlDataReader["AantalSpelersTot"]), Convert.ToInt32(mySqlDataReader["Moeilijkheidsgraad"]), Convert.ToInt32(mySqlDataReader["Spelduur"]), mySqlDataReader["Afbeelding"].ToString());
                // nieuw reservatieobject aanmaken, gebruik hiervoor het spelobject
                reservatie = new Reservatie(Convert.ToInt32(mySqlDataReader["ReservatieID"]), Convert.ToInt32(mySqlDataReader["Spel"]), mySqlDataReader["GereserveerdDoor"].ToString(), Convert.ToDateTime(mySqlDataReader["GereserveerdOp"]), Convert.ToDateTime(mySqlDataReader["SpelenOp"]), spel);
            }

            // de connectie met de databank sluiten
            _mySqlConnection.Close();

            // retourneer het reservatieobject
            return(reservatie);
        }
コード例 #25
0
        public override void Verplaats(Vakje nieuwVakje, Vakje selected, Spel spel)
        {
            if (spel.SpelerAanZet == spel.Speler1)
            {
                Speler = spel.Speler1;
            }
            else if (spel.SpelerAanZet == spel.Speler2)
            {
                Speler = spel.Speler2;
            }
            else if (spel.SpelMode == "Singleplayer")
            {
                Speler = spel.ComputerSpeler;
            }
            //Kijk of het schaakstuk het geselecteerde vakje kan vinden,
            //door alle vakjes waar heen bewogen mag worden te vergelijken met het geselecteerde vakje

            bool  mogelijk     = false;
            bool  mogelijkloop = false;
            Vakje vorige       = selected;

            while (mogelijkloop == false)
            {
                if (vorige.Buren[0] == nieuwVakje)
                {
                    mogelijk     = true;
                    mogelijkloop = true;
                }
                else if (vorige.Buren[0] == null || vorige.Buren[0].schaakstuk != null)
                {
                    mogelijkloop = true;
                }
                vorige = vorige.Buren[0];
            }
            mogelijkloop = false;
            vorige       = selected;
            if (mogelijk == false)
            {
                while (mogelijkloop == false)
                {
                    if (vorige.Buren[1] == nieuwVakje)
                    {
                        mogelijk     = true;
                        mogelijkloop = true;
                    }
                    else if (vorige.Buren[1] == null || vorige.Buren[1].schaakstuk != null)
                    {
                        mogelijkloop = true;
                    }
                    vorige = vorige.Buren[1];
                }
            }
            mogelijkloop = false;
            vorige       = selected;
            if (mogelijk == false)
            {
                while (mogelijkloop == false)
                {
                    if (vorige.Buren[2] == nieuwVakje)
                    {
                        mogelijk     = true;
                        mogelijkloop = true;
                    }
                    else if (vorige.Buren[2] == null || vorige.Buren[2].schaakstuk != null)
                    {
                        mogelijkloop = true;
                    }
                    vorige = vorige.Buren[2];
                }
            }
            mogelijkloop = false;
            vorige       = selected;
            if (mogelijk == false)
            {
                while (mogelijkloop == false)
                {
                    if (vorige.Buren[3] == nieuwVakje)
                    {
                        mogelijk     = true;
                        mogelijkloop = true;
                    }
                    else if (vorige.Buren[3] == null || vorige.Buren[3].schaakstuk != null)
                    {
                        mogelijkloop = true;
                    }
                    vorige = vorige.Buren[3];
                }
            }
            if (mogelijk == true)
            {
                //Als het schaakstuk het vakje kan bereiken, wordt het schaakstuk verplaatst.
                //Hierna wordt gekeken of de koning schaak staat.
                //Als de koning schaak staat, dan wordt het schaakstuk weer terug geplaatst waar die stond.
                //Staat de koning niet schaak, dan is de zet definitief en is de andere speler aan de beurt.

                Schaakstuk temp = nieuwVakje.schaakstuk;
                nieuwVakje.schaakstuk = this;
                selected.schaakstuk   = null;
                this.Vakje            = nieuwVakje;
                bool checkSchaak = spel.schaakbord.CheckSchaak(Speler.koning.Vakje, Speler.koning.Kleur);
                if (checkSchaak == true)
                {
                    selected.schaakstuk   = this;
                    nieuwVakje.schaakstuk = temp;
                    this.Vakje            = selected;
                }
                else
                {
                    if (temp != null)
                    {
                        temp.Slaan();
                        spel.updateAantalStukken(spel.SpelerAanZet);
                    }
                    Speler.ValideZet = true;
                    _eersteZet       = true;
                }
            }
        }
コード例 #26
0
        private static void Main(string[] args)
        {
            Spel spel = new Spel();

            //// STap 1 eerste speler toevoegen
            // // vraag aan de gebruiker of hij een human of computer speler wilt toevoegen
            Console.WriteLine("Hoi, Leuk dat je komt spelen, wil je me je naam vertellen?");

            string naamVanDeHuidigeGebruiker = Console.ReadLine();

            Console.WriteLine("Hoi, {0}", naamVanDeHuidigeGebruiker);

            // controleer of er al een speler met die naam in het spel aanwezig is
            while (spel.FindSpelerByNaam(naamVanDeHuidigeGebruiker) != null)
            {
                Console.WriteLine("Deze naam is al in gebruik. Geef aan andere naam op");
                naamVanDeHuidigeGebruiker = Console.ReadLine();
            }

            ConsoleKeyInfo ingegevenTeken;

            Console.WriteLine("Welke teken wil je spelen,  O of X? ");
            ingegevenTeken = Console.ReadKey();

            string naamVanDeTweedeSpeler = string.Empty;

            do
            {
                if (ingegevenTeken.Key == ConsoleKey.O || ingegevenTeken.Key == ConsoleKey.X)
                {
                    switch (ingegevenTeken.Key)
                    {
                    case ConsoleKey.O:
                        spel.AddHumanSpeler(naamVanDeHuidigeGebruiker, Teken.O);
                        break;

                    case ConsoleKey.X:
                        spel.AddHumanSpeler(naamVanDeHuidigeGebruiker, Teken.X);
                        break;

                    default:
                        break;
                    }
                }
                else
                {
                    Console.WriteLine("Je keuze is niet correct .Welke teken wil je spelen,  O of X? ");
                    ingegevenTeken = Console.ReadKey();
                }
            }while (ingegevenTeken.Key != ConsoleKey.O && ingegevenTeken.Key != ConsoleKey.X);
            Console.WriteLine();

            // hier nog de vraag of hij tegen de compueter of opersoon wilt spelen
            Console.WriteLine("Wil je tegen de computer spelen , J of N ? ");
            string tegenWieGaSpelen = string.Empty;

            tegenWieGaSpelen = Console.ReadLine().ToLower();
            while ((tegenWieGaSpelen != "j") && (tegenWieGaSpelen != "n"))
            {
                Console.WriteLine("Graag type J of N");
                tegenWieGaSpelen = Console.ReadLine().ToLower();
            }

            if (tegenWieGaSpelen == "j")
            {
                switch (ingegevenTeken.Key)
                {
                case ConsoleKey.X:
                    spel.AddComputerSpeler("Speler", Teken.O);
                    break;

                case ConsoleKey.O:
                    spel.AddComputerSpeler("Speler", Teken.X);
                    break;

                default:
                    break;
                }
            }
            else
            {
                Console.WriteLine("Voeg de naam van de andre speler toe ?");
                naamVanDeTweedeSpeler = Console.ReadLine();
                while (spel.FindSpelerByNaam(naamVanDeTweedeSpeler) != null)
                {
                    Console.WriteLine("Deze naam is al gebruiken. Voeg even een andere naam toe");
                    naamVanDeTweedeSpeler = Console.ReadLine();
                }

                switch (ingegevenTeken.Key)
                {
                case ConsoleKey.X:
                    spel.AddHumanSpeler(naamVanDeTweedeSpeler, Teken.O);
                    break;

                case ConsoleKey.O:
                    spel.AddHumanSpeler(naamVanDeTweedeSpeler, Teken.X);
                    break;

                default:
                    break;
                }
            }

            // vraag om de dimension van het bord
            short dimensionDeBord = 0;

            do
            {
                Console.WriteLine("Wat is de dimension van het bord ? \" Geef een nummer tussen 2 en 9 \"");
                string readDimension = Console.ReadLine();
                if (short.TryParse(readDimension, out dimensionDeBord))
                {
                    dimensionDeBord = short.Parse(readDimension);
                }
                else
                {
                    Console.WriteLine("U hebt geen nummer ingevoerd");
                }
            }while (dimensionDeBord < 2 || dimensionDeBord > 9);

            // start de ronde
            // toon hier welke spelers er zijn, wie heeft welk teken en wie begint
            spel.WieStart();
            Bord bord = spel.Start(dimensionDeBord);

            // foreach (Speler speler in spel.)
            Console.ReadKey();
        }
コード例 #27
0
 ///////////////////////////////////////////////////////////////////////////
 protected Status(Spel spel, ContentManager innehåll)
 {
     Spel     = spel;
     Innehåll = innehåll;
 }
コード例 #28
0
 public Spel GeefOp(Kleur speler, Spel spel)
 {
     spel.Afgelopen();
     return(spel);
 }
コード例 #29
0
 public Spel DoeZet(int x, int y, Kleur kleur, Spel spel)
 {
     spel.DoeZet(x, y);
     return(spel);
 }
コード例 #30
0
 static void Main(string[] args)
 {
     Spel x = new Spel();
 }
コード例 #31
0
 public override void BindSpel(Spel spel)
 {
     spel.onNieuweBeurt += Spel_onNieuweBeurt;
 }