diff --git a/TheGameExtreme/Media/Apple.png b/TheGameExtreme/Media/Apple.png
deleted file mode 100644
index a8533f0..0000000
Binary files a/TheGameExtreme/Media/Apple.png and /dev/null differ
diff --git a/TheGameExtreme/Media/Moon.jpg b/TheGameExtreme/Media/Moon.jpg
deleted file mode 100644
index b8ec22a..0000000
Binary files a/TheGameExtreme/Media/Moon.jpg and /dev/null differ
diff --git a/TheGameExtreme/TheGameExtreme.csproj b/TheGameExtreme/TheGameExtreme.csproj
index 5ab6b8d..b46f374 100644
--- a/TheGameExtreme/TheGameExtreme.csproj
+++ b/TheGameExtreme/TheGameExtreme.csproj
@@ -33,17 +33,11 @@
-
-
-
-
-
-
diff --git a/TheGameExtreme/view/MainPage.xaml b/TheGameExtreme/view/MainPage.xaml
index baacf32..deb7c7f 100644
--- a/TheGameExtreme/view/MainPage.xaml
+++ b/TheGameExtreme/view/MainPage.xaml
@@ -78,13 +78,15 @@
+ Grid.Column="2"
+ x:Name="gameOption">
+ HeightRequest="35"
+ Clicked="EndTurn"/>
@@ -144,8 +146,8 @@
-->
-
-
+
+
diff --git a/TheGameExtreme/view/MainPage.xaml.cs b/TheGameExtreme/view/MainPage.xaml.cs
index 6b2b140..7ad3bac 100644
--- a/TheGameExtreme/view/MainPage.xaml.cs
+++ b/TheGameExtreme/view/MainPage.xaml.cs
@@ -9,6 +9,7 @@ using System.IO;
using System.Reflection;
using SkiaSharp.Views.Forms;
using TouchTracking;
+using Xamarin.Essentials;
namespace TheGameExtreme.view
{
@@ -20,7 +21,7 @@ namespace TheGameExtreme.view
private bool isFirst = true;
private Main viewmodel;
private List stacks = new List();
- Button button = new Button();
+ Button button;
List playersNames;
@@ -29,6 +30,7 @@ namespace TheGameExtreme.view
Dictionary bitmapDictionary = new Dictionary();
+
public MainPage(List playersNames)
{
this.playersNames = playersNames;
@@ -36,29 +38,26 @@ namespace TheGameExtreme.view
InitializeComponent();
NavigationPage.SetHasNavigationBar(this, false);
- Assembly assembly = GetType().GetTypeInfo().Assembly;
+ //Assembly assembly = GetType().GetTypeInfo().Assembly;
- string[] resourceIDs = assembly.GetManifestResourceNames();
+ ////string[] resourceIDs = assembly.GetManifestResourceNames();
+ //string resourceID = "TheGameExtreme.Media.thegame.jpg";
- SKPoint position = new SKPoint();
+ //SKPoint position = new SKPoint(100, (float)(DeviceDisplay.MainDisplayInfo.Height - 0.2 * DeviceDisplay.MainDisplayInfo.Height));
- foreach (string resourceID in resourceIDs)
- {
- if (resourceID.EndsWith(".png") ||
- resourceID.EndsWith(".jpg"))
- {
- using (Stream stream = assembly.GetManifestResourceStream(resourceID))
- {
- SKBitmap bitmap = SKBitmap.Decode(stream);
- bitmapCollection.Add(new TouchManipulationBitmap(bitmap)
- {
- Matrix = SKMatrix.MakeTranslation(position.X, position.Y),
- });
- position.X += 100;
- position.Y += 100;
- }
- }
- }
+ //for (int i = 0; i < 8; i++)
+ //{
+ // using (Stream stream = assembly.GetManifestResourceStream(resourceID))
+ // {
+ // SKBitmap bitmap = SKBitmap.Decode(stream).Resize(new SKImageInfo(225, 225), SKFilterQuality.High);
+
+ // bitmapCollection.Add(new TouchManipulationBitmap(bitmap)
+ // {
+ // Matrix = SKMatrix.MakeTranslation(position.X, position.Y - bitmap.Height),
+ // });
+ // position.X += bitmap.Width + 50;
+ // }
+ //}
//stacks.Add(checkbox0);
@@ -74,15 +73,26 @@ namespace TheGameExtreme.view
//viewmodel.PlayerChanged += OnPlayerChanged;
- //Alert.SetBinding(Label.TextProperty, new Binding("Alert", source: viewmodel));
+ viewmodel.AlertChanged += OnAlertChanged;
+
pseudo.SetBinding(Label.TextProperty, new Binding("Pseudo", source: viewmodel));
inflateHand();
}
+ private void OnAlertChanged(object sender, EventArgs args)
+ {
+ if (viewmodel.Alert != null)
+ {
+ DisplayAlert("", viewmodel.Alert, "OK");
+ viewmodel.Alert = null;
+ }
+ }
+
+
- void OnCanvasViewPaintSurface(object sender, SKPaintSurfaceEventArgs args) // Faire plusieurs canvas
+ public void OnCanvasViewPaintSurface(object sender, SKPaintSurfaceEventArgs args) // Faire plusieurs canvas
{
SKCanvas canvas = args.Surface.Canvas;
@@ -94,7 +104,7 @@ namespace TheGameExtreme.view
}
}
- void OnTouchEffectAction(object sender, TouchActionEventArgs args)
+ public void OnTouchEffectAction(object sender, TouchActionEventArgs args)
{
// Convert Xamarin.Forms point to pixels
TouchTrackingPoint pt = args.Location;
@@ -146,7 +156,7 @@ namespace TheGameExtreme.view
}
}
- void OnTouchModePickerSelectedIndexChanged(object sender, EventArgs args)
+ public void OnTouchModePickerSelectedIndexChanged(object sender, EventArgs args)
{
if (bitmap != null)
{
@@ -163,10 +173,10 @@ namespace TheGameExtreme.view
- private void OnPlayerChanged(object sender, PlayerChangedEventArgs args)
- {
- inflateHand();
- }
+ //private void OnPlayerChanged(object sender, PlayerChangedEventArgs args)
+ //{
+ // inflateHand();
+ //}
private void inflateHand()
{
@@ -179,58 +189,78 @@ namespace TheGameExtreme.view
// Hand.Children.Add(card);
//}
- for(int i = 0; i < playersNames.Count; i++)
+
+ bitmapCollection.Clear();
+
+ Assembly assembly = GetType().GetTypeInfo().Assembly;
+
+ string resourceID = "TheGameExtreme.Media.thegame.jpg";
+
+ SKPoint position = new SKPoint(100, (float)(DeviceDisplay.MainDisplayInfo.Height - 0.2 * DeviceDisplay.MainDisplayInfo.Height));
+
+ for (int i = 0; i < viewmodel.CurrentHand.Count; i++)
{
-
-
+ using (Stream stream = assembly.GetManifestResourceStream(resourceID))
+ {
+ SKBitmap bitmap = SKBitmap.Decode(stream).Resize(new SKImageInfo(225, 225), SKFilterQuality.High);
+
+ bitmapCollection.Add(new TouchManipulationBitmap(bitmap)
+ {
+ Matrix = SKMatrix.MakeTranslation(position.X, position.Y - bitmap.Height),
+ });
+ position.X += bitmap.Width + 50;
+ }
}
}
- /*
+
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;
- }
- }
+
+
+
+
+ //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);
- }
- }
+ //if (checkbox.IsChecked)
+ //{
+ // hasFind = true;
+ // if (viewmodel.played(numStack, Convert.ToInt32((sender as Button).Text)))
+ // {
+ // botPanel.Children.Add(button);
+ // }
+ //}
numStack += 1;
});
@@ -241,23 +271,23 @@ namespace TheGameExtreme.view
}
}
- private void radioButton(object sender, EventArgs args)
- {
- if (isFirst)
- {
- isFirst = false;
+ //private void radioButton(object sender, EventArgs args)
+ //{
+ // if (isFirst)
+ // {
+ // isFirst = false;
- stacks.ForEach(checkbox =>
- {
- if (!checkbox.Equals(sender))
- {
- checkbox.IsChecked = false;
- }
- });
+ // stacks.ForEach(checkbox =>
+ // {
+ // if (!checkbox.Equals(sender))
+ // {
+ // checkbox.IsChecked = false;
+ // }
+ // });
- isFirst = true;
- }
- }
+ // isFirst = true;
+ // }
+ //}
private void retry(object sender, EventArgs args)
{
@@ -265,36 +295,35 @@ namespace TheGameExtreme.view
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";
+ //pile0.Text = "1";
+ //pile1.Text = "1";
+ //pile2.Text = "100";
+ //pile3.Text = "100";
- botPanel.Children.Remove(button);
+ gameOption.Children.Clear();
+ gameOption.Children.Add(button);
}
- private void endTurn(object sender, EventArgs args)
+ private void EndTurn(object sender, EventArgs args)
{
- viewmodel.Alert = "";
if (viewmodel.endTurn())
{
- botPanel.Children.Add(button);
+ button = (Button)gameOption.Children[0];
+ gameOption.Children.Clear();
+ Button retryButton = new Button();
+ retryButton.Text = "Retry";
+ retryButton.Clicked += retry;
+ gameOption.Children.Add(retryButton);
}
else
{
inflateHand();
}
- }*/
-
- /*private async void Back(object sender, EventArgs args)
- {
- await Navigation.PopToRootAsync();
- }*/
+ }
private async void PlayToHome(object sender, EventArgs args)
{
diff --git a/TheGameExtreme/view/TouchManipulationBitmap.cs b/TheGameExtreme/view/TouchManipulationBitmap.cs
index 72295a4..c7cc65a 100644
--- a/TheGameExtreme/view/TouchManipulationBitmap.cs
+++ b/TheGameExtreme/view/TouchManipulationBitmap.cs
@@ -16,7 +16,7 @@ namespace TheGameExtreme.view
TouchManager = new TouchManipulationManager
{
- Mode = TouchManipulationMode.ScaleRotate
+ Mode = TouchManipulationMode.IsotropicScale
};
}
diff --git a/TheGameExtreme/viewmodel/Main.cs b/TheGameExtreme/viewmodel/Main.cs
index 1a229a6..26c26e4 100644
--- a/TheGameExtreme/viewmodel/Main.cs
+++ b/TheGameExtreme/viewmodel/Main.cs
@@ -15,6 +15,7 @@ namespace TheGameExtreme.viewmodel
//public event EventHandler PlayerChanged;
public event EventHandler BindingChanged;
+ public event EventHandler AlertChanged;
public event PropertyChangedEventHandler PropertyChanged;
private List players = new List();
private string alert = "";
@@ -24,7 +25,7 @@ namespace TheGameExtreme.viewmodel
set
{
alert = value;
- OnPropertyChanged("Alert");
+ OnAlertChanged();
}
}
private string pseudo = "Pseudo";
@@ -41,6 +42,10 @@ namespace TheGameExtreme.viewmodel
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(info));
}
+ protected virtual void OnAlertChanged()
+ {
+ AlertChanged?.Invoke(this, new EventArgs());
+ }
private GameManager gameManager;
public List CurrentHand { get; set; }