{

	int[] array = new int[7];    
	public int[] GrobA;
	public int[] GrobB;

	int tru = 0;
    
    // Start is called before the first frame update
    void Start()
    {
	    AAA();
	    BBB();
	    CCC();
    }

	void AAA()
	{
		print("-------------start--------------");
		print("-------------45개랜덤--------------");
		for (int i = 1; i < array.Length ; )
        	{
			//array[i] = i;
				int result = Random.Range(1, 45);
				if(tru != result)
				{
					print(result);
					i =i+1;
				}

	        tru = result;
        }

	}
	
	void BBB()
	{
		print("-------------GrobA 랜덤--------------");
        
		for (int i = 1; i < array.Length ;)
		{
			//array[i] = i;

            
			int result = Random.Range(1, GrobA.Length);

			if(tru != result)
			{
				print(GrobA[result]);
				i =i+1;
			}
               
			tru = result;

		}
		
	}

    
	void CCC()
	{
		print("-------------GrobB 랜덤--------------");
        
        
		for (int i = 1; i < array.Length ; )
		{
			//array[i] = i;

            
			int result = Random.Range(1, GrobB.Length);

			if(tru != result)
			{
				print(GrobB[result]);
				i =i+1;
			}
               
			tru = result;

		}  
		
	}

}

 

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

public class TEST_Num : MonoBehaviour
{
    private int[] numbers = Enumerable.Range(1, 45).ToArray();
    private List<int> selectedNumbers = new List<int>();

    public int SetNumber = 1;

    [SerializeField]
    private int[] desiredNumbers = new int[] { };

    private void Start()
    {
        SelectNumbers();
        DisplaySelectedNumbers();
    }

    private void SelectNumbers()
    {
        System.Random random = new System.Random();

        while (selectedNumbers.Contains(0) || selectedNumbers.Count < 6)
        {
            selectedNumbers.Clear();

            for (int i = 0; i < Math.Min(desiredNumbers.Length, SetNumber); i++)
            {
                int requiredNumberIndex = Array.IndexOf(numbers, desiredNumbers[i]);

                if (random.NextDouble() < 0.7)
                {
                    selectedNumbers.Add(desiredNumbers[i]);
                    numbers[requiredNumberIndex] = numbers[numbers.Length - i - 1];
                }
            }

            for (int i = Math.Min(desiredNumbers.Length, 3); i < 6 && selectedNumbers.Count < 6;)
            {
                int index = random.Next(0, numbers.Length - i);
                int selectedNumber = numbers[index];

                if (selectedNumber == 0)
                {
                    continue;
                }

                selectedNumbers.Add(selectedNumber);
                numbers[index] = numbers[numbers.Length - i - 1];
                i++;
            }
        }
    }

    private void DisplaySelectedNumbers()
    {
        string result = string.Join(", ", selectedNumbers.OrderBy(x => x));
        Debug.Log(result);
    }
}

'Unity > C#' 카테고리의 다른 글

물체의 랜덤 스케일  (0) 2021.01.04
캐릭터 랜덤 애니메이션  (0) 2021.01.02
유리가 깨지는 연출  (0) 2020.12.15
Sin, Cos, Tan  (0) 2020.12.15
물체를 회전하고 상하 반복움직임.  (0) 2020.12.11