using System;
namespace Prueba1
{
/*
Un asesino, cansado de elegir sus victimas de la manera habitual, decide hacer la seleccion de una manera mas especial
para esto decide seleccionarlas aelatoriamente. Cree un programa que le permita agrupar a sus posibles victimas y asignarles
un numero y que sea el programa quien decida a quien debe asesinar al momento de que le apetesca para esto debe tener en
consideracion la siguiente condicion:
*Una vez seleccionado una victima , el sistema debera omitir esta persona en la proxima busqueda,de manera que nunca salga
la misma posicion dos veces.
*/
class Program
{
static void Main(string[] args)
{
Console.WriteLine("--------------Asesino Serial--------------");
Console.Write("Ingrese cuantas personas se asesinaran: ");
int victimas = int.Parse(Console.ReadLine());
Asesino asesino
= new Asesino
(victimas
);
while (asesino.cantVictimasAsesinada != victimas)
{
Console.WriteLine("Persona asesinada: {0}", asesino.asesinar());
}
Console.ReadLine();
}
}
class Asesino
{
private int[] victimas;
// Indica el numero de la victima cayo aleatoriamente
private int victima;
// LLevamos la cuenta de cuantas victimas han sido asesinadas
private int victimasAsesinadas;
public int cantVictimasAsesinada { get { return victimasAsesinadas; } }
// Nuestro objeto que trabajara con variables aleatorias
Random random;
public Asesino(){ }
public Asesino(int victimas)
{
victimasAsesinadas = 0;
this.victimas = new int[victimas
]; for (int i = 0; i < this.victimas.Length; i++)
{
this.victimas[i] = i + 1;
}
}
public int asesinar()
{
do
{
victima = random.Next(0, victimas.Length);
} while (victimas[victima] == 0);
// Establecemos la posicion de la casilla en 0 para indicar que la victima ya fue seleccionada
victimas[victima] = 0;
// Aumentamos el numero de victimas asesinadas
victimasAsesinadas++;
return victima + 1;
}
}
}