У меня есть 2 числа, которые используются со random.range, что мне нужно, так это то, что комбинация обоих не повторяется 2 раза, то есть комбинация a1, b1 никогда не может быть повторена, но теперь я не могу это понять должно произойти для карточной игры, которую я должен разработать, в которой одна и та же карта не может быть повторена ни в руке, ни в игре.
class Meca
public List<carta> cardPlay2; //current card combination, each update resets the list
public List<carta> cartaJugada; // current combination of cards, these are saved so that in future
updates the combination is not repeated
public bool isChange;
if (isChange)
{
cardPlay2.Clear();
int num = 5;
for (int j = 0; j < num; j++)
{
cambioCarta();
}
isChange = false;
}
void cambioCarta()
{
GameObject temp = Instantiate(carta);
temp.transform.SetParent(parent);
GameObject tem2p = Instantiate(carta2);
tem2p.transform.SetParent(parent2);
}
script carta
public int Num_cartas, PaloCarta;
public Mecanic meca;
void Start()
{
meca = GameObject.FindObjectOfType<Mecanic>();
if(gameObject.tag == "carta1")
cartas();
if (gameObject.tag == "carta2")
carta2();
}
void cartas()
{
Num_cartas = UnityEngine.Random.Range(1, 11);
PaloCarta = UnityEngine.Random.Range(1, 5);
carta carta1 = new carta
{
numCarta = Num_cartas,
palo = PaloCarta
};
}
[Serializable]
public class carta
{
public int numCarta;
public int palo;
}
то, что я пытаюсь сделать, это
private void controlCartaMano2()
{
Num_cartas = UnityEngine.Random.Range(1, 10);
PaloCarta = UnityEngine.Random.Range(1, 4);
for (int i = 0; i < meca.cardPlay2.Count; i++)
{
while (meca.cardPlay2[i].numCarta == Num_cartas && meca.cardPlay2[i].palo == PaloCarta)
{
Num_cartas = UnityEngine.Random.Range(1, 10);
PaloCarta = UnityEngine.Random.Range(1, 4);
}
}
}
private void controlCartaJugada()
{
for (int i = 0; i < meca.cartaJugada.Count; i++)
{
for(int j = 0; j < meca.cartaJugada.Count; j++)
{
if(meca.cartaJugada[i].numCarta == meca.cartaJugada[j].numCarta &&
meca.cartaJugada[i].palo == meca.cartaJugada[j].palo)
{
Num_cartas = UnityEngine.Random.Range(1, 10);
PaloCarta = UnityEngine.Random.Range(1, 4);
}
}
}
}
если вы знаете, как это сделать, я был бы признателен