blah blah blah is here! blah blah » Close

up0down
link

i want code in flash for generating random cards and cards are distributed between 4 to 6 persons in round manner of each member getting 2 cards.

last answered one year ago

1 answers

up0down
link

I know nothing about programming for Adobe Flash but, if it helps you with the logic, here's how you could do the same thing in a C# console application:

using System;

namespace CardGame
{
class Deal
{
static void Main()
{
bool anotherDeal = false;

do
{
int players = 0;
while (true)
{
Console.Write("\nHow many players (4 to 6) : ");
int.TryParse(Console.ReadLine(), out players);
if (players < 4 || players > 6)
{
Console.WriteLine("Invalid number, try again\n");
}
else
{
break;
}
}
int numCards = 2; // two cards per player

// create a 2D array to hold cards for each player
int[,] cards = new int[players, numCards];

// shuffle a new deck
Card[] deck = Card.ShuffleDeck();

// deal same number of cards to each player
int next = 0;
for (int i = 0; i < players; i++)
{
for (int j = 0; j < numCards; j++)
{
cards[i, j] = next; // number of card in deck
next++;
}
}

// display each player's cards
Console.WriteLine("\nThe cards held by each player are as follows");
for (int i = 0; i < players; i++)
{
Console.Write("\n Player {0} :", i + 1);
for (int j = 0; j < numCards; j++)
{
Console.Write("{0,4}", deck[cards[i, j]].ToString());
}
Console.WriteLine();
}

// deal the cards again?
string answer;
do
{
Console.Write("\nAnother deal y/n : ");
answer = Console.ReadLine().ToLower();
}
while (answer != "y" && answer != "n");
anotherDeal = (answer == "y");
}
while (anotherDeal);

Console.Clear();
}
}

public class Card
{
static Random rand = new Random();
string suit;
int number;

public string Suit
{
get { return suit; }
}

public int Number
{
get { return number; }
}
public Card(string s, int n)
{
suit = s;
number = n;
}
private Card(int cardNum)
{
switch (cardNum / 13)
{
case 0:
suit = "clubs";
break;
case 1:
suit = "diamonds";
break;
case 2:
suit = "hearts";
break;
case 3:
suit = "spades";
break;
}
number = cardNum % 13 + 1;
}
public static Card[] ShuffleDeck()
{
Card[] deck = new Card[52];
int[] newCards = new int[52]; // all elements set to 0 by default
bool[] alreadyDrawn = new bool[52]; // all elements set to false by default
int count = 0;
int cardNum = 0;
while (count < 52)
{
cardNum = rand.Next(0, 52); // random number between 0 and 51
if (alreadyDrawn[cardNum] == false)
{
newCards[count++] = cardNum;
alreadyDrawn[cardNum] = true;
}
}
for (int i = 0; i < 52; i++)
{
deck[i] = new Card(newCards[i]);
}

return deck;
}
public override string ToString()
{
string name;
switch (number)
{
case 1:
name = "A";
break;
case 11:
name = "J";
break;
case 12:
name = "Q";
break;
case 13:
name = "K";
break;
default:
name = number.ToString();
break;
}
return name + suit.ToUpper()[0];
}
public string ToLongString()
{
string name;
switch (number)
{
case 1:
name = "Ace";
break;
case 11:
name = "Jack";
break;
case 12:
name = "Queen";
break;
case 13:
name = "King";
break;
default:
name = number.ToString();
break;
}
return name + " of " + suit;
}
}
}

Feedback