1

我创建了一个非常基本的魔术 8 球程序作为学习练习。目前,每次我单击按钮时,它都会输出 0 - 9 之间的随机数。我现在想用一个小的描述代替这些数字来结束,例如“前景看起来不错”或“机会渺茫”等。

我相信我需要在这里使用一个数组但是我不确定我需要什么样的数组以及代码需要嵌套在哪里。

谁能指出我正确的方向。

到目前为止的代码...

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Magic8ball
{
    public partial class Form1 : Form
    {
        private static int randomNumber;
        private const int rangeNumberMin = 0;
        private const int rangeNumberMax = 9;



        public Form1()
        {
            InitializeComponent();
            randomNumber = GenerateNumber(rangeNumberMin, rangeNumberMax);

        }

        private int GenerateNumber(int min, int max)
        {
            Random random = new Random();
            return random.Next(min, max);
        }

        private void Ask_Click(object sender, EventArgs e)
        {

            int rn = randomNumber;

            if (textBox1.Text.Trim().Length == 0)
            {
                MessageBox.Show("Please ask a question first", "No question was asked?");
            }

            else
            {
            MessageBox.Show("Number is" +" " + rn, "your answer...");
            textBox1.Text="";
            randomNumber = GenerateNumber(rangeNumberMin, rangeNumberMax);
            }

        }


    }
}
4

1 回答 1

3

只是属于该类的常规数组可能是要走的路。由于您的随机数从 0 开始,您可以将其用作数组索引messages[randomNumber]

public partial class Form1 : Form
{
    private static int randomNumber;
    private const int rangeNumberMin = 0;
    private const int rangeNumberMax = 9;
    private readonly string[] messages = 
        {
            "I don't think so",
            "Maybe",
            "I don't think so",
            "Maybe",
            "I don't think so",
            "Maybe",
            "I don't think so",
            "Maybe",
            "I don't think so",
            "Yes",
        };

    public Form1()
    {
        InitializeComponent();
        randomNumber = GenerateNumber(rangeNumberMin, rangeNumberMax);
    }

    private int GenerateNumber(int min, int max)
    {
        Random random = new Random();
        return random.Next(min, max);
    }

    private void Ask_Click(object sender, EventArgs e)
    {
        int rn = randomNumber;

        if (textBox1.Text.Trim().Length == 0)
        {
            MessageBox.Show("Please ask a question first", "No question was asked?");
        }

        else
        {
            MessageBox.Show("Number is" +" " + rn, "your answer...");
            randomNumber = GenerateNumber(rangeNumberMin, rangeNumberMax);
            textBox1.Text = messages[randomNumber];
        }
    }
}
于 2013-03-31T16:59:47.880 回答