[DB] Souci avec une tableau de random

Pour les scripts écrits en C#
Règles du forum
Merci de respecter la NOMENCLATURE suivante pour vos TITRES de messages :

Commencez par le niveau de vos scripts
DB = Débutant
MY = Moyen
CF = Confirmé

Puis le domaine d'application
-RS = Réseau
-AL = Algorithmie

Exemple :

[DB-RS] Mouvement perso multijoueur
dremy38
Messages : 7
Inscription : 07 Jan 2017 21:55

[DB] Souci avec une tableau de random

Message par dremy38 » 31 Jan 2017 21:10

Bonsoir,

J'ai un souci venant d'un tableau de Random. Dans mon jeu, le boss envoie une cage sur le terrain. A son impact, il génère un nombre aléatoire d'ennemie et je crée un tableau qui a pour taille ce nombre.

Code : Tout sélectionner

Random r = new Random();
nbEnnemie = r.Next(2, 7);
listEnnemie = new int[nbEnnemie];
Maintenant, j'ai deux types d'ennemie et j'aimerai que ma cage contient ces différents ennemies.Pour cela, je fais un traitement sur mon tableau et j'insère dans chaque case du tableau un autre random :

Code : Tout sélectionner

for(int i = 0; i < listEnnemie.Length;i++)
                {
                    listEnnemie[i] = new Random().Next(0, 2);
                    
                }
foreach (int ennemie in listEnnemie)
                {
                    Debug.Log(ennemie);
                }
Quand j'exécute l'éditeur, il m'affiche toujours que des 0 ou que des 1. Par contre quand j'exécute le débogueur avec Visual Studio, mon tableau contient à la fois des 0 et des 1. Du coup je ne sais pas si mon tableau est bon ou pas.
Voici le code entier :

Code : Tout sélectionner

using System;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.InteropServices.ComTypes;
using UnityEngine;
using Random = System.Random;

public class MoveCage : MonoBehaviour {

    // Use this for initialization
    public GameObject cube;
    public float speed;
    private float temps = 1.5f;
    private bool attack = false;
    private RaycastHit hit;
    private int nbEnnemie;
    private int[] listEnnemie;

    void Start()
    {

    }


    // Update is called once per frame
    void Update()
    {
        OrbitAround();
        transform.rotation = Quaternion.Euler(transform.rotation.eulerAngles.x, 0, 0);
        if (attack)
        {
            temps -= Time.deltaTime;
            if (temps < 0)
            {
                attack = false;
                Destroy(this.gameObject);
                Random r = new Random();
                nbEnnemie = r.Next(2, 7);
                listEnnemie = new int[nbEnnemie];
                for(int i = 0; i < listEnnemie.Length;i++)
                {
                    listEnnemie[i] = new Random().Next(0, 2);
                    
                }
                foreach (int ennemie in listEnnemie)
                {
                    Debug.Log(ennemie);
                }
                temps = 3;

            }
            

        }
    }
    
    private void OrbitAround()
    {
        transform.RotateAround(cube.transform.position, Vector3.left, speed * Time.deltaTime);
        
    }

    public void setAttack(bool attack)
    {
        this.attack = attack;
    }
}

Merci :)

Moi 1971
Messages : 727
Inscription : 29 Sep 2015 13:38

Re: [DB] Souci avec une tableau de random

Message par Moi 1971 » 31 Jan 2017 22:16

Bonsoir,
Pour vérifier, tu peux tout simplement faire :

Code : Tout sélectionner

for(int i = 0; i < listEnnemie.Length;i++)
                {
                    listEnnemie[i] = new Random().Next(0, 2);
                   Debug.Log("N° : "+ i +" => "+  listEnnemie[i]);
                }

Répondre

Revenir vers « (C#) CSharp »