// deck of cards
// below are initializations
#include <iostream>
#include <fstream>
#include <ctime>
using namespace std;
int main()
{
ofstream myfile; //setup for copy to text file
const char usdeck[4][13][14] = //create 3d array of 52 cards
{
{"heart two", "heart three", "heart four",
"heart five", "heart six", "heart seven",
"heart eight","heart nine", "heart ten",
"heart jack","heart queen", "heart king",
"heart ace"},
{"diamond two", "diamond three", "diamond four",
"diamond five", "diamond six", "diamond seven",
"diamond eight", "diamond nine", "diamond ten",
"diamond jack", "diamond queen", "diamond king",
"diamond ace"},
{"club two", "club three", "club four", "club five",
"club six", "club seven", "club eight", "club nine",
"club ten", "club jack", "club queen", "club king",
"club ace"},
{"spade two", "spade three", "spade four",
"spade five", "spade six", "spade seven",
"spade eight", "spade nine", "spade ten",
"spade jack", "spade queen", "spade king",
"spade ace"}
};
for(int row=0;row<4; row++)
{
for(int column=0;column<13;column++)
{
for(int element=0;element<14;element++)
{
cout << usdeck[row][column][element] << " ";
}
cout <<endl;
}
}
myfile.open("UnshuffledDeck.txt");//creates a text file to place unshuffled deck into
for(int row=0;row<4; row++)
{
for(int column=0;column<13;column++)
{
for(int element=0;element<14;element++)
{
myfile << usdeck[row][column][element] << " ";
//this creates the unshuffled deck text file
}
myfile <<endl;
}
}
myfile.close(); //closes unshuffled deck text file
return 0;
}
void Shuffle()
{
int temp;
char theDeck[4][13];
srand(time(0));
for (int i=0; i<=51; i++)
{
int j = 1 + rand()%52;
int k = 1 + rand()%52;
temp = theDeck[j];
theDeck[j]=theDeck[k];
theDeck[k]=temp;
}
}
Я пытаюсь перетасовать карты в моей колоде .. я написал ниже функции Перемешать, которые я считаю, будет тасовать колоду карт, но я не уверен, о том, как для его реализации. Моя «перетасованная» колода должна быть реализована в 2D-массиве .. пожалуйста, помогите!Randomize (перетасовка) многомерного массива в другой массив 2D
ewwwww отступа код :) –
Это, скорее всего, не будет достаточно, чтобы сделать только 52 свопы карты тасовать колоду. Ваша самая эффективная перетасовка - это очистить колоду, а затем случайным образом положить карты обратно. – jackarms
Почему это не 1-мерный массив карт? Это намного проще: 'std :: string myCards [52] = {« сердце два »,« сердце три »и т. Д.}. Тогда вам понадобится только «std :: random_shuffle», а не весь этот код. Ваши требования перетасовки 2-й колоды не имеют смысла в реальном мире карт, так как никто не тасует только клубы, сердца, лопаты и бриллианты. Вы перетасовываете всю колоду. – PaulMcKenzie