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 に答える