add sample for random algorithm

This commit is contained in:
KP9lKk 2024-12-17 18:06:26 +03:00
parent d0cbd5a88b
commit 5e078be179

View File

@ -1,75 +1,40 @@
using System.Reflection.Emit; 
using System.Runtime.InteropServices.ComTypes; decimal [] test = [0.25M, 0.5M, 0.125M , 0.125M];
using System.Text; //(start)-(end)
using System.Threading.Channels; //(0,5) - (0,5+ 0,25)
using LootBoxSimulator.Models.DAO; //(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(); //0-1
StringBuilder stringBuilder = new StringBuilder(); //0.5 0.25 0.125 0.125
stringBuilder.Append("1. Print category"); //0 - 0.5 //unrare
stringBuilder.AppendLine(); //0.5 - 0.75 //rare
stringBuilder.Append("2. Print rate"); //0.75 - 0.875 //epic
stringBuilder.AppendLine(); //0.875 - 1 //legend
stringBuilder.Append("3. Print items"); test = test.OrderByDescending(it => it).ToArray();
stringBuilder.AppendLine(); foreach (var @decimal in test)
stringBuilder.Append("4. Edit category");
Console.WriteLine(stringBuilder.ToString());
if (!int.TryParse(Console.ReadLine(), out int menuPosition))
{ {
Console.WriteLine("Please enter a valid number"); Console.WriteLine(@decimal);
return;
} }
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: startRange = endRange;
foreach (var categoryDao in db.Categories) endRange = startRange + test[i];
if (number >= startRange && number <= endRange)
{ {
Console.WriteLine($"Id: {categoryDao.Id} Name: {categoryDao.Name}"); Console.WriteLine($"{startRange} - {endRange} {true}");
}
break;
case 2: break;
case 3: ChangeCategory(); break;
default:
Console.WriteLine("Unkown Menu Position");
break; 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)
{
}