Correction d'erreur

master
cldupland 5 years ago
parent cdc2bef24a
commit c34206e528

@ -16,6 +16,7 @@ namespace TheGameExtreme.model.gameActions.classic
protected Deck deck;
protected int nbMaxCard;
public string Message { get; set; }
protected bool end;
#region
@ -136,20 +137,12 @@ namespace TheGameExtreme.model.gameActions.classic
public bool endTurn(List<Card> currentHand, List<Card> CurrentCardPlayed, Player player)
{
Message = null;
if (((TerminerSonTour)gameActions[2]).end(currentHand, NbCardAtBeginOfTurn, CurrentCardPlayed))
if (((TerminerSonTour)gameActions[2]).end(currentHand, CurrentCardPlayed))
{
pioche(currentHand, player);
CurrentCardPlayed.Clear();
OnPlayerChanged(null);
if (((TerminerSonTour)gameActions[2]).Test(currentHand))
{
return false;
}
else
{
OnEndGame(new EventArgs());
return true;
}
return end;
}
else
{
@ -158,6 +151,19 @@ namespace TheGameExtreme.model.gameActions.classic
}
}
public void TestEndGame(List<Card> currentHand)
{
if (((TerminerSonTour)gameActions[2]).Test(currentHand))
{
end = false;
}
else
{
OnEndGame(new EventArgs());
end = true;
}
}
public string getScore()
{
return deck.size().ToString();

@ -21,18 +21,24 @@ namespace TheGameExtreme.model.gameActions.classic
{
if (valueCard.CompareTo(card.Value) == 0)
{
if (orderedStackSelected >= 0 && orderedStackSelected < 4)
if (orderedStackSelected >= 0 && orderedStackSelected < ListOrderedStacks.Size)
{
if (orderedStackSelected < 2)
bool success;
if (orderedStackSelected < (ListOrderedStacks.Size * 0.5))
{
ErrorMessage = null;
return rule(card, ListOrderedStacks.getStack(orderedStackSelected), true, player, CurrentCardPlayed);
success = rule(card, ListOrderedStacks.getStack(orderedStackSelected), true, player, CurrentCardPlayed);
}
else
{
ErrorMessage = null;
return rule(card, ListOrderedStacks.getStack(orderedStackSelected), false, player, CurrentCardPlayed);
success = rule(card, ListOrderedStacks.getStack(orderedStackSelected), false, player, CurrentCardPlayed);
}
if (success)
{
CurrentHand.Remove(card);
}
return success;
}
else
{

@ -13,7 +13,7 @@ namespace TheGameExtreme.model.gameActions.classic
{
}
public bool end(List<Card> CurrentHand, int nbCardAtBeginOfTurn, List<Card> CurrentCardPlayed)
public bool end(List<Card> CurrentHand, List<Card> CurrentCardPlayed)
{
// Si carte qui fait piocher que d'un, vérifier la bonne pioche (penser si elle vient d'être recouverte)
// Sinon
@ -44,9 +44,22 @@ namespace TheGameExtreme.model.gameActions.classic
{
CurrentHand.ForEach(card =>
{
if (card.Value > ListOrderedStacks.getStack(0).Peek().Value || card.Value > ListOrderedStacks.getStack(1).Peek().Value || card.Value < ListOrderedStacks.getStack(2).Peek().Value || card.Value < ListOrderedStacks.getStack(3).Peek().Value)
for (int i = 0; i < ListOrderedStacks.Size; i++)
{
playableCard.Add(card);
if (i < (ListOrderedStacks.Size * 0.5))
{
if (card.Value > ListOrderedStacks.getStack(i).Peek().Value)
{
playableCard.Add(card);
}
}
else
{
if (card.Value < ListOrderedStacks.getStack(i).Peek().Value)
{
playableCard.Add(card);
}
}
}
});
}

@ -18,6 +18,7 @@ namespace TheGameExtreme.model.manager
public string EndMessage { get; set; }
protected int currentIndexPlayer;
protected List<Card> currentHand;
protected bool win;
public List<Card> CurrentHand
{
get { return currentHand; }
@ -60,8 +61,17 @@ namespace TheGameExtreme.model.manager
CurrentHand = parametreur.players[currentIndexPlayer].getCardList();
i++; // Garde fou
}
PlayerChanged?.Invoke(source, new PlayerChangedEventArgs(CurrentHand, parametreur.players[currentIndexPlayer].Pseudo));
parametreur.GameMode.NbCardAtBeginOfTurn = CurrentHand.Count;
if (i == 5)
{
EndMessage = AppRessource.StrWin;
win = true;
}
else
{
parametreur.GameMode.TestEndGame(CurrentHand);
PlayerChanged?.Invoke(source, new PlayerChangedEventArgs(CurrentHand, parametreur.players[currentIndexPlayer].Pseudo));
parametreur.GameMode.NbCardAtBeginOfTurn = CurrentHand.Count;
}
}
#endregion
@ -100,6 +110,11 @@ namespace TheGameExtreme.model.manager
else
{
EndMessage = parametreur.GameMode.Message;
if (win)
{
OnEndGame(this, new EventArgs());
return true;
}
return false;
}
}

@ -8,9 +8,11 @@ namespace TheGameExtreme.model.piles
{
protected List<Stack<Card>> ListOrderedStacks { get; set; } = new List<Stack<Card>>();
public int Size { get; set; }
public Piles(int nbPile)
{
Size = nbPile;
for (int i = 0; i < nbPile; i++)
{
ListOrderedStacks.Add(new Stack<Card>());

@ -76,7 +76,8 @@
Grid.Column="2"
x:Name="gameOption">
<Button
Text="End Turn"
x:Name="EndTurnButton"
Text=""
HorizontalOptions="End"
VerticalOptions="Start"
BackgroundColor="{DynamicResource SkyBlueColor}"

@ -36,6 +36,8 @@ namespace TheGameExtreme.view
InitializeComponent();
NavigationPage.SetHasNavigationBar(this, false);
EndTurnButton.Text = AppRessource.StrEndTurn; // Trouver le moyen d'avoir du binding
viewmodel = new Main(playersNames);
viewmodel.EndGame += OnEndGame;

@ -116,23 +116,23 @@ namespace TheGameExtreme.view
touchDictionary.Values.CopyTo(infos, 0);
SKMatrix touchMatrix = SKMatrix.MakeIdentity();
if (infos.Length == 1)
{
//if (infos.Length == 1)
//{
SKPoint prevPoint = infos[0].PreviousPoint;
SKPoint newPoint = infos[0].NewPoint;
SKPoint pivotPoint = Matrix.MapPoint(textPaint.MeasureText(Value) / 2, textPaint.TextSize / 2);
touchMatrix = TouchManager.OneFingerManipulate(prevPoint, newPoint, pivotPoint);
}
else if (infos.Length >= 2)
{
int pivotIndex = infos[0].NewPoint == infos[0].PreviousPoint ? 0 : 1;
SKPoint pivotPoint = infos[pivotIndex].NewPoint;
SKPoint newPoint = infos[1 - pivotIndex].NewPoint;
SKPoint prevPoint = infos[1 - pivotIndex].PreviousPoint;
//}
//else if (infos.Length >= 2)
//{
// int pivotIndex = infos[0].NewPoint == infos[0].PreviousPoint ? 0 : 1;
// SKPoint pivotPoint = infos[pivotIndex].NewPoint;
// SKPoint newPoint = infos[1 - pivotIndex].NewPoint;
// SKPoint prevPoint = infos[1 - pivotIndex].PreviousPoint;
touchMatrix = TouchManager.TwoFingerManipulate(prevPoint, newPoint, pivotPoint);
}
// touchMatrix = TouchManager.TwoFingerManipulate(prevPoint, newPoint, pivotPoint);
//}
SKMatrix matrix = Matrix;
SKMatrix.PostConcat(ref matrix, touchMatrix);

@ -53,7 +53,7 @@ namespace TheGameExtreme.viewmodel
public Main(List<string> playersNames)
{
int nbPile = 4;
int nbPile = 8;
playersNames.ForEach(name => players.Add(new PlayerVM(new Player(name))));
Parametreur parametreur = new Parametreur(new GameMode(new ClassicPiles(nbPile), new ClassicDeck()));
players.ForEach(player => parametreur.AddPlayer(player.View));
@ -70,7 +70,7 @@ namespace TheGameExtreme.viewmodel
Pseudo = players[0].Pseudo;
for (int i = 0; i < nbPile; i++)
for (int i = 0; i < gameManager.getPiles().Size; i++)
{
Stack<Card> pileView = gameManager.getPiles().getStack(i);
Stack<CardVM> pile = new Stack<CardVM>();
@ -116,6 +116,17 @@ namespace TheGameExtreme.viewmodel
Alert = gameManager.EndMessage;
return false;
}
else
{
foreach(CardVM card in CurrentHand)
{
if (card.Value.CompareTo(valueCard) == 0)
{
CurrentHand.Remove(card);
break;
}
}
}
listOrderedStacks[numStack].Push(new CardVM(gameManager.getPiles().getStack(numStack).Peek()));
return true;
}

Loading…
Cancel
Save