rifaterdemsahin / aif

Adaptive Intelligence Framework
5 stars 7 forks source link

Load different words every time #177

Closed rifaterdemsahin closed 6 years ago

rifaterdemsahin commented 6 years ago

use the world list get a letters list Scramble it.create that order Load a different word every time

rifaterdemsahin commented 6 years ago

shuffle https://stackoverflow.com/questions/4739903/shuffle-string-c-sharp

rifaterdemsahin commented 6 years ago

image

using System.Collections; using System.Linq; using System; using System.Collections.Generic; using UnityEngine;

public class SetTheQuestion : MonoBehaviour {

public GameObject question;
public GameObject newLetterOrder;
// Use this for initialization
void Start () {
    var myQuestion = Words.GetAWordRandom();
    question.GetComponent<TextMesh>().text = myQuestion;
    newLetterOrder.GetComponent<TextMesh>().text = Shuffle.StringMixer(myQuestion);

}

// Update is called once per frame
void Update () {

}

}

public class Words { public string Word { get; set; } public static List Dictionary { get; set; } public static void init() { Dictionary = new List(); Words.Dictionary.Add("BYE"); Words.Dictionary.Add("YES"); Words.Dictionary.Add("SAY"); }

public static string GetAWordRandom()
{
    init();
    var result = "";
    result = (from f in Dictionary
              select f
              ).OrderBy(x => Guid.NewGuid()).FirstOrDefault();

    return result;
}

} public class Shuffle { static System.Random rnd = new System.Random();

static void Fisher_Yates(int[] array)
{
    int arraysize = array.Length;
    int random;
    int temp;

    for (int i = 0; i < arraysize; i++)
    {
        random = i + (int)(rnd.NextDouble() * (arraysize - i));

        temp = array[random];
        array[random] = array[i];
        array[i] = temp;
    }
}

public static string StringMixer(string s)
{
    string output = "";
    int arraysize = s.Length;
    int[] randomArray = new int[arraysize];

    for (int i = 0; i < arraysize; i++)
    {
        randomArray[i] = i;
    }

    Fisher_Yates(randomArray);

    for (int i = 0; i < arraysize; i++)
    {
        output += s[randomArray[i]];
    }

    return output;
}

}