public Coordone AskForPositionne() { string caseChoisi = Console.ReadLine(); //On test le nombre de caractere while (caseChoisi.Length != 2) { Console.WriteLine("Il faut rentrer 2 caratère"); caseChoisi = Console.ReadLine(); } //On test que ce sont bien des chiffre qui sont rentrées Regex TestChaine = new Regex("[0-9]"); while (!TestChaine.Match(caseChoisi).Success) { Console.WriteLine("Il faut rentrer des chiffres"); caseChoisi = Console.ReadLine(); } //On test si les coordonne sont inferieur a 8 est superieur a -1 while ((int)Char.GetNumericValue(caseChoisi[0]) < 0 || (int)Char.GetNumericValue(caseChoisi[0]) > 7 || (int)Char.GetNumericValue(caseChoisi[1]) < 0 || (int)Char.GetNumericValue(caseChoisi[1]) > 7) { Console.WriteLine("les coordonee ne peuvent pas etre inferieur a 0 ou supperieur a 7"); caseChoisi = Console.ReadLine(); } //on renvoye la coordonne Coordone r = new Coordone((int)Char.GetNumericValue(caseChoisi[0]), (int)Char.GetNumericValue(caseChoisi[1])); return(r); }
public virtual List <Coordone> GetUsuableCoordinate(Coordone PieceCoord, Pawn[,] Board) { return(new List <Coordone>()); //TODO faire la liste des coord attaignable par la piece }
public void GameTurn() { PrintGameboard(); if (IsMyTurn == true) { p3 = p1; } else { p3 = p2; } Console.WriteLine("Au tour de " + p3.name + " qui a la couleur " + p3.color + ". Ecriver quelle piece vous vouler jouer en donnant les positions avec x en premier et y en deuxième"); Coordone coordone = AskForPositionne(); // on test si c'est une piece du joueur while (cases[coordone.x, coordone.y] == null || cases[coordone.x, coordone.y].color != p3.color) { Console.WriteLine("Ecriver les coordone d'une piece à vous"); coordone = AskForPositionne(); } // On regarde si la piece peut se deplacer List <Coordone> MouvementPossible = cases[coordone.x, coordone.y].GetUsuableCoordinate(coordone, cases); while (MouvementPossible.Count == 0) { Console.WriteLine("Cette piece na pas de mouvement, choissisez s'en une autre"); coordone = AskForPositionne(); MouvementPossible = cases[coordone.x, coordone.y].GetUsuableCoordinate(coordone, cases); } //on affiche les mouvement possible de la piece AfficheMouventPossible(MouvementPossible); Coordone NewPosition = AskForPositionne(); //On test si la piece est dans les coordonnés for (int i = 0; i < MouvementPossible.Count; i++) { if (NewPosition.x == MouvementPossible[i].x && NewPosition.y == MouvementPossible[i].y) { break; } if (i == MouvementPossible.Count - 1) { i = -1; Console.WriteLine("La postion que vous avez rentre n'est pas dans la liste des possibilité"); NewPosition = AskForPositionne(); } } //On test si la pièce est le roi qui mettrai la fin au jeu if (cases[NewPosition.x, NewPosition.y] != null) { if (cases[NewPosition.x, NewPosition.y].signe == "K") { Console.Clear(); Console.WriteLine("La Partie est terminé. Le gagnant est " + p3.name + " avec la couleur " + p3.color + " en " + nbTours + "tours"); TestFinDuJeu = true; } } //On échange de position la piece if (TestFinDuJeu == false) { cases[NewPosition.x, NewPosition.y] = cases[coordone.x, coordone.y]; cases[coordone.x, coordone.y] = null; //On change le tour de jeu if (IsMyTurn == true) { IsMyTurn = false; } else { IsMyTurn = true; } Console.Clear(); } }