所以我试图制作一个记忆匹配游戏,其中翻转两张牌,然后检查它们是否匹配。如果它们匹配,则它们保持翻转,否则翻转。但是我一直想找到一种方法来识别与之匹配的卡片。
class Card
{
List<int> IDs = new List<int>();
List<PictureBox> pictureBoxes = new List<PictureBox>;
public void addPictureBox(PictureBox pb)
{
pictureBoxes.Add(pb);
}
public void addInt(int numberOfCards)
{
for(int i = 1; i <= numberOfCards; i++)
{
IDs.Add(i);
}
}
}
到目前为止,我制作了这个卡类来将每个图片框存储在一个列表中,并且还创建了一个整数列表来识别它们。将两者连接在一起的方法是什么?
答案 0 :(得分:1)
好好创建一个具有picturebox和int的类。并列出这个类:
<some.package.CircleImageView
...
android:scaleType="fitXY"
...
/>
现在,您可以访问每张卡片:public class Card{
public Picturebox pic;
public int Id;
}
List<Card> Cards= new List<Card>();
public void addInt(int numberOfCards)
{
for(int i = 1; i <= numberOfCards; i++)
{
Cards.Add(new Card(){
pictureBoxes= pb,
id = i
});
}
}
和card.Id
。
答案 1 :(得分:1)
首先,您需要使用SOC和SRP原则更好地设计Card
类以有效地表示卡片(即卡片不应具有{ {1}},而应该有PictureBox
属性来表示它的面孔。
Image
类应该是这样的:
Card
然后应该有一个名为public class Card {
public int ID {
get; set;
}
public Image Face {
get; set;
}
}
且带有Board
的类,在初始化时使用所有卡填充此属性。为简单起见,您可以使用填充了所有ID作为键的List<Card>
和相应匹配作为值来匹配卡片,因此您可以调用词典Dicionaty<int, int>
来检查一些id是另一个id的匹配:
TryGetValue
要在视觉上表示卡片,您可以在表单类中创建另一个字典,其中键是卡片的ID,而PictureBoxs的值是这样的,这样就可以很容易地使用创建的类来进行游戏。
当然有更高级的方法可以做到这一点,但我试着回答一个简单的方法。