126 lines
3.8 KiB
C#
126 lines
3.8 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Collections.ObjectModel;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Windows;
|
|
using System.Windows.Controls;
|
|
using System.Windows.Data;
|
|
using System.Windows.Documents;
|
|
using System.Windows.Input;
|
|
using System.Windows.Media;
|
|
using System.Windows.Media.Imaging;
|
|
using System.Windows.Shapes;
|
|
|
|
namespace Casino
|
|
{
|
|
/// <summary>
|
|
/// Interaktionslogik für Slots.xaml
|
|
/// </summary>
|
|
public partial class Slots : Window
|
|
{
|
|
|
|
private List<Image> _bilder;
|
|
private Random _random = new Random();
|
|
Database db = new Database();
|
|
private List<Byte[]> AlleBilder;
|
|
ObservableCollection<User> users = new ObservableCollection<User>();
|
|
|
|
public Slots()
|
|
{
|
|
InitializeComponent();
|
|
|
|
users = db.GetUser();
|
|
|
|
_bilder = new List<Image>
|
|
{
|
|
Bild_11, Bild_12, Bild_13, Bild_14, Bild_15, Bild_16,
|
|
Bild_21, Bild_22, Bild_23, Bild_24, Bild_25, Bild_26,
|
|
Bild_31, Bild_32, Bild_33, Bild_34, Bild_35, Bild_36
|
|
};
|
|
AlleBilder = new List<Byte[]>
|
|
{
|
|
db.GetCardImage(2),db.GetCardImage(3),db.GetCardImage(4),
|
|
db.GetCardImage(5),db.GetCardImage(6),db.GetCardImage(7),
|
|
db.GetCardImage(8),db.GetCardImage(9),db.GetCardImage(10),
|
|
|
|
};
|
|
Konto.Text = users[MainWindow.currentUser].Geld.ToString();
|
|
|
|
}
|
|
|
|
|
|
private void LoadCard(Image imageControl, int bildId)
|
|
{
|
|
byte[] img = AlleBilder.ElementAt(bildId);
|
|
imageControl.Source = ByteArrayToImage(img);
|
|
}
|
|
|
|
private BitmapImage ByteArrayToImage(byte[] bytes)
|
|
{
|
|
BitmapImage image = new BitmapImage();
|
|
using (MemoryStream ms = new MemoryStream(bytes))
|
|
{
|
|
image.BeginInit();
|
|
image.CacheOption = BitmapCacheOption.OnLoad;
|
|
image.StreamSource = ms;
|
|
image.EndInit();
|
|
}
|
|
return image;
|
|
}
|
|
private async Task Spin()
|
|
{
|
|
users[MainWindow.currentUser].Geld += 100;
|
|
for (int i = 0; i < 50; i++)
|
|
{
|
|
int[,] currentSlot = new int[6, 3];
|
|
for (int j = 6; j<_bilder.Count;j--)
|
|
{
|
|
int randomBild = _random.Next(0, AlleBilder.Count);
|
|
|
|
if (i == 0)
|
|
{
|
|
currentSlot[0,j] = randomBild;
|
|
LoadCard(_bilder[j], randomBild);
|
|
}
|
|
else if (i == 1)
|
|
{
|
|
currentSlot[1, j] = currentSlot[0, j];
|
|
LoadCard(_bilder[j + 6], currentSlot[0,j]);
|
|
currentSlot[0, j] = randomBild;
|
|
LoadCard(_bilder[j], randomBild);
|
|
}
|
|
else
|
|
{
|
|
currentSlot[1, j] = currentSlot[0, j];
|
|
LoadCard(_bilder[j + 12], currentSlot[1, j]);
|
|
currentSlot[2, j] = currentSlot[1, j];
|
|
LoadCard(_bilder[j + 6], currentSlot[0, j]);
|
|
currentSlot[0, j] = randomBild;
|
|
LoadCard(_bilder[j], randomBild);
|
|
}
|
|
|
|
await Task.Delay(70);
|
|
|
|
|
|
}
|
|
await Task.Delay(70);
|
|
|
|
}
|
|
}
|
|
|
|
private async void Spin(object sender, RoutedEventArgs e)
|
|
{
|
|
await Spin();
|
|
}
|
|
|
|
private void Hauptmenue(object sender, RoutedEventArgs e)
|
|
{
|
|
Close();
|
|
}
|
|
|
|
}
|
|
}
|