【问题标题】:How to make my program select a random color from C# opposed to a set color?如何让我的程序从 C# 中选择随机颜色而不是设置颜色?
【发布时间】:2021-03-16 18:46:16
【问题描述】:

所以我正在制作一个程序,它涉及 3 种不同的颜色值。

我想让程序从 4 个列表中为所有 3 个形状选择一种随机颜色,而不是设置颜色。虽然我似乎无法弄清楚。

enum color
{

    Red,
    Green,
    Blue,
    Black
}

//abstract class "Shape" which has 3 methods pretaining to attributes of the shape.
abstract class Shape
{
    public abstract double getArea();
    public abstract double getPerimeter();
    public abstract color getColr();
}
//Triangle class which inherits the Shape methods
class Triangle : Shape
{
    public double s1;
    public double s2;
    public double s3;
    public color c = color.Red;

【问题讨论】:

  • 那么你想要的是每次你初始化一个形状,让它有列出的颜色之一?

标签: c# random colors enumeration


【解决方案1】:
public color c = color.Red;

到目前为止,您尝试了什么?

如果您希望子类的颜色是随机的,您可能不应该在此处指定它。当您调用您的构造函数并分配 s1、s2 和 s3 时 - 这就是您想要分配新的随机颜色的时候。

从你的枚举中随机抽取一个:

Array colors = Enum.GetValues(typeof(color)); //enum naming should be capitalized
Random random = new Random();
Color randomColor = (Color)colors.GetValue(random.Next(colors.Length));

【讨论】:

    【解决方案2】:

    您可以让程序获取与您的一种颜色相对应的随机整数值。
    然后,只需从预先确定的颜色数组中获取颜色。请记住在您的初始抽象类中将其设为 protected 数组。
    您可以在构造函数或受保护函数中从数组中获取颜色,这取决于您。

    颜色数组

    protected Color[] colors = new [] { Color.Red, Color.Green, Color.Blue, Color.Yellow };
    

    从数组中获取随机颜色

    Random r = new Random();
    int color_code = r.Next(0,3);
    c = colors[color_code];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-26
      • 1970-01-01
      • 2022-01-16
      • 2014-10-07
      • 2019-10-29
      • 2019-03-29
      • 2016-08-09
      • 1970-01-01
      相关资源
      最近更新 更多