I made this code for a blackjack game, it works fine, but even when I created an array of cards to display the type of cards each player has at the end, it is not doing so, it is just displaying who won, who lost and the total number of card, never displays the type of cards of each player. Any suggestion, please?
Thanks
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace GUI_BLACKJACK
{
public partial class Form1 : Form
{
class Card
{
public string Name { get; set; }
public int Value { get; set; }
public string Suit { get; set; }
Card[] DeckOfCards = new Card[]
{
new Card{Name="two",Value=2,Suit="Heart"},
new Card{Name="three",Value=3,Suit="Heart"},
new Card{Name="four",Value=4,Suit="Heart"},
new Card{Name = "five", Value = 5, Suit = "Heart" },
new Card{Name = "six", Value = 6, Suit = "Heart" },
new Card{Name = "seven", Value = 7, Suit = "Heart" },
new Card{Name = "eight", Value = 8, Suit = "Heart" },
new Card{Name = "Nine", Value = 9, Suit = "heart" },
new Card{Name = "ten", Value = 10, Suit = "Heart" },
new Card { Name = "two", Value = 2, Suit = "Spades" },
new Card { Name = "three", Value = 3, Suit = "Spades" },
new Card { Name = "four", Value = 4, Suit = "Spades" },
new Card { Name = "five", Value = 5, Suit = "Spades" },
new Card { Name = "six", Value = 6, Suit = "Spades" },
new Card { Name = "seven", Value = 7, Suit = "Spades" },
new Card { Name = "eight", Value = 8, Suit = "Spades" },
new Card { Name = "Nine", Value = 9, Suit = "Spades" },
new Card { Name = "ten", Value = 10, Suit = "Spades" },
new Card { Name = "two", Value = 2, Suit = "Diamonds" },
new Card { Name = "three", Value = 3, Suit = "Diamonds" },
new Card { Name = "four", Value = 4, Suit = "Diamonds" },
new Card { Name = "five", Value = 5, Suit = "Diamonds" },
new Card { Name = "six", Value = 6, Suit = "Diamonds" },
new Card { Name = "seven", Value = 7, Suit = "Diamonds" },
new Card { Name = "eight", Value = 8, Suit = "Diamonds" },
new Card { Name = "Nine", Value = 9, Suit = "Diamonds" },
new Card { Name = "ten", Value = 10, Suit = "Diamonds" },
new Card { Name = "two", Value = 2, Suit = "Clubs" },
new Card { Name = "three", Value = 3, Suit = "Clubs" },
new Card { Name = "four", Value = 4, Suit = "Clubs" },
new Card { Name = "five", Value = 5, Suit = "Clubs" },
new Card { Name = "six", Value = 6, Suit = "Clubs" },
new Card { Name = "seven", Value = 7, Suit = "Clubs" },
new Card { Name = "eight", Value = 8, Suit = "Clubs" },
new Card { Name = "Nine", Value = 9, Suit = "Clubs" },
new Card { Name = "ten", Value = 10, Suit = "Clubs" },
};
}
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void label2_Click(object sender, EventArgs e)
{
}
private void label1_Click(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
Random random = new Random();
int dealer = random.Next(1, 10);
int player = random.Next(1, 10);
label4.Text = ($"Let's play a modified version of the card game blackjack," +
$" The dealer is showing a :{ dealer}, the other card is hidden");
label1.Text = ("you were dealt 2 cards that total " + player);
}
private void label3_Click(object sender, EventArgs e)
{
}
private void button2_Click(object sender, EventArgs e)
{
label4.Text = ("Do you want another card? Type [Y]es or [N]o");
}
private void label6_Click(object sender, EventArgs e)
{
}
public string PlayGame(int dealer, int player)
{
string response = "";
if (player <= 21 && dealer > 21)
{
label1.Text = ($"You WON with {player}");
label2.Text = ($"The dealer ended with {dealer}");
}
else if (player < 21 && dealer < 21 && dealer > player)
{
label1.Text = ($"You lost with {player} ");
label2.Text = ($"The dealer ended with {dealer}");
}
else if (player < 21 && dealer < 21 && player > dealer)
{
label1.Text = ($"You WON with {player}");
label2.Text = ($"The dealer ended with {dealer}");
}
else if (player > 21 && dealer < player)
{
label1.Text = ($"You lost with {player}");
label2.Text = ($"The dealer ended with {dealer}");
}
else if (player == 21 && dealer < player)
{
label1.Text = ($"You WON with {player}");
label2.Text = ($"The dealer ended with {dealer}");
}
else if (player > 21)
{
label1.Text = ($"You lost with {player}");
label2.Text = ($"The dealer ended with {dealer}");
}
{
return response;
}
}
public void button3_Click(object sender, EventArgs e)
{
Random random = new Random();
int dealer = random.Next(1, 10);
int player = random.Next(1, 10);
int randomNumber = random.Next(1, 10);
player += randomNumber;
PlayGame(dealer, player);
}
private void button4_Click(object sender, EventArgs e)
{
Random random = new Random();
int dealer = random.Next(1, 10);
int player = random.Next(1, 10);
int randomNumber = random.Next(1, 10);
player += randomNumber;
PlayGame(dealer, player);
}
private void label2_Click_1(object sender, EventArgs e)
{
}
} }
What I have tried:
I have tried by adding {card} after {player} and after {dealer} at the label. text
label1.Text = ($"You WON with {player}{Card}");
label2.Text = ($"The dealer ended with {dealer} {Card}");
I have tried by adding {Suit} at the same positions above mentioned to see if at least the suit of cards are mentioned.