Skip to content

Instantly share code, notes, and snippets.

@lenetid
Forked from cosmicmonster/ShuffleArray.cs
Created December 21, 2018 01:34
Show Gist options
  • Save lenetid/bef5006f4af569cd2c93dd72c9d9e5ff to your computer and use it in GitHub Desktop.
Save lenetid/bef5006f4af569cd2c93dd72c9d9e5ff to your computer and use it in GitHub Desktop.
Unity3D / C# code to shuffle and array using the Fisher-Yates Shuffle.
using UnityEngine;
using System.Collections;
public class ShuffleArray : MonoBehaviour {
// Public so you can fill the array in the inspector
public int[] scenarios;
void Start ()
{
// Shuffle scenarios array
Shuffle (scenarios);
}
void Shuffle(int[] a)
{
// Loops through array
for (int i = a.Length-1; i > 0; i--)
{
// Randomize a number between 0 and i (so that the range decreases each time)
int rnd = Random.Range(0,i);
// Save the value of the current i, otherwise it'll overright when we swap the values
int temp = a[i];
// Swap the new and old values
a[i] = a[rnd];
a[rnd] = temp;
}
// Print
for (int i = 0; i < a.Length; i++)
{
Debug.Log (a[i]);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment