处理中的纸牌游戏套装
Card game Sets in Processing
我正在尝试制作一个名为 sets (Here a link to how it works) 的纸牌游戏。我需要创建 27 张卡片(数组),然后每次检查从中取出 12 张卡片并得到对。有谁知道搜索配对的最佳方法。喜欢查看哪些卡:
它们都具有相同的编号或具有三个不同的编号。
它们都具有相同的符号或具有三个不同的符号。
它们都具有相同的颜色或具有三种不同的颜色。
我如何在数组中使用 wright 数据类型,然后在函数中检查哪个是好的数据类型
我尝试使用包含颜色、形状和数量的字符串数组。像绿色三角形 3 倍是:gt3。但是我不知道如何比较它们的好对
您可以立即实现的简短答案是使用二维数组。
您了解到数组可以保存值。一个数组也可以容纳其他数组。因此,您可以为每张卡片使用一个数组来保存属性,并将所有这些数组存储在一个 'cardset' 数组中。您现在可以使用 2 个索引访问单个卡属性。下面的代码可以帮助您理解:
String[] card_a = {"G", "T","3"};
String[] card_b = {"R", "S","2"};
String[] card_c = {"G", "S","1"};
String[][] cardset = {card_a, card_b, card_c};
void setup(){
//Print the number on card_a
print(cardset[0][2]);
//Compare the number on card_a with the number on card_b
if(cardset[0][2] == cardset[1][2]){
print("Equal!");
}
else{
print("Unequal!");
}
}
你也可以像这样直接实例化一个二维数组:
String[][] cardset = { {"G", "T","3"},
{"R", "S","2"},
{"G", "S","1"}
};
长话短说,你应该了解物体的力量。
我不会完全解释它,因为那会很长而且互联网上充满了很好的解释——比我的解释要好。
我建议您阅读 this tutorial on the processing website. I can also advice this video series 处理和编程的基础知识,包括对象。
下面的代码向您展示了对象的基本实现方式。这对您来说可能还没有多大意义。没关系。对象是一个基本的编程原则,但它需要一些时间 - 以及一个很好的解释 - 才能让你的头脑清醒过来。因此,我强烈建议您查看我在上面发布的教程。您可能需要一些时间才能完全掌握这个概念,但是当您掌握了这个概念时,您就可以利用它的力量。
class Card {
String shape;
int number;
color col;
Card(String s, int n, color c) {
shape = s;
number = n;
col = c;
}
}
void setup() {
color red = color(255, 0, 0);
color green = color(0, 255, 0);
color blue = color(0, 0, 255);
Card a = new Card("Circle", 1, red);
Card b = new Card("Square", 2, green);
Card c = new Card("Circle", 3, blue);
//Check for equal shapes
if (a.shape == b.shape && b.shape ==c.shape ) {
print("All shapes equal");
}
//Check for unequal shapes
if (a.shape != b.shape && a.shape != c.shape && b.shape !=c.shape ) {
print("All shapes unequal");
}
}
我正在尝试制作一个名为 sets (Here a link to how it works) 的纸牌游戏。我需要创建 27 张卡片(数组),然后每次检查从中取出 12 张卡片并得到对。有谁知道搜索配对的最佳方法。喜欢查看哪些卡: 它们都具有相同的编号或具有三个不同的编号。 它们都具有相同的符号或具有三个不同的符号。 它们都具有相同的颜色或具有三种不同的颜色。
我如何在数组中使用 wright 数据类型,然后在函数中检查哪个是好的数据类型
我尝试使用包含颜色、形状和数量的字符串数组。像绿色三角形 3 倍是:gt3。但是我不知道如何比较它们的好对
您可以立即实现的简短答案是使用二维数组。
您了解到数组可以保存值。一个数组也可以容纳其他数组。因此,您可以为每张卡片使用一个数组来保存属性,并将所有这些数组存储在一个 'cardset' 数组中。您现在可以使用 2 个索引访问单个卡属性。下面的代码可以帮助您理解:
String[] card_a = {"G", "T","3"};
String[] card_b = {"R", "S","2"};
String[] card_c = {"G", "S","1"};
String[][] cardset = {card_a, card_b, card_c};
void setup(){
//Print the number on card_a
print(cardset[0][2]);
//Compare the number on card_a with the number on card_b
if(cardset[0][2] == cardset[1][2]){
print("Equal!");
}
else{
print("Unequal!");
}
}
你也可以像这样直接实例化一个二维数组:
String[][] cardset = { {"G", "T","3"},
{"R", "S","2"},
{"G", "S","1"}
};
长话短说,你应该了解物体的力量。
我不会完全解释它,因为那会很长而且互联网上充满了很好的解释——比我的解释要好。
我建议您阅读 this tutorial on the processing website. I can also advice this video series 处理和编程的基础知识,包括对象。
下面的代码向您展示了对象的基本实现方式。这对您来说可能还没有多大意义。没关系。对象是一个基本的编程原则,但它需要一些时间 - 以及一个很好的解释 - 才能让你的头脑清醒过来。因此,我强烈建议您查看我在上面发布的教程。您可能需要一些时间才能完全掌握这个概念,但是当您掌握了这个概念时,您就可以利用它的力量。
class Card {
String shape;
int number;
color col;
Card(String s, int n, color c) {
shape = s;
number = n;
col = c;
}
}
void setup() {
color red = color(255, 0, 0);
color green = color(0, 255, 0);
color blue = color(0, 0, 255);
Card a = new Card("Circle", 1, red);
Card b = new Card("Square", 2, green);
Card c = new Card("Circle", 3, blue);
//Check for equal shapes
if (a.shape == b.shape && b.shape ==c.shape ) {
print("All shapes equal");
}
//Check for unequal shapes
if (a.shape != b.shape && a.shape != c.shape && b.shape !=c.shape ) {
print("All shapes unequal");
}
}