Aufteilung

This commit is contained in:
2026-09-14 21:27:58 +02:00
parent 09a4d0cd40
commit 205126d724
14 changed files with 83 additions and 158 deletions
+1 -1
View File
@@ -9,7 +9,7 @@ using System.Windows.Shapes;
namespace Casino
{
class Audioplayer
class Audioplayer //ki
{
private readonly MediaPlayer player = new MediaPlayer();
private readonly MediaPlayer shortplayer = new MediaPlayer();
+5 -5
View File
@@ -11,6 +11,7 @@
WindowState="Maximized"
WindowStyle="None"
Background="#195925">
<!-- Lenard Gerdes -->
<Grid>
<Grid.ColumnDefinitions>
@@ -37,7 +38,6 @@
<RowDefinition Height="1*"></RowDefinition>
</Grid.RowDefinitions>
<!-- Main Menu -->
<Button Grid.Column="0"
Grid.Row="0"
Content="Main Menu"
@@ -53,7 +53,7 @@
<Image Grid.Column="7" Grid.Row="2" x:Name="Bild_3" Margin="5" Stretch="Uniform"/>
<Image Grid.Column="9" Grid.Row="2" x:Name="Bild_4" Margin="5" Stretch="Uniform"/>
<!-- Frage 1: Rot / Schwarz -->
<!-- Rot / Schwarz -->
<StackPanel x:Name="PanelRedBlack"
Grid.Row="3"
Grid.Column="3"
@@ -86,7 +86,7 @@
Tag="Black"/>
</StackPanel>
<!-- Frage 2: Höher / Niedriger -->
<!-- Höher / Niedriger -->
<StackPanel x:Name="PanelHigherLower"
Grid.Row="3"
Grid.Column="3"
@@ -120,7 +120,7 @@
Tag="Lower"/>
</StackPanel>
<!-- Frage 3: Innen / Außen -->
<!-- Innen / Außen -->
<StackPanel x:Name="PanelInsideOutside"
Grid.Row="3"
Grid.Column="3"
@@ -154,7 +154,7 @@
Tag="Outside"/>
</StackPanel>
<!-- Frage 4: Symbol -->
<!-- Symbol -->
<StackPanel x:Name="PanelSuit"
Grid.Row="3"
Grid.Column="3"
+37 -63
View File
@@ -15,7 +15,7 @@ namespace Casino
{
public partial class Busfahrer : Window
{
public class Card
public class Card //Colin Langer
{
public int Id { get; set; }
public string WertRaw { get; set; } = string.Empty;
@@ -25,11 +25,9 @@ namespace Casino
public bool IsRed =>
FarbeRaw.Equals("Hearts", StringComparison.OrdinalIgnoreCase) ||
FarbeRaw.Equals("Diamonds", StringComparison.OrdinalIgnoreCase) ||
FarbeRaw.Equals("Diamond", StringComparison.OrdinalIgnoreCase) ||
FarbeRaw.Equals("Herz", StringComparison.OrdinalIgnoreCase) ||
FarbeRaw.Equals("Karo", StringComparison.OrdinalIgnoreCase);
FarbeRaw.Equals("Diamond", StringComparison.OrdinalIgnoreCase);
//Colin Langer
public Card(int id, string wert, string farbe, byte[] imgBytes)
{
Id = id;
@@ -42,19 +40,19 @@ namespace Casino
Image = ByteArrayToImage(imgBytes);
}
}
//Colin Langer
private static int ParseValue(string wert)
{
return wert.Trim() switch
{
"Jack" or "Bube" => 11,
"Queen" or "Dame" => 12,
"King" or "König" => 13,
"Ace" or "Ass" => 14,
"Jack" => 11,
"Queen" => 12,
"King" => 13,
"Ace" => 14,
_ => int.TryParse(wert, out int value) ? value : 0
};
}
//Colin Langer
private static BitmapImage ByteArrayToImage(byte[] bytes)
{
BitmapImage image = new BitmapImage();
@@ -98,30 +96,23 @@ namespace Casino
private User CurrentUser => users[MainWindow.currentUser];
// =========================
// KONTO
// =========================
// Lenard Gerdes
private void UpdateAccountDisplay()
{
Konto.Text = CurrentUser.Geld.ToString();
}
// Lenard Gerdes
private void SaveAccount()
{
db.UpdateGeld(CurrentUser.ID, CurrentUser.Geld);
UpdateAccountDisplay();
}
// =========================
// SPIEL STARTEN
// =========================
//Colin Langer
private void BtnStart_Click(object sender, RoutedEventArgs e)
{
StartGameFromInput();
}
//Colin Langer
private void StartGameFromInput()
{
if (roundRunning)
@@ -154,7 +145,7 @@ namespace Casino
currentBet = bet;
StartRound();
}
//Colin Langer
private void StartRound()
{
try
@@ -190,7 +181,7 @@ namespace Casino
}
//Colin Langer
private void LoadCards()
{
deck = db.GetAllCards()
@@ -211,7 +202,7 @@ namespace Casino
handCards.Add(DrawCard());
}
}
//Colin Langer
private Card DrawCard()
{
Card card = deck[0];
@@ -222,7 +213,7 @@ namespace Casino
// =========================
// KARTEN ANZEIGEN
// =========================
//Colin Langer
private void UpdateHandUI()
{
Bild_1.Source = cardBackImage;
@@ -286,7 +277,7 @@ namespace Casino
// =========================
// SPIELLOGIK
// =========================
// Lenard Gerdes
private async Task ProcessGuessAsync(bool success)
{
if (!roundRunning)
@@ -345,7 +336,7 @@ namespace Casino
}
}
}
//Colin Langer
private decimal CalculateCurrentProfit()
{
return currentPhase switch
@@ -357,11 +348,7 @@ namespace Casino
_ => 0
};
}
// =========================
// FRAGEN
// =========================
//Colin Langer
private async void ColorButton_Click(object sender, RoutedEventArgs e)
{
if (sender is not Button button)
@@ -383,7 +370,7 @@ namespace Casino
await ProcessGuessAsync(success);
}
//Colin Langer
private async void HigherLowerButton_Click(object sender, RoutedEventArgs e)
{
if (sender is not Button button)
@@ -402,7 +389,7 @@ namespace Casino
await ProcessGuessAsync(success);
}
//Colin Langer
private async void InsideOutsideButton_Click(object sender, RoutedEventArgs e)
{
if (sender is not Button button)
@@ -424,7 +411,7 @@ namespace Casino
await ProcessGuessAsync(success);
}
//Colin Langer
private async void BtnSuit_Click(object sender, RoutedEventArgs e)
{
if (sender is not Button button || button.Tag == null)
@@ -439,7 +426,7 @@ namespace Casino
await ProcessGuessAsync(success);
}
//Colin Langer
private static bool IsSameSuit(string cardSuit, string chosenSuit)
{
if (cardSuit.Equals(chosenSuit, StringComparison.OrdinalIgnoreCase))
@@ -449,25 +436,20 @@ namespace Casino
return chosenSuit switch
{
"Hearts" => cardSuit.Equals("Herz", StringComparison.OrdinalIgnoreCase),
"Diamonds" => cardSuit.Equals("Karo", StringComparison.OrdinalIgnoreCase) ||
cardSuit.Equals("Diamond", StringComparison.OrdinalIgnoreCase),
"Spades" => cardSuit.Equals("Pik", StringComparison.OrdinalIgnoreCase),
"Clubs" => cardSuit.Equals("Kreuz", StringComparison.OrdinalIgnoreCase),
"Hearts" => cardSuit.Equals("Hearts", StringComparison.OrdinalIgnoreCase),
"Diamonds" => cardSuit.Equals("Diamond", StringComparison.OrdinalIgnoreCase),
"Spades" => cardSuit.Equals("Spades", StringComparison.OrdinalIgnoreCase),
"Clubs" => cardSuit.Equals("Clubs", StringComparison.OrdinalIgnoreCase),
_ => false
};
}
//Colin Langer
private enum CardColor
{
Red,
Black
}
// =========================
// CASH OUT
// =========================
//Colin Langer
private void BtnCashOut_Click(object sender, RoutedEventArgs e)
{
if (!roundRunning || currentProfit <= 0)
@@ -488,7 +470,7 @@ namespace Casino
ShowWaitingState();
}
//Colin Langer
private void PayoutCurrentProfit()
{
if (currentProfit <= 0)
@@ -503,7 +485,7 @@ namespace Casino
// =========================
// UI
// =========================
//Colin Langer
private void SetPhaseUI()
{
PanelRedBlack.Visibility = Visibility.Collapsed;
@@ -541,7 +523,7 @@ namespace Casino
break;
}
}
//Colin Langer
private void ShowWaitingState()
{
roundRunning = false;
@@ -554,26 +536,18 @@ namespace Casino
BtnStart.Visibility = Visibility.Visible;
TxtBet.IsEnabled = true;
}
//Colin Langer
private void UpdateWinDisplay()
{
BtnCashOut.Content = $"Cash Out (${currentProfit:F2})";
}
// =========================
// HAUPTMENÜ
// =========================
//Colin Langer
private void Hauptmenue(object sender, RoutedEventArgs e)
{
music.Stop();
Close();
}
// =========================
// BILD AUS BYTE[]
// =========================
//Colin Langer
private static BitmapImage ByteArrayToImage(byte[] bytes)
{
BitmapImage image = new BitmapImage();
@@ -591,7 +565,7 @@ namespace Casino
}
// =========================
// EINSATZ VALIDIERUNG
// EINSATZfeld Colin Langer
// =========================
+14 -13
View File
@@ -17,6 +17,7 @@ namespace Casino
{
ObservableCollection<User> user = new ObservableCollection<User>();
//Lenard Gerdes
try
{
MySql.Data.MySqlClient.MySqlConnection myConnection;
@@ -84,7 +85,7 @@ namespace Casino
}
}
//Colin Langer
public byte[] GetCardImage(int id)
{
byte[] imageBytes = null;
@@ -108,7 +109,7 @@ namespace Casino
return imageBytes;
}
//Cloin Langer
public List<Busfahrer.Card> GetAllCards()
{
var cards = new List<Busfahrer.Card>();
@@ -137,8 +138,8 @@ namespace Casino
return cards;
}
// NEU: Holt das Bild der Kartenrückseite
// Holt das Bild der Kartenrückseite Colin Langer
public byte[] GetCardBackImage()
{
byte[] imageBytes = null;
@@ -211,10 +212,10 @@ namespace Casino
connection.Open();
string sql = @"
SELECT COUNT(*)
FROM Nutzer
WHERE id = @id
AND Rolle = 'Admin'";
SELECT COUNT(*)
FROM Nutzer
WHERE id = @id
AND Rolle = 'Admin'";
using MySqlCommand command = new MySqlCommand(sql, connection);
@@ -245,8 +246,8 @@ namespace Casino
connection.Open();
string sql = @"
DELETE FROM Nutzer
WHERE id = @id";
DELETE FROM Nutzer
WHERE id = @id";
using MySqlCommand command = new MySqlCommand(sql, connection);
@@ -283,13 +284,13 @@ namespace Casino
connection.Open();
string sql = @"
UPDATE Nutzer
SET name = @name,
UPDATE Nutzer
SET name = @name,
age = @age,
passwort = @passwort,
geld = @geld,
Rolle = @rolle
WHERE id = @id";
WHERE id = @id";
using MySqlCommand command = new MySqlCommand(sql, connection);
-22
View File
@@ -1,22 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Casino
{
internal class Decks
{
int Deckid { get; set; }
int Kartenid { get; set; }
string name { get; set; }
public Decks(int d, int k, string n)
{
Deckid = d;
Kartenid = k;
name = n;
}
}
}
+1
View File
@@ -5,6 +5,7 @@
Height="550"
Width="500"
WindowStartupLocation="CenterScreen">
<!-- Lenard Gerdes -->
<Grid Margin="25">
+2 -1
View File
@@ -12,7 +12,8 @@
Background="Transparent"
AllowsTransparency="True"
MouseDown="Window_MouseDown">
<!-- Lenard Gerdes -->
<Border CornerRadius="20"
Background="#590D00"
BorderBrush="Gold"
+1
View File
@@ -26,6 +26,7 @@ namespace Casino
/// </summary>
public partial class Login : Window
{
//Alles von Lenard Gerdes
Database db = new Database();
ObservableCollection<User> users = new ObservableCollection<User>();
+2 -2
View File
@@ -8,8 +8,8 @@
Title="MainWindow" Height="450" Width="800"
WindowStartupLocation="CenterScreen"
>
<!-- Lenard Gerdes -->
<Border
Background="#590D00"
+2
View File
@@ -17,6 +17,7 @@ namespace Casino
/// </summary>
public partial class MainWindow : Window
{
// Alles von Lenard Gerdes
public static int currentUser;
ObservableCollection<User> users = new ObservableCollection<User>();
Database db = new Database();
@@ -27,6 +28,7 @@ namespace Casino
setup();
}
private void Slots_Click(object sender, RoutedEventArgs e)
{
+4 -3
View File
@@ -9,12 +9,13 @@
WindowState="Maximized"
WindowStyle="None"
Background="Transparent">
<!-- Lenard Gerdes -->
<Border
Background="#590D00"
BorderBrush="Gold"
BorderThickness="5">
Background="#590D00"
BorderBrush="Gold"
BorderThickness="5">
<Grid>
<Grid.ColumnDefinitions>
+13 -27
View File
@@ -22,7 +22,7 @@ namespace Casino
/// </summary>
public partial class Slots : Window
{
// Lenard Gerdes
private List<Image> _bilder;
private Random _random = new Random();
Database db = new Database();
@@ -46,7 +46,7 @@ namespace Casino
private int highestWin = 5;
// Lenard Gerdes
public Slots()
{
InitializeComponent();
@@ -90,6 +90,7 @@ namespace Casino
}
return image;
}
// Lenard Gerdes
private async Task Spin()
{
for (int i = 0; i < 15; i++)
@@ -120,20 +121,14 @@ namespace Casino
currentSlot[0, j] = randomBild;
LoadCard(_bilder[j], randomBild);
}
}
await Task.Delay(150);
}
}
// Lenard Gerdes
private async void Spin(object sender, RoutedEventArgs e)
{
int einsatz = Convert.ToInt32(einsatzFeld.Text);
users[MainWindow.currentUser].Geld -= einsatz;
Konto.Text = users[MainWindow.currentUser].Geld.ToString();
@@ -141,20 +136,10 @@ namespace Casino
users[MainWindow.currentUser].Geld += CheckWin(currentSlot, einsatz);
Konto.Text = users[MainWindow.currentUser].Geld.ToString();
db.UpdateGeld(
users[MainWindow.currentUser].ID,
users[MainWindow.currentUser].ID,
users[MainWindow.currentUser].Geld);
/* catch (NullReferenceException)
{
MessageBox.Show(
"Bitte ein Betrag eingeben",
"Fehlermeldung 101",
MessageBoxButton.OK,
MessageBoxImage.Information);
}*/
}
// Lenard Gerdes
private void Hauptmenue(object sender, RoutedEventArgs e)
{
music.Stop();
@@ -162,7 +147,7 @@ namespace Casino
}
// Lenard Gerdes
public decimal CheckWin(int[,] board, decimal einsatz)
{
decimal multiplikator = 0m;
@@ -267,7 +252,7 @@ namespace Casino
return einsatz * multiplikator;
}
// Lenard Gerdes
private decimal CheckLine(params int[] werte)
{
decimal gewinn = 0;
@@ -315,16 +300,16 @@ namespace Casino
//Numberfield
//Numberfield Colin Langer
private static readonly Regex _regex = new Regex("^[0-9]"); // Regex to match non-numeric input
//nur nummern
//nur nummern Colin Langer
private void TextBox_PreviewTextInput(object sender, TextCompositionEventArgs e)
{
e.Handled = !_regex.IsMatch(e.Text);
}
// Keine Spaces
// Keine Spaces Colin Langer
private void TextBox_PreviewKeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Space)
@@ -333,7 +318,7 @@ namespace Casino
}
}
//das man nichts reinkopieren kann außer Zahlen
//das man nichts reinkopieren kann außer Zahlen Colin Langer
private void TextBox_Pasting(object sender, DataObjectPastingEventArgs e)
{
if (e.DataObject.GetDataPresent(typeof(String)))
@@ -346,6 +331,7 @@ namespace Casino
}
}
// Lenard Gerdes
void PlayWinSound()
{
audio.PlaySound(db.GetSound(highestWin));
-20
View File
@@ -1,20 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Casino
{
public class Spiele
{
public string Name { get; set; }
public int MinBetrag { get; set; }
public Spiele(string n, int m)
{
Name = n;
MinBetrag = m;
}
}
}
+1 -1
View File
@@ -7,7 +7,7 @@ using System.Threading.Tasks;
namespace Casino
{
public class User
public class User // Lenard Gerdes
{
public string ID { get; set; }
public string Name { get; set; }