[RESOLVIDO] Sistema Aleatório
3 participantes
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
[RESOLVIDO] Sistema Aleatório
Bom dia estou tendo problemas com este código e gostaria de saber se alguém sabe como fazer para ele não gerar números repetidos em uma mesma sequencia
de 6 números a ideia é fazer um gerador de números para mega sena.
#pragma strict
var numerosaleatorios1 : int;
var numerosaleatorios2 : int;
var numerosaleatorios3 : int;
var numerosaleatorios4 : int;
var numerosaleatorios5 : int;
var numerosaleatorios6 : int;
var texto1 : GUIText;
var texto2 : GUIText;
var texto3 : GUIText;
var texto4 : GUIText;
var texto5 : GUIText;
var texto6 : GUIText;
var botao : GameObject;
function Update (){
texto1.text = ""+numerosaleatorios1;
texto2.text = ""+numerosaleatorios2;
texto3.text = ""+numerosaleatorios3;
texto4.text = ""+numerosaleatorios4;
texto5.text = ""+numerosaleatorios5;
texto6.text = ""+numerosaleatorios6;
}
function OnMouseEnter () {
numerosaleatorios1 = Random.Range(2,58);
numerosaleatorios2 = Random.Range(2,58);
numerosaleatorios3 = Random.Range(2,58);
numerosaleatorios4 = Random.Range(2,58);
numerosaleatorios5 = Random.Range(2,58);
numerosaleatorios6 = Random.Range(2,58);
}
de 6 números a ideia é fazer um gerador de números para mega sena.
#pragma strict
var numerosaleatorios1 : int;
var numerosaleatorios2 : int;
var numerosaleatorios3 : int;
var numerosaleatorios4 : int;
var numerosaleatorios5 : int;
var numerosaleatorios6 : int;
var texto1 : GUIText;
var texto2 : GUIText;
var texto3 : GUIText;
var texto4 : GUIText;
var texto5 : GUIText;
var texto6 : GUIText;
var botao : GameObject;
function Update (){
texto1.text = ""+numerosaleatorios1;
texto2.text = ""+numerosaleatorios2;
texto3.text = ""+numerosaleatorios3;
texto4.text = ""+numerosaleatorios4;
texto5.text = ""+numerosaleatorios5;
texto6.text = ""+numerosaleatorios6;
}
function OnMouseEnter () {
numerosaleatorios1 = Random.Range(2,58);
numerosaleatorios2 = Random.Range(2,58);
numerosaleatorios3 = Random.Range(2,58);
numerosaleatorios4 = Random.Range(2,58);
numerosaleatorios5 = Random.Range(2,58);
numerosaleatorios6 = Random.Range(2,58);
}
alisson- Iniciante
- PONTOS : 3687
REPUTAÇÃO : 0
Re: [RESOLVIDO] Sistema Aleatório
pensei nisso: você cria uma condição para cada "numerosaleatorios" que se eles forem igual ao outros "numerosaleatorios" ele faça o random.Rage denovo
if(numerosaleatorios1 == numerosaleatorios2 && numerosaleatorios3 ...etc.)
numerosaleatorios1 = Random.Range(2,58);
coloca esse código para cada "numerosaleatorios"
if(numerosaleatorios1 == numerosaleatorios2 && numerosaleatorios3 ...etc.)
numerosaleatorios1 = Random.Range(2,58);
coloca esse código para cada "numerosaleatorios"
JailtonUnity- MembroAvançado
- PONTOS : 3775
REPUTAÇÃO : 38
Idade : 25
Respeito as regras :
Re: [RESOLVIDO] Sistema Aleatório
- Código:
float numeroRandomDiferenteDeSeis(int numero1, int numero2){
float numeroDeRetorno;
numeroDeRetorno = Random.Range(numero1, numero2);
if (numeroDeRetorno == 6) {
return numeroRandomDiferenteDeSeis (numero1, numero2);
} else {
return numeroDeRetorno;
}
}
string SequenciaDeNumeros(){
return (numeroRandomDiferenteDeSeis (1, 10).ToString() + numeroRandomDiferenteDeSeis (1, 10).ToString() +
numeroRandomDiferenteDeSeis (1, 10).ToString() + numeroRandomDiferenteDeSeis (1, 10).ToString() +
numeroRandomDiferenteDeSeis (1, 10).ToString() + numeroRandomDiferenteDeSeis (1, 10).ToString());
}
Re: [RESOLVIDO] Sistema Aleatório
Já tentei fazer isso porem não deu certo tenho esse código agora eu só queria clicar em um GameObject e exibir os números em uma GuiText e eles estão sendo exibidos em um Gui.Box e estou usando um Gui.Button você poderia me ajudar a personalizar isso.
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
public class testeMega : MonoBehaviour {
private List<int> _saco = new List<int>();
private List<int> _sorteados = new List<int>();
void Start () {
for(int x = 1; x<=60; x++){
_saco.Add(x);
}
}
void OnGUI () {
if (GUI.Button (new Rect (20, 20 , 140, 30), "SORTEAR")) {
sorteio();
}
for(int x = 0; x< _sorteados.Count; x++){
GUI.Box (new Rect (20, 120+(x*30) , 140, 30), _sorteados[x].ToString());
}
}
void sorteio(){
for(int x = 0; x<6; x++){
int s = Random.Range(0,60);
foreach(int n in _saco){
if(n == s){
_sorteados.Add(s);
_saco.Remove(n);
break;
}
}
}
}
}
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
public class testeMega : MonoBehaviour {
private List<int> _saco = new List<int>();
private List<int> _sorteados = new List<int>();
void Start () {
for(int x = 1; x<=60; x++){
_saco.Add(x);
}
}
void OnGUI () {
if (GUI.Button (new Rect (20, 20 , 140, 30), "SORTEAR")) {
sorteio();
}
for(int x = 0; x< _sorteados.Count; x++){
GUI.Box (new Rect (20, 120+(x*30) , 140, 30), _sorteados[x].ToString());
}
}
void sorteio(){
for(int x = 0; x<6; x++){
int s = Random.Range(0,60);
foreach(int n in _saco){
if(n == s){
_sorteados.Add(s);
_saco.Remove(n);
break;
}
}
}
}
}
alisson- Iniciante
- PONTOS : 3687
REPUTAÇÃO : 0
Re: [RESOLVIDO] Sistema Aleatório
Existem muitos metodos para isso, más como mexer com GUIText nesse seu esquema é meio complicado, prefiro usar os botões mesmo, por ex:
também de uma olhada neste tutorial sobre o posicionamento de botões...
https://www.schultzgames.com/t55-tutorial-posicionamento-de-botoes#98
Quanto ao clicar em algum objeto para fazer o sorteio, você pode usar variaveis estaticas...
e faça algo assim no update
OK, depois disso você precisará colocar um objeto para ativar esse sorteio, com uma função +/- assim...
OBS: o objeto que contem este script precisa ter um colisor
- Código:
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
public class Loteria : MonoBehaviour {
public Texture texto;
private List<int> _saco = new List<int>();
private List<int> _sorteados = new List<int>();
void Start () {
for(int x = 1; x<=60; x++){
_saco.Add(x);
}
}
void OnGUI () {
if (GUI.Button (new Rect (20, 20 , 140, 30), "SORTEAR")) {
sorteio();
}
for(int x = 0; x< _sorteados.Count; x++){
GUI.Box (new Rect (20, 120+(x*30) , 140, 30), _sorteados[x].ToString(),GUIStyle.none);
}
}
void sorteio(){
for(int x = 0; x<6; x++){
int s = Random.Range(0,60);
foreach(int n in _saco){
if(n == s){
_sorteados.Add(s);
_saco.Remove(n);
break;
}
}
}
}
}
também de uma olhada neste tutorial sobre o posicionamento de botões...
https://www.schultzgames.com/t55-tutorial-posicionamento-de-botoes#98
Quanto ao clicar em algum objeto para fazer o sorteio, você pode usar variaveis estaticas...
- Código:
public static bool AtivarSorteio;
e faça algo assim no update
- Código:
void Update (){
if(AtivarSorteio == true){
Sorteio ();
}
}
OK, depois disso você precisará colocar um objeto para ativar esse sorteio, com uma função +/- assim...
- Código:
OnMouseOver (){
if (Input.GetButtonDown("Fire1") ){
NomeDoOutroScript.AtivarSorteio = true;
}
}
OBS: o objeto que contem este script precisa ter um colisor
Re: [RESOLVIDO] Sistema Aleatório
OK vou fazer isso sim muito obrigado.
alisson- Iniciante
- PONTOS : 3687
REPUTAÇÃO : 0
Tópicos semelhantes
» [RESOLVIDO] Sistema de login
» [RESOLVIDO] Sistema De Combo
» [RESOLVIDO] Movimento aleatório e suave de um objeto
» [RESOLVIDO] Duvida sistema de level
» [RESOLVIDO] sistema de dano particular
» [RESOLVIDO] Sistema De Combo
» [RESOLVIDO] Movimento aleatório e suave de um objeto
» [RESOLVIDO] Duvida sistema de level
» [RESOLVIDO] sistema de dano particular
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos