En cours de transformation du model pour intégration des nouvelles règles

master
cldupland 6 years ago
parent 9a39d12b03
commit 62cb2e102b

@ -4,11 +4,10 @@ Mono-utilisateur:
- Multilangue - Multilangue
- Changer les thèmes et les couleurs (en option) - Changer les thèmes et les couleurs (en option)
- jeu classique pas extreme - jeu classique pas extreme
- décaler la création du deck et la distribution des cartes dans un stub
- Thème dark - Thème dark
- Jeu solo complet - Jeu solo complet
- Push version sur les stores pour la semaine pro - Push version sur les stores pour la semaine pro
- Rendre abstract la creation deck - Rendre abstract la creation deck V
- Drag and drop - Drag and drop
- Option pour mettre/enlever le pas de 10 - Option pour mettre/enlever le pas de 10
- Menu de choix de partie - Menu de choix de partie
@ -18,6 +17,7 @@ Mono-utilisateur:
- Faire une list de règle devant toute être vérifier à chaque carte joué - Faire une list de règle devant toute être vérifier à chaque carte joué
- Faire une list de règle devant toute être vérifier à chaque fin de tour - Faire une list de règle devant toute être vérifier à chaque fin de tour
- Skia - Skia
- GameMaster implémentera un ModeDeJeu qui implémentera des règles du jeu
The game -> déposé? The game -> déposé?

@ -14,6 +14,10 @@
<Folder Include="viewmodel\" /> <Folder Include="viewmodel\" />
<Folder Include="model\card\" /> <Folder Include="model\card\" />
<Folder Include="model\deck\" /> <Folder Include="model\deck\" />
<Folder Include="model\rule\" />
<Folder Include="model\rule\playRules\" />
<Folder Include="model\Card\rapidCard\" />
<Folder Include="model\rule\endRule\" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Remove="model\effect\StopColm.cs" /> <Compile Remove="model\effect\StopColm.cs" />

@ -27,5 +27,8 @@ namespace TheGameExtreme.model.card
Value = value; Value = value;
} }
public abstract String getName();
public abstract bool rapidEffect();
} }
} }

@ -4,9 +4,23 @@ namespace TheGameExtreme.model.card
{ {
public class ClassicCard : Card public class ClassicCard : Card
{ {
public static readonly String CARD_CLASSIC = "ClassicCard";
public ClassicCard(int value) public ClassicCard(int value)
: base(value) : base(value)
{ {
} }
public override bool rapidEffect()
{
return false;
}
override public String getName()
{
return CARD_CLASSIC;
}
} }
} }

@ -1,12 +0,0 @@
using System;
namespace TheGameExtreme.model.card
{
public class EndGameCard : Card
{
public EndGameCard(int value)
:base(value)
{
}
}
}

@ -1,12 +0,0 @@
using System;
namespace TheGameExtreme.model.card
{
public class ThreeCard : Card
{
public ThreeCard(int value)
:base(value)
{
}
}
}

@ -0,0 +1,20 @@
using System;
namespace TheGameExtreme.model.card.rapidCard
{
public class EndGameCard : RapidCard
{
public static readonly String CARD_ENDGAME = "EndGameCard";
public EndGameCard(int value)
:base(value)
{
}
override public String getName()
{
return CARD_ENDGAME;
}
}
}

@ -0,0 +1,16 @@
using System;
namespace TheGameExtreme.model.card.rapidCard
{
public abstract class RapidCard : Card
{
public RapidCard(int value) : base(value)
{
}
public override bool rapidEffect()
{
return true;
}
}
}

@ -0,0 +1,21 @@
using System;
namespace TheGameExtreme.model.card.rapidCard
{
public class ThreeCard : RapidCard
{
public static readonly String CARD_THREE = "ThreeCard";
public ThreeCard(int value)
:base(value)
{
}
override public String getName()
{
return CARD_THREE;
}
}
}

@ -0,0 +1,62 @@
using System;
using System.Collections.Generic;
using TheGameExtreme.model.rule;
using TheGameExtreme.model.rule.endRule;
using TheGameExtreme.model.rule.playRules;
namespace TheGameExtreme.model
{
public class GameMode
{
private List<Rule> playRule = new List<Rule>();
private List<Rule> endTurnRule = new List<Rule>();
private List<Rule> commonRule = new List<Rule>();
public GameMode()
{
}
public void addPlayRule(PlayRule rule)
{
playRule?.Add(rule);
}
public void addEndTurnRule(EndTurnRule rule)
{
endTurnRule?.Add(rule);
}
public void addCommonRule(Rule rule)
{
// Vérifier que se ne soit ni une PlayRule, ni une EndTurnRule ?
commonRule?.Add(rule);
}
public bool testPlayRule()
{
foreach(PlayRule rule in playRule)
{
}
foreach (Rule rule in commonRule)
{
}
return true;
}
public bool testEndTurnRule()
{
foreach (EndTurnRule rule in endTurnRule)
{
}
foreach (Rule rule in commonRule)
{
}
return true;
}
}
}

@ -1,6 +1,7 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using TheGameExtreme.model.card; using TheGameExtreme.model.card;
using TheGameExtreme.model.card.rapidCard;
namespace TheGameExtreme.model.deck namespace TheGameExtreme.model.deck
{ {

@ -1,6 +1,7 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using TheGameExtreme.model.card; using TheGameExtreme.model.card;
using TheGameExtreme.model.card.rapidCard;
using TheGameExtreme.model.@event; using TheGameExtreme.model.@event;
namespace TheGameExtreme.model.manager namespace TheGameExtreme.model.manager
@ -43,7 +44,7 @@ namespace TheGameExtreme.model.manager
{ {
foreach (Card cardPlayed in CurrentCardPlayed) foreach (Card cardPlayed in CurrentCardPlayed)
{ {
if (cardPlayed.GetType() == typeof(ThreeCard)) if (Equals(cardPlayed.GetType(), ThreeCard.CARD_THREE))
{ {
if ((nbCardAtBeginOfTurn - CurrentHand.Count) < 3) // Penser à vérifier s'il a joué une ThreeCard pour regarder s'il a bien joué 3 cartes if ((nbCardAtBeginOfTurn - CurrentHand.Count) < 3) // Penser à vérifier s'il a joué une ThreeCard pour regarder s'il a bien joué 3 cartes
{ {
@ -123,7 +124,7 @@ namespace TheGameExtreme.model.manager
{ {
foreach (Card c in playableCard) foreach (Card c in playableCard)
{ {
if (c.Equals(typeof(ThreeCard))) if (Equals(c.getName(), ThreeCard.CARD_THREE))
{ {
win = false; win = false;
EndMessage = "Le jeu est terminé!\n Désolé, vous avez perdu... Vous deviez jouer trois cartes à cause de l'effet \"Trois cartes joué\" hors votre jeu ne permet pas d'en jouer autant! Essayez encore!"; EndMessage = "Le jeu est terminé!\n Désolé, vous avez perdu... Vous deviez jouer trois cartes à cause de l'effet \"Trois cartes joué\" hors votre jeu ne permet pas d'en jouer autant! Essayez encore!";
@ -151,7 +152,7 @@ namespace TheGameExtreme.model.manager
{ {
foreach (Stack<Card> orderedStack in ListOrderedStacks) foreach (Stack<Card> orderedStack in ListOrderedStacks)
{ {
if (orderedStack.Peek().GetType() == typeof(EndGameCard)) if (Equals(orderedStack.Peek().getName(), EndGameCard.CARD_ENDGAME))
{ {
return true; return true;
} }

@ -0,0 +1,10 @@
using System;
namespace TheGameExtreme.model.rule
{
public class InfinitEffect : Rule
{
public InfinitEffect()
{
}
}
}

@ -0,0 +1,10 @@
using System;
namespace TheGameExtreme.model.rule
{
public class RapidEffect : Rule
{
public RapidEffect()
{
}
}
}

@ -0,0 +1,19 @@
using System;
using TheGameExtreme.model.card;
namespace TheGameExtreme.model.rule
{
public abstract class Rule
{
public Rule()
{
}
public bool Test()
{
throw new NotImplementedException();
}
}
}

@ -0,0 +1,11 @@
using System;
namespace TheGameExtreme.model.rule.endRule
{
public class EndGame : EndTurnRule
{
public EndGame()
{
}
}
}

@ -0,0 +1,11 @@
using System;
namespace TheGameExtreme.model.rule.endRule
{
public abstract class EndTurnRule : Rule
{
public EndTurnRule()
{
}
}
}

@ -0,0 +1,10 @@
using System;
namespace TheGameExtreme.model.rule.endRule
{
public class VoidDeck : EndTurnRule
{
public VoidDeck()
{
}
}
}

@ -0,0 +1,10 @@
using System;
namespace TheGameExtreme.model.rule.endRule
{
public class VoidHand : EndTurnRule
{
public VoidHand()
{
}
}
}

@ -0,0 +1,25 @@
using System;
using TheGameExtreme.model.card;
namespace TheGameExtreme.model.rule.playRules
{
public class Ascendant : PlayRule
{
public static readonly String REGLE_ASCENDANT = "Ascendant";
public Ascendant()
{
}
public bool Test(Card upStack, Card playedCard, bool bottomUp)
{
if (bottomUp && playedCard.Value > upStack.Value)
{
return true;
}
return false;
}
}
}

@ -0,0 +1,24 @@
using System;
using TheGameExtreme.model.card;
namespace TheGameExtreme.model.rule.playRules
{
public class Descendant : PlayRule
{
public static readonly String REGLE_DESCENDANT = "Descendant";
public Descendant()
{
}
public bool Test(Card upStack, Card playedCard, bool bottomUp)
{
if (bottomUp && playedCard.Value > upStack.Value)
{
return true;
}
return false;
}
}
}

@ -0,0 +1,25 @@
using System;
using TheGameExtreme.model.card;
namespace TheGameExtreme.model.rule.playRules
{
public class PasDeDix : PlayRule
{
public static readonly String REGLE_PASDEDIX = "PasDeDix";
public PasDeDix()
{
}
public bool Test(Card upStack, Card playedCard)
{
if ((upStack.Value + 10) == playedCard.Value || (upStack.Value - 10) == playedCard.Value)
{
return true;
}
return false;
}
}
}

@ -0,0 +1,11 @@
using System;
namespace TheGameExtreme.model.rule.playRules
{
public class PlayRule : Rule
{
public PlayRule()
{
}
}
}

@ -79,7 +79,7 @@
x:Name="botPanel" x:Name="botPanel"
Orientation="Vertical" Orientation="Vertical"
Margin="20"> Margin="20">
<Button x:Name="EndTurn" Clicked="endTurn" /> <Button Text="End Turn" Clicked="endTurn" />
<Label x:Name="Alert" /> <Label x:Name="Alert" />
</StackLayout> </StackLayout>
</StackLayout> </StackLayout>

Loading…
Cancel
Save