我正在使用控制台应用程序进行二十一点游戏,我开始制作我的卡类,但我不确定如何使用我的值集访问器来使用数组搜索值,然后确定值参数是否有效。
任何帮助将不胜感激
这是我需要使用的表格
String[] values = {"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
到目前为止,这是我的卡片类
class Card
{
public enum SUIT { HEARTS, SPADES, DIAMONDS, CLUBS };
private SUIT _suit;
private Int32 _value;
public Card(SUIT suit, Int32 value)
{
Suit = _suit;
Value = _value;
}
public SUIT Suit
{
get
{
//Return member variable value
return _suit;
}
set
{
}
}
//Public FirstName accessor: Pascal casing
public Int32 Value
{
get
{
//Return member variable value
return _value;
}
set
{
}
}
}
答案 0 :(得分:1)
如果我理解这个问题,可以试试:
int index = Array.IndexOf(values, Convert.ToInt32(_value));
if(index > 0)
_value = value;
答案 1 :(得分:1)
如果我理解了您的问题,那么您正在尝试验证设置到您的卡的值是否在您的阵列中。因为只有13个选项,而且它们永远不会改变,只需像使用SUIT那样制作枚举
public enum CardValue {
One, Two ..... Queen, King
}
public Card(SUIT suit, CardValue value)
{
Suit = _suit;
Value = _value;
}
答案 2 :(得分:0)
尝试将_value
变量更改为字符串。此外,您必须在value
语句中使用关键字set
:
public SUIT Suit
{
get
{
//Return member variable value
return _suit;
}
set
{
_suit = value;
}
}
//Public FirstName accessor
public string Value
{
get
{
//Return member variable value
return _value;
}
set
{
_value = value;
}
}
如果要发送索引,请将属性名称更改为Index
。听起来更轻松!然后使用
_value = value;
作为Int32。如果您想要取回卡,请使用:
= values[Index];