Para quem já utilizou essa função no C/C++ sabe que a melhor forma de se gerar um número aleatório é baseado na hora do sistema, em Symbian não será diferente. Iremos utilizar a classe TTime para pegar a hora do sistema, essa hora será convertida para um inteiro64 e então passada como argumento na função Math::Rand(
TInt64& aSeed
); Para gerar vários números aleatórios basta fazer várias chamadas a essa função e passando como argumento sempre o mesmo Seed. Você não deve mudar isto! Vamos ao exemplo:== MinhaApliacacaoAppView.h ==
class CMinhaAplicacaoAppView : public CCoeControl
{
private:
//inteiro que será utilizado para gerar os números aleatórios
TInt64 iSeed;
public:
TInt GerarNumeroAleatorio();
};
== MinhaApliacacaoAppView.cpp==
#include "MinhaApliacacaoAppView.h"
#include E32Math.h //(OBS: adicione < > entre E32Math.h , o blog não me permite fazer isto)
void CMinhaApliacaoAppView::ConstructL()
{
//instancia da classe TTime
TTime tempo;
//Recebendo a hora do sistema
tempo.HomeTime();
//Convertendo para inteiro
iSeed = tempo.Int64();
}
TInt CMinhaApliacacaoAppView::GerarNumeroAleatorio()
{
//Gerando número aleatorio de 0 à 100
TInt numeroAleatorio = Math::Rand(iSeed)%101;
return numeroAleatorio;
}
Ehhhhhh, ok está sem identação mas é que não existe um padrão para postar código de programação aqui! (pelo menos não que eu conheça)
Nenhum comentário:
Postar um comentário