add sample for random algorithm
This commit is contained in:
parent
d0cbd5a88b
commit
5e078be179
@ -1,75 +1,40 @@
|
||||
using System.Reflection.Emit;
|
||||
using System.Runtime.InteropServices.ComTypes;
|
||||
using System.Text;
|
||||
using System.Threading.Channels;
|
||||
using LootBoxSimulator.Models.DAO;
|
||||
|
||||
decimal [] test = [0.25M, 0.5M, 0.125M , 0.125M];
|
||||
//(start)-(end)
|
||||
//(0,5) - (0,5+ 0,25)
|
||||
//(0,5 + 0,25) - (0,5 + 0,25 + 0,125)
|
||||
//(0,5 + 0,25 + 0,125) - (0,5 + 0,25 + 0,125 + 0,1)
|
||||
//0.5 0
|
||||
//0.25 1
|
||||
|
||||
RemoteDatabaseContext db = new RemoteDatabaseContext();
|
||||
StringBuilder stringBuilder = new StringBuilder();
|
||||
stringBuilder.Append("1. Print category");
|
||||
stringBuilder.AppendLine();
|
||||
stringBuilder.Append("2. Print rate");
|
||||
stringBuilder.AppendLine();
|
||||
stringBuilder.Append("3. Print items");
|
||||
stringBuilder.AppendLine();
|
||||
stringBuilder.Append("4. Edit category");
|
||||
Console.WriteLine(stringBuilder.ToString());
|
||||
if (!int.TryParse(Console.ReadLine(), out int menuPosition))
|
||||
//0-1
|
||||
//0.5 0.25 0.125 0.125
|
||||
//0 - 0.5 //unrare
|
||||
//0.5 - 0.75 //rare
|
||||
//0.75 - 0.875 //epic
|
||||
//0.875 - 1 //legend
|
||||
test = test.OrderByDescending(it => it).ToArray();
|
||||
foreach (var @decimal in test)
|
||||
{
|
||||
Console.WriteLine("Please enter a valid number");
|
||||
return;
|
||||
Console.WriteLine(@decimal);
|
||||
}
|
||||
|
||||
switch (menuPosition)
|
||||
Random random = new Random();
|
||||
decimal number = Convert.ToDecimal(Math.Round(random.NextDouble(),2));
|
||||
Console.WriteLine($"Random number: {number}");
|
||||
decimal startRange = 0;
|
||||
decimal endRange = test[0];
|
||||
if(number >= startRange && number <= endRange) Console.WriteLine(true);
|
||||
for (int i = 1; i < test.Length; i++)
|
||||
{
|
||||
case 1:
|
||||
foreach (var categoryDao in db.Categories)
|
||||
startRange = endRange;
|
||||
endRange = startRange + test[i];
|
||||
if (number >= startRange && number <= endRange)
|
||||
{
|
||||
Console.WriteLine($"Id: {categoryDao.Id} Name: {categoryDao.Name}");
|
||||
Console.WriteLine($"{startRange} - {endRange} {true}");
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 2: break;
|
||||
|
||||
case 3: ChangeCategory(); break;
|
||||
default:
|
||||
Console.WriteLine("Unkown Menu Position");
|
||||
break;
|
||||
}
|
||||
|
||||
void ChangeCategory()
|
||||
{
|
||||
if(!int.TryParse(Console.ReadLine(), out int CategoryID)) return;
|
||||
String CategoryName = Console.ReadLine();
|
||||
if(String.IsNullOrEmpty(CategoryName)) return;
|
||||
var categoryDao = db.Categories.Find(CategoryID);
|
||||
categoryDao.Name = CategoryName;
|
||||
db.SaveChanges();
|
||||
}
|
||||
|
||||
void RemoveCategory()
|
||||
{
|
||||
Console.WriteLine("Please enter a Category ID to remove");
|
||||
if(!int.TryParse(Console.ReadLine(), out int CategoryID)) return;
|
||||
var categoryDao = db.Categories.Find(CategoryID);
|
||||
db.Categories.Remove(categoryDao);
|
||||
db.SaveChanges();
|
||||
}
|
||||
|
||||
void AddCategory()
|
||||
{
|
||||
Console.WriteLine("Please enter a Category Name for new category");
|
||||
String CategoryName = Console.ReadLine();
|
||||
if(String.IsNullOrEmpty(CategoryName)) return;
|
||||
CategoryDao categoryDao = new CategoryDao();
|
||||
categoryDao.Name = CategoryName;
|
||||
db.Categories.Add(categoryDao);
|
||||
db.SaveChanges();
|
||||
}
|
||||
//задача на попадание в диапазон
|
||||
//собрать все диапазоны из таблицы rate в формате(предаврительно значения нужно отсортировать по убыванию):
|
||||
//start_range, end_range и циклом проверять попадание в диапазон, интерфейс функции:
|
||||
//добавить проверку на ввод значения, значение может находиться в диапазон от 0 до суммы вероятностей таблицы Rate
|
||||
void NumberInRange(decimal min)
|
||||
{
|
||||
|
||||
}
|
Loading…
Reference in New Issue
Block a user