在固定十张牌随机生成六张牌逻辑
void AcupointData()
{
createItemDataList.Clear();
List<string> tempList = new List<string>(dataTeris.XuanWeiLink);
// 确保列表中不包含 imgNameStr
// 定义随机数生成器
System.Random random = new System.Random();
// 随机选择6个穴位,确保不会重复
while (createItemDataList.Count < 10)
{
int randomIndex = random.Next(tempList.Count);
string selectedItem = tempList[randomIndex];
if (!createItemDataList.Contains(selectedItem))
{
createItemDataList.Add(selectedItem);
}
else
{
// 如果已经存在,移除当前项,尝试选择下一个项
tempList.RemoveAt(randomIndex);
if (tempList.Count == 0) break;
}
}
tempList.Add(imgNameStr);
// 检查是否成功添加了6个元素
if (createItemDataList.Count < 10)
{
Debug.LogError("未能从临时列表中选择足够的穴位。当前临时列表元素数量: " + tempList.Count);
return;
}
// 随机排序 createItemDataList
for (int i = createItemDataList.Count - 1; i > 0; i--)
{
int randomIndex = random.Next(i + 1);
string temp = createItemDataList[i];
createItemDataList[i] = createItemDataList[randomIndex];
createItemDataList[randomIndex] = temp;
}
for (int i = 0; i < createItemDataList.Count; i++)
{
// threeBtns[i].transform.GetChild(1).GetComponent<Text>().text = createItemDataList[i];
}
// 打印生成的按钮穴位数据
foreach (string n in createItemDataList)
{
Debug.Log("生成按钮穴位数据: " + n);
}
}
}