You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#简易随机双卡牌生成器问题:卡牌重复且显示索引而非内容

解决随机双卡牌生成器的两个问题

先看修正后的完整代码:

string[] cardValues = { "A", "2", "3", "4", "5", "6", "7", "8", "9", "J", "Q", "K" };
string[] cardSuites = { "HEARTS", "CLUBS", "DIAMONDS", "SPADES" };

Random rand = new Random();

// 为第一张牌生成独立的随机索引
int val1 = rand.Next(cardValues.Length);
int suite1 = rand.Next(cardSuites.Length);

// 为第二张牌生成独立的随机索引
int val2 = rand.Next(cardValues.Length);
int suite2 = rand.Next(cardSuites.Length);

Console.WriteLine("2 random cards ");

// 通过索引获取数组中的实际卡牌值与花色
Console.WriteLine("Card1 -> {0} {1}", cardValues[val1], cardSuites[suite1]);
Console.WriteLine("Card2 -> {0} {1}", cardValues[val2], cardSuites[suite2]);

问题1:输出数组索引而非卡牌实际值

你之前直接输出的randomValues和randomSuites是数组元素的位置编号,并非卡牌的实际内容。要显示字母和花色全称,需要用索引去访问对应数组的元素,即cardValues[索引]和cardSuites[索引],这样才能拿到数组中存储的字符串内容。

问题2:两张卡牌完全相同

你只生成了一组随机索引,两张牌共用了同一组值。要生成不同的随机卡牌,必须为每张牌单独调用rand.Next()生成独立的索引,让两张牌的数值和花色各自随机。

内容的提问来源于stack exchange,提问作者R_U_H

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 20:21:32