Как создать генератор рандомных слов? - C#

Узнай цену своей работы

Формулировка задачи:

Всем привет! Ребят, уже как неделю ищу что-то подобное:"Как создать генератор слов в C#?"... И всё без толку... Вообщем, нужно создать такую штуку в C#, которая будет способна выбирать слова рандомно... Например: Создам я несколько слов: "Квартира", "Работа", "Будильник","День", и нужно сделать так, чтобы эти слова писали в каком-либо тексте рандомно т.е.: 1. Квартира-Будильник-Работа-День 2. Будильник-Работа-Квартира-День 3. Работа-Квартира-День-Будильник и т.д. И заметьте нужно сделать так, чтобы эти слова не повторялись... Получилось Что-то подобное создать:
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;
  9. namespace Генератор
  10. {
  11. public partial class Form1 : Form
  12. {
  13. public Form1()
  14. {
  15. InitializeComponent();
  16. }
  17. private void btnGeneratorSlov_Click(object sender, EventArgs e)
  18. {
  19. Random Slov = new Random();
  20. int RanSlov = Slov.Next(4);
  21. if (RanSlov == 0)
  22. {
  23. tbKeys.Text = "Квартира";
  24. }
  25. else if (RanSlov == 1)
  26. {
  27. tbKeys.Text = "Работа";
  28. }
  29. else if (RanSlov == 2)
  30. {
  31. tbKeys.Text = "Будильник";
  32. }
  33. else if (RanSlov == 3)
  34. {
  35. tbKeys.Text = "День";
  36. }
  37. }
  38. }
  39. }
Но это совсем не то; Во-первых: Нужно создать всё это в функции, а не писать в "Кнопке", Во-вторых: Генерируется только одно число "слово", а надо несколько... И наконец: иногда слова будут одинаковы, а надо сделать так, чтобы сначала все слова на писались т.е.: Квартира;Работа;Будильник;День, а уже потом началось повторение, но в другом порядке. Надеюсь объяснил толково... ПОМОГИТЕ!

Решение задачи: «Как создать генератор рандомных слов?»

textual
Листинг программы
  1.         public static void Shuffle(string[] a)
  2.         {
  3.             var rand = new Random();
  4.             for(int i = a.Length - 1; i > 0; i--)
  5.             {
  6.                 int j = rand.Next(0, i + 1);
  7.                 string tmp = a[i];
  8.                 a[i] = a[j];
  9.                 a[j] = tmp;
  10.             }
  11.         }
  12. private void button1_Click(object sender, EventArgs e)
  13.         {
  14.             string[] words = {"Квартира", "Будильник", "Работа", "День"};
  15.            Shuffle(words);
  16.            tbKeys.Text = string.Join(";", words.Take(n)); //где n - кол-во необходимых эл-тов
  17.  
  18.         }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.857 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут