将值从对象传递到二维数组
passing value from an object to a two dimensional array
我正在为一个简单的扑克游戏编写代码。我遇到的问题是指针的正确使用。我确实看了下面的链接,也在谷歌上做了一些研究,但我遗漏了一些东西,我知道这很简单。非常感谢您的帮助。
解密功能参数时出现问题:指针和指针对指针
好的,我有一个函数,可以随机生成卡片的面值。我想把它作为一个字符串传递到数组中。。。所以基本上,如果wFace[column]是国王,wSuit[row]是心脏。我想把国王的心传给一个阵列。。player1…我不知道该怎么做。。这是我试过的。。但它只收集了face的第一个值。。它没有得到套装的价值。
当我尝试下面的代码时,我得到的错误如下73 35 E:\C++lab\pokerGame2.cpp[Error]将"const char*"分配给"char*[5]"时的不兼容类型
[代码]
void deal(const int wDeck[][13], const char *wFace[],
const char *wSuit[], char *wplayer1[][5], const char *wplayer2[5] )
{
int card;
int row;
int column;
int s;
for(card =1; card <= 10; card++){
if(card<=5){
for(row = 0; row <= 3; row++){
for(column = 0; column <= 12; column++){
if(wDeck[row][column] ==card){
wplayer1[card] = wFace[column];
for(s=0; s<1; s++){
wplayer1[s] = wSuit[row];
}
//wplayer1[card][card]= (wFace[column], wSuit[row]);
cout<<wFace[column]<<" of "<<wSuit[row]<<"n";
cout<<"player1 cards "<< wplayer1[card][s];
}
}
}
}
else if(card>5 && card <=10){
for(row = 0; row <= 3; row++){
for(column = 0; column <= 12; column++){
{if(wDeck[row][column] ==card){
wplayer2[card]= wFace[column], wSuit[row];
cout<<wFace[column]<<" of "<<wSuit[row]<<"n";
}
}
}
}
}
}
enter code here
[/code]
欢迎使用Stack Overflow
。
我已经回答了你之前的问题,你给出了完整的代码,所以我想我确实理解你在这篇文章中想要什么。在回答这个问题之前,请允许我解释一下为什么人们对格式如此认真。
格式本身不是罪魁祸首,内容才是。
如果你不能把你的问题分解成一个干净的概念,那么就很难用干净的格式来描述它。先消化你的问题,然后问一个干净的问题。
请参阅
-
SSCCE-简短、独立、正确(可编辑),示例和
-
如何询问
学会问一个好问题需要时间,但相信我,这值得你花时间。
除了消化问题本身就是一个学习过程之外,有时你甚至可以在试图分解问题时自己找到解决方案。
请记住,CCD_ 2更像是一个Q&一个网站而不是传统论坛。这里的人对格式要求更严格。我们希望看到一个清晰易懂的问题,这样我们就可以用更少的讨论快速回答它(记住,它不像传统的论坛)。讨论可以在聊天室里进行,也可以简单地在评论中进行,但帖子仍然是一种干净的问答形式;A.
现在让我们回到你的问题上来。
问题不在于"如何将两个值传递到2 dem数组",而在于"为什么要传递这种数据?"
由于您使用的是C++
,因此可以使用class
来格式化数据。
看看下面一个简单的例子:
#include <stdlib.h>
#include <iostream>
#include <ctime>
#include <algorithm>
using namespace std;
const char* FaceString[13] = {"Ace", "2", "3", "4",
"5", "6", "7", "8",
"9", "10", "Jack", "Queen", "King"};
const char* SuitString[4] = {"Spades", "Hearts", "Diamonds", "Clubs"};
class Card
{
public:
int face;
int suit;
void toString() {
cout<<FaceString[face]<<" of "<<SuitString[suit]<<endl;
}
};
int main()
{
// Create a deck of cards
Card deck[52];
for (int i = 0; i < 52; i++) {
deck[i].face = i % 13;
deck[i].suit = i % 4;
}
// Shuffle
srand (unsigned(time(0)));
random_shuffle(&deck[0], (&deck[0]+52));
// Display cards
for (int j = 0; j < 52; j++) {
cout<< "Card_" << (j+1) << ": ";
deck[j].toString();
}
return 0;
}
class Card
是扑克的抽象(概括)。
在main()
中,我通过Card deck[52]
创建一副牌,并通过为每张牌分配值(正面和花色)
for (int i = 0; i < 52; i++) {
deck[i].face = i % 13;
deck[i].suit = i % 4;
}
在这种情况下,您可以简单地打乱一维和有组织的对象数组deck
,并传递整个对象(一张带有自己的脸和西装参数的扑克)作为值。
我在std库中使用random_shuffle()来洗牌,然后交给你处理。
这将使您的程序更加清晰易懂。我认为这个例子足以为你提供一个如何解决问题的方向。
CCD_ 9是一个很好的Q&一个网站,如果你放弃它,对你来说是一个巨大的损失。
坚持下去,你会好起来的。
- 将值从二维数组输出到文本文件
- 在二维数组中查找最小值和最大值?
- 移动二维数组中的字符
- 如何正确填充在堆上分配的二维数组?
- 传递二维数组时出现问题
- 具有随机数的二维数组不会更改
- 如何在C++中获取二维数组中最少的一列数?
- 如何使用用户输入变量制作二维数组?
- C++ 中动态二维数组的访问冲突
- 填充对象的C++二维数组
- C++对象或二维数组作为参数
- 用C++将列表转换为对象的二维数组
- 二维数组和分配对象
- C++ 中的对象的二维数组
- 正确分配和取消分配指向对象的指针的二维数组
- 如何声明二维数组的对象和返回它从一个函数
- OpenCV,显示动态二维数组作为图像(到Mat对象)
- 如何在二维数组中引用对象
- 将值从对象传递到二维数组
- c++中二维数组中的对象切片