mirror of
https://github.com/ivabus/roulette
synced 2024-11-22 00:15:09 +03:00
Проверка ГСЧ готова
Code refactoring Getting ready to 2.0 release
This commit is contained in:
parent
bcf0f9edb9
commit
aa26add757
3 changed files with 91 additions and 72 deletions
7
global.json
Normal file
7
global.json
Normal file
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"sdk": {
|
||||
"version": "6.0.0",
|
||||
"rollForward": "latestMajor",
|
||||
"allowPrerelease": true
|
||||
}
|
||||
}
|
|
@ -1,5 +1,4 @@
|
|||
|
||||
|
||||
Module Program
|
||||
'https://github.com/ivabus/roulette
|
||||
'https://ivabus.github.io/roulette
|
||||
|
@ -17,7 +16,8 @@ Module Program
|
|||
7, 28, 12, 35, 3, 26}
|
||||
'ringRank0 нужен, чтобы было удобно подавать массив в поиск индекса
|
||||
|
||||
Dim ReadOnly ReleaseTag As String = "1.26"
|
||||
Private Const ReleaseTag As String = "2"
|
||||
|
||||
Dim ReadOnly Logo() As String = { _
|
||||
"#### ### # # # ##### ##### ##### #####",
|
||||
"# # # # # # # # # # # ",
|
||||
|
@ -46,16 +46,6 @@ Module Program
|
|||
Console.ForegroundColor = ConsoleColor.DarkBlue
|
||||
End Sub
|
||||
|
||||
Function RemoveAt (Of T)(arr As T(), index As Integer) As T() 'Скопировано с StackOverflow
|
||||
Dim uBound = arr.GetUpperBound(0)
|
||||
Dim lBound = arr.GetLowerBound(0)
|
||||
Dim arrLen = uBound - lBound
|
||||
Dim outArr(arrLen - 1) As T
|
||||
Array.Copy(arr, 0, outArr, 0, index)
|
||||
Array.Copy(arr, index + 1, outArr, index, uBound - index)
|
||||
Return outArr
|
||||
End Function
|
||||
|
||||
Sub Sleep(d As Single) 'Название говорит о предназначении функции
|
||||
Dim t As Single = Timer
|
||||
Do while Timer - t < d
|
||||
|
@ -87,7 +77,7 @@ Module Program
|
|||
Console.WriteLine(StrDup(Console.WindowWidth - 1, "#"))
|
||||
Sleep(0.04444)
|
||||
Next
|
||||
Const entr As String = " Нажмите любую кнопку, чтобы начать игру! "
|
||||
Const entr = " Нажмите любую кнопку, чтобы начать игру! "
|
||||
Console.SetCursorPosition((Console.WindowWidth\2) - Len(entr)\2,
|
||||
Console.WindowHeight - (Console.WindowHeight()\2 - UBound(Logo) + 2)\4 - 3)
|
||||
Console.Write(StrDup(Len(entr) + 2, " "))
|
||||
|
@ -286,24 +276,31 @@ Module Program
|
|||
End Sub
|
||||
|
||||
Sub Game()
|
||||
Console.WriteLine("Выберите сложность: ")
|
||||
Console.WriteLine("1) Лёгкая - 500 фишек в начале")
|
||||
Console.WriteLine("2) Нормальная - 100 фишек в начале")
|
||||
Console.WriteLine("3) Сложная - 10 фишек в начале")
|
||||
Console.WriteLine("4) Невозможная - 2 фишки в начале")
|
||||
Console.Write(">>> ")
|
||||
Dim choose As Integer = Console.ReadLine()
|
||||
Dim fish As Long
|
||||
Select Case choose
|
||||
Case 1
|
||||
fish = 500
|
||||
Case 2
|
||||
fish = 100
|
||||
Case 3
|
||||
fish = 10
|
||||
Case 4
|
||||
fish = 2
|
||||
Case Else
|
||||
Console.WriteLine("Выбор некорректен!")
|
||||
End Select
|
||||
Console.WriteLine("Игра началась!")
|
||||
Dim fish As Long = 5000
|
||||
Dim history As New List(Of Integer)
|
||||
|
||||
Do while fish > 0
|
||||
Console.ForegroundColor = ConsoleColor.DarkBlue
|
||||
Console.WriteLine("У Вас {0} фишек.", fish)
|
||||
Console.WriteLine("Продолжить игру? (Y/n):")
|
||||
Console.Write(">>> ")
|
||||
Dim temp As String = Console.ReadLine()
|
||||
If temp = "n" or temp = "N" Then
|
||||
Exit Sub
|
||||
Else IF temp = "" or temp = "y" or temp = "Y"
|
||||
Console.Write("")
|
||||
Else
|
||||
Console.WriteLine("Неверный ввод, продолжаем игру.")
|
||||
End If
|
||||
|
||||
Dim generated() As String = SpinWheel()
|
||||
Console.Clear
|
||||
history.Add(generated(0))
|
||||
|
@ -377,9 +374,20 @@ Module Program
|
|||
DisplayHistory(history.ToArray())
|
||||
Console.ForegroundColor = ConsoleColor.DarkBlue
|
||||
Console.WriteLine()
|
||||
Console.WriteLine("У Вас {0} фишек.", fish)
|
||||
Console.WriteLine("Продолжить игру? (Y/n):")
|
||||
Console.Write(">>> ")
|
||||
Dim temp As String = Console.ReadLine()
|
||||
If temp = "n" or temp = "N" Then
|
||||
Exit Sub
|
||||
Else IF temp = "" or temp = "y" or temp = "Y"
|
||||
Console.Write("")
|
||||
Else
|
||||
Console.WriteLine("Неверный ввод, продолжаем игру.")
|
||||
End If
|
||||
Loop
|
||||
Console.WriteLine("У Вас кончились фишки, игра окончена.")
|
||||
Console.WriteLine("Нажмите любую кнопку, чтобы выйти в меню.")
|
||||
Console.WriteLine("У Вас закончились фишки, игра окончена.")
|
||||
Console.WriteLine("Нажмите любую клавишу, чтобы выйти в меню.")
|
||||
Console.ReadKey()
|
||||
End Sub
|
||||
|
||||
|
@ -391,30 +399,28 @@ Module Program
|
|||
Console.WriteLine("Сайт: bushchikivan.github.io/roulette")
|
||||
Console.WriteLine("Репозиторий: github.com/BushchikIvan/roulette")
|
||||
Console.WriteLine("Версия: " + ReleaseTag)
|
||||
Console.WriteLine("Нажмите любую кнопку чтобы продолжить.")
|
||||
Console.WriteLine("Нажмите любую клавишу чтобы продолжить.")
|
||||
Console.ReadKey()
|
||||
End Sub
|
||||
|
||||
Sub TestGenerator()
|
||||
Randomize()
|
||||
Dim Count, Ending As Integer
|
||||
Dim count As Integer
|
||||
Dim rnd As New Random
|
||||
Console.Write("Введите количество чисел для генерирования >>> ")
|
||||
Count = Console.ReadLine()
|
||||
Console.Write("Введите конец диапазона проверки (от 0 по X, где X - число, которое вводится сейчас) >>> ")
|
||||
Ending = Console.ReadLine()
|
||||
Dim mass(Count) As Integer
|
||||
Dim mass(count) As Double
|
||||
For i = 0 to Ubound(mass)
|
||||
mass(i) = 0
|
||||
mass(i) = rnd.NextDouble()
|
||||
Next
|
||||
Dim now As Integer
|
||||
For i = 0 To Count
|
||||
mass(rnd.Next(0, Ending)) += 1
|
||||
Next
|
||||
|
||||
Dim pogr As Double = 0
|
||||
Dim sr As Double = mass.Sum() / Count
|
||||
pogr = Math.abs((sr - 0.5) / 0.5) * 100
|
||||
Console.WriteLine("Погрешность генератора случайных чисел " + pogr.ToString("0.#####") + "%")
|
||||
End Sub
|
||||
|
||||
Sub Main()
|
||||
Try
|
||||
Console.BackgroundColor = ConsoleColor.Green
|
||||
Console.ForegroundColor = ConsoleColor.DarkBlue
|
||||
Randomize()
|
||||
|
@ -444,6 +450,12 @@ Module Program
|
|||
Main()
|
||||
Case 4
|
||||
TestGenerator()
|
||||
Case Else
|
||||
Exit Sub
|
||||
End Select
|
||||
Catch
|
||||
Console.WriteLine("Ошибка!")
|
||||
Exit Sub
|
||||
End Try
|
||||
End Sub
|
||||
End Module
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<RootNamespace>roulette</RootNamespace>
|
||||
<TargetFramework>net5.0</TargetFramework>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
||||
|
|
Loading…
Reference in a new issue