using System; using System.Collections.Generic; using System.ComponentModel; using Xamarin.Forms; using TheGameExtreme.model.@event; using TheGameExtreme.viewmodel; namespace TheGameExtreme.view { // Learn more about making custom code visible in the Xamarin.Forms previewer // by visiting https://aka.ms/xamarinforms-previewer [DesignTimeVisible(false)] public partial class MainPage : ContentPage { private bool isFirst = true; private Main viewmodel; private List stacks = new List(); Button button = new Button(); public MainPage() { InitializeComponent(); stacks.Add(checkbox0); stacks.Add(checkbox1); stacks.Add(checkbox2); stacks.Add(checkbox3); button.Text = "Retry"; button.Clicked += retry; viewmodel = new Main(); viewmodel.BindingChanged += OnBindingChanged; Alert.SetBinding(Label.TextProperty, new Binding("Alert", source: viewmodel)); pseudo.SetBinding(Label.TextProperty, new Binding("Pseudo", source: viewmodel)); inflateHand(); } private void inflateHand() { Hand.Children.Clear(); for (int i = 0; i < viewmodel.CurrentHand.Count; i++) { Button card = new Button(); card.Text = viewmodel.CurrentHand[i].Value.ToString(); card.Clicked += played; Hand.Children.Add(card); } } private void OnBindingChanged(object sender, TopRangeChangedEventArgs args) { switch (args.NumStackChanged) { case 0: pile0.Text = args.NewTopRangeCard.Value.ToString(); break; case 1: pile1.Text = args.NewTopRangeCard.Value.ToString(); break; case 2: pile2.Text = args.NewTopRangeCard.Value.ToString(); break; case 3: pile3.Text = args.NewTopRangeCard.Value.ToString(); break; } for (int i = 0; i < Hand.Children.Count; i++) { Button b = Hand.Children[i] as Button; if (String.Equals(b.Text,args.NewTopRangeCard.Value.ToString())) { Hand.Children.RemoveAt(i); break; } } } private void played(object sender, EventArgs args) { viewmodel.Alert = ""; int numStack = 0; bool hasFind = false; stacks.ForEach(checkbox => { if (checkbox.IsChecked) { hasFind = true; if (viewmodel.played(numStack, Convert.ToInt32((sender as Button).Text))) { botPanel.Children.Add(button); } } numStack += 1; }); if (!hasFind) { viewmodel.Alert = "Aucune pile selectionné! Veuillez séléctionner une pile."; return; } } private void radioButton(object sender, EventArgs args) { if (isFirst) { isFirst = false; stacks.ForEach(checkbox => { if (!checkbox.Equals(sender)) { checkbox.IsChecked = false; } }); isFirst = true; } } private void retry(object sender, EventArgs args) { viewmodel = new Main(); viewmodel.BindingChanged += OnBindingChanged; Alert.SetBinding(Label.TextProperty, new Binding("Alert", source: viewmodel)); pseudo.SetBinding(Label.TextProperty, new Binding("Pseudo", source: viewmodel)); inflateHand(); pile0.Text = "1"; pile1.Text = "1"; pile2.Text = "100"; pile3.Text = "100"; botPanel.Children.Remove(button); } private void endTurn(object sender, EventArgs args) { //if (viewmodel.endTurn()) //{ // botPanel.Children.Add(button); //} //else //{ // inflateHand(); //} } } }