mirror of
https://github.com/ivabus/roulette
synced 2024-11-22 16:35:09 +03:00
Localisation work
This commit is contained in:
parent
3e5b0af7d4
commit
c6fe02ca87
1 changed files with 69 additions and 49 deletions
|
@ -16,8 +16,21 @@ Module Program
|
||||||
7, 28, 12, 35, 3, 26}
|
7, 28, 12, 35, 3, 26}
|
||||||
'ringRank0 нужен, чтобы было удобно подавать массив в поиск индекса
|
'ringRank0 нужен, чтобы было удобно подавать массив в поиск индекса
|
||||||
|
|
||||||
Private Const ReleaseTag As String = "2.0"
|
Private Const ReleaseTag As String = "2.1"
|
||||||
|
|
||||||
|
Dim LANG As Integer = -1
|
||||||
|
Dim ReadOnly strings(,)= {{"История выпадений (последние 15): ", " Нажмите любую кнопку, чтобы начать игру! ",
|
||||||
|
"Выберите сложность: ", "1) Лёгкая - 500 фишек в начале", "2) Нормальная - 100 фишек в начале",
|
||||||
|
"3) Сложная - 10 фишек в начале", "4) Невозможная - 2 фишки в начале",
|
||||||
|
"Выбор некорректен!", "Игра началась!", "Делайте ставки:", "Укажите суммы ставок:", "Ставки не корректны. Пропуск.",
|
||||||
|
"Крутим колесо...", "Выпало: ", "У Вас {0} фишек.", "Продолжить игру? (Y/n):", "Неверный ввод, продолжаем игру.",
|
||||||
|
"У Вас закончились фишки, игра окончена.", "Нажмите любую клавишу, чтобы выйти в меню.",
|
||||||
|
"Рулетка / roulette", "Автор: Иван Бущик <ivan@bushchik.ru>", "Лицензия: MIT", "Сайт: ivabus.dev/roulette",
|
||||||
|
"Репозиторий: github.com/ivabus/roulette", "Версия: ", "Введите количество чисел для генерирования >>> ",
|
||||||
|
"Погрешность генератора случайных чисел ", "Игра Рулетка", "1) Начать игру",
|
||||||
|
"2) Ознакомиться с правилами", "3) О игре", "Дополнительно:", "4) Проверка генератора случайных чисел",
|
||||||
|
"0) Выйти из игры", "Ошибка!"},
|
||||||
|
{"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""}}
|
||||||
Dim ReadOnly Logo() As String = { _
|
Dim ReadOnly Logo() As String = { _
|
||||||
"#### ### # # # ##### ##### ##### #####",
|
"#### ### # # # ##### ##### ##### #####",
|
||||||
"# # # # # # # # # # # ",
|
"# # # # # # # # # # # ",
|
||||||
|
@ -38,7 +51,7 @@ Module Program
|
||||||
|
|
||||||
Sub DisplayHistory(history() As Integer) 'Эта функция не реализована в Game(), потому что это захламляло бы код
|
Sub DisplayHistory(history() As Integer) 'Эта функция не реализована в Game(), потому что это захламляло бы код
|
||||||
Console.ForegroundColor = ConsoleColor.DarkBlue
|
Console.ForegroundColor = ConsoleColor.DarkBlue
|
||||||
Console.Write("История выпадений (последние 15): ")
|
Console.Write(strings(LANG,0))
|
||||||
For i = If(Ubound(history) > 14, Ubound(history) - 14, 0) To UBound(history)
|
For i = If(Ubound(history) > 14, Ubound(history) - 14, 0) To UBound(history)
|
||||||
Console.ForegroundColor = Colors(Ring(1, getindex(RingRank0, history(i))))
|
Console.ForegroundColor = Colors(Ring(1, getindex(RingRank0, history(i))))
|
||||||
Console.Write(history(i) & " ")
|
Console.Write(history(i) & " ")
|
||||||
|
@ -77,7 +90,7 @@ Module Program
|
||||||
Console.WriteLine(StrDup(Console.WindowWidth - 1, "#"))
|
Console.WriteLine(StrDup(Console.WindowWidth - 1, "#"))
|
||||||
Sleep(0.04444)
|
Sleep(0.04444)
|
||||||
Next
|
Next
|
||||||
Const entr = " Нажмите любую кнопку, чтобы начать игру! "
|
Dim entr = strings(LANG,1)
|
||||||
Console.SetCursorPosition((Console.WindowWidth\2) - Len(entr)\2,
|
Console.SetCursorPosition((Console.WindowWidth\2) - Len(entr)\2,
|
||||||
Console.WindowHeight - (Console.WindowHeight()\2 - UBound(Logo) + 2)\4 - 3)
|
Console.WindowHeight - (Console.WindowHeight()\2 - UBound(Logo) + 2)\4 - 3)
|
||||||
Console.Write(StrDup(Len(entr) + 2, " "))
|
Console.Write(StrDup(Len(entr) + 2, " "))
|
||||||
|
@ -276,11 +289,11 @@ Module Program
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Sub Game()
|
Sub Game()
|
||||||
Console.WriteLine("Выберите сложность: ")
|
Console.WriteLine(strings(LANG, 2))
|
||||||
Console.WriteLine("1) Лёгкая - 500 фишек в начале")
|
Console.WriteLine(strings(LANG, 3))
|
||||||
Console.WriteLine("2) Нормальная - 100 фишек в начале")
|
Console.WriteLine(strings(LANG, 4))
|
||||||
Console.WriteLine("3) Сложная - 10 фишек в начале")
|
Console.WriteLine(strings(LANG, 5))
|
||||||
Console.WriteLine("4) Невозможная - 2 фишки в начале")
|
Console.WriteLine(strings(LANG, 6))
|
||||||
Console.Write(">>> ")
|
Console.Write(">>> ")
|
||||||
Dim choose As Integer = Console.ReadLine()
|
Dim choose As Integer = Console.ReadLine()
|
||||||
Dim fish As Long
|
Dim fish As Long
|
||||||
|
@ -294,9 +307,9 @@ Module Program
|
||||||
Case 4
|
Case 4
|
||||||
fish = 2
|
fish = 2
|
||||||
Case Else
|
Case Else
|
||||||
Console.WriteLine("Выбор некорректен!")
|
Console.WriteLine(strings(LANG, 7))
|
||||||
End Select
|
End Select
|
||||||
Console.WriteLine("Игра началась!")
|
Console.WriteLine(strings(LANG,8))
|
||||||
Dim history As New List(Of Integer)
|
Dim history As New List(Of Integer)
|
||||||
|
|
||||||
Do while fish > 0
|
Do while fish > 0
|
||||||
|
@ -305,17 +318,17 @@ Module Program
|
||||||
Console.Clear
|
Console.Clear
|
||||||
history.Add(generated(0))
|
history.Add(generated(0))
|
||||||
|
|
||||||
Console.WriteLine("Делайте ставки:")
|
Console.WriteLine(strings(LANG,9))
|
||||||
Console.Write(">>> ")
|
Console.Write(">>> ")
|
||||||
Dim stav
|
Dim stav
|
||||||
stav = UCase(Console.ReadLine()).Split.ToList()
|
stav = UCase(Console.ReadLine()).Split.ToList()
|
||||||
Console.WriteLine("Укажите суммы ставок:")
|
Console.WriteLine(strings(LANG,10))
|
||||||
Console.Write(">>> ")
|
Console.Write(">>> ")
|
||||||
Dim summ() As String
|
Dim summ() As String
|
||||||
summ = Console.ReadLine().Split
|
summ = Console.ReadLine().Split
|
||||||
For i = 0 To UBound(summ)
|
For i = 0 To UBound(summ)
|
||||||
If not IsNumeric(summ(i)) Then
|
If not IsNumeric(summ(i)) Then
|
||||||
Console.WriteLine("Ставки не корректны. Пропуск.")
|
Console.WriteLine(strings(LANG,11))
|
||||||
Continue Do
|
Continue Do
|
||||||
End If
|
End If
|
||||||
Next
|
Next
|
||||||
|
@ -324,17 +337,17 @@ Module Program
|
||||||
summs.add(Int(summ(i)))
|
summs.add(Int(summ(i)))
|
||||||
Next
|
Next
|
||||||
If stav.Count <> summs.Count Or summs.ToArray.Sum() > fish Then
|
If stav.Count <> summs.Count Or summs.ToArray.Sum() > fish Then
|
||||||
Console.WriteLine("Ставки не корректны. Пропуск.")
|
Console.WriteLine(strings(LANG, 11))
|
||||||
Continue Do
|
Continue Do
|
||||||
End If
|
End If
|
||||||
For i = 0 To summs.Count - 1
|
For i = 0 To summs.Count - 1
|
||||||
If summs(i) < 0 Then
|
If summs(i) < 0 Then
|
||||||
Console.WriteLine("Ставки не корректны. Пропуск.")
|
Console.WriteLine(strings(LANG, 11))
|
||||||
Continue Do
|
Continue Do
|
||||||
End If
|
End If
|
||||||
Next
|
Next
|
||||||
Console.WriteLine("Крутим колесо...")
|
Console.WriteLine(strings(LANG, 12))
|
||||||
Sleep(1)
|
Sleep(0.5)
|
||||||
Display(Int(generated(0)))
|
Display(Int(generated(0)))
|
||||||
Console.ForegroundColor = ConsoleColor.DarkBlue
|
Console.ForegroundColor = ConsoleColor.DarkBlue
|
||||||
Dim indedx As Integer
|
Dim indedx As Integer
|
||||||
|
@ -343,20 +356,14 @@ Module Program
|
||||||
indedx = stav.IndexOf(generated(i))
|
indedx = stav.IndexOf(generated(i))
|
||||||
If IsNumeric(generated(i))
|
If IsNumeric(generated(i))
|
||||||
fish += summ(indedx)*35
|
fish += summ(indedx)*35
|
||||||
'stav.RemoveAt(indedx)
|
|
||||||
'summs.RemoveAt(indedx)
|
|
||||||
Else If _
|
Else If _
|
||||||
generated(i) = "RED" Or generated(i) = "BLACK" Or generated(i) = "ODD" Or generated(i) = "EVEN" Or
|
generated(i) = "RED" Or generated(i) = "BLACK" Or generated(i) = "ODD" Or generated(i) = "EVEN" Or
|
||||||
generated(i) = "FROM18" Or generated(i) = "TO18" Then
|
generated(i) = "FROM18" Or generated(i) = "TO18" Then
|
||||||
fish += summ(indedx)*1
|
fish += summ(indedx)*1
|
||||||
'stav.RemoveAt(indedx)
|
|
||||||
'summs.RemoveAt(indedx)
|
|
||||||
Else If _
|
Else If _
|
||||||
generated(i) = "3L" Or generated(i) = "2L" Or generated(i) = "1L" Or generated(i) = "F12" Or generated(i) = "S12" Or
|
generated(i) = "3L" Or generated(i) = "2L" Or generated(i) = "1L" Or generated(i) = "F12" Or generated(i) = "S12" Or
|
||||||
generated(i) = "T12" Then
|
generated(i) = "T12" Then
|
||||||
fish += summ(indedx)*2
|
fish += summ(indedx)*2
|
||||||
'stav.RemoveAt(indedx)
|
|
||||||
'summs.RemoveAt(indedx)
|
|
||||||
End If
|
End If
|
||||||
stav.RemoveAt(indedx)
|
stav.RemoveAt(indedx)
|
||||||
summs.RemoveAt(indedx)
|
summs.RemoveAt(indedx)
|
||||||
|
@ -366,7 +373,7 @@ Module Program
|
||||||
fish -= summs(i)
|
fish -= summs(i)
|
||||||
Next
|
Next
|
||||||
Console.WriteLine()
|
Console.WriteLine()
|
||||||
Console.Write("Выпало: ")
|
Console.Write(strings(LANG,13))
|
||||||
For i = 0 To UBound(generated)
|
For i = 0 To UBound(generated)
|
||||||
Console.Write(generated(i) & " ")
|
Console.Write(generated(i) & " ")
|
||||||
Next
|
Next
|
||||||
|
@ -374,8 +381,8 @@ Module Program
|
||||||
DisplayHistory(history.ToArray())
|
DisplayHistory(history.ToArray())
|
||||||
Console.ForegroundColor = ConsoleColor.DarkBlue
|
Console.ForegroundColor = ConsoleColor.DarkBlue
|
||||||
Console.WriteLine()
|
Console.WriteLine()
|
||||||
Console.WriteLine("У Вас {0} фишек.", fish)
|
Console.WriteLine(strings(LANG, 14), fish)
|
||||||
Console.WriteLine("Продолжить игру? (Y/n):")
|
Console.WriteLine(strings(LANG, 15))
|
||||||
Console.Write(">>> ")
|
Console.Write(">>> ")
|
||||||
Dim temp As String = Console.ReadLine()
|
Dim temp As String = Console.ReadLine()
|
||||||
If temp = "n" or temp = "N" Then
|
If temp = "n" or temp = "N" Then
|
||||||
|
@ -383,31 +390,31 @@ Module Program
|
||||||
Else IF temp = "" or temp = "y" or temp = "Y"
|
Else IF temp = "" or temp = "y" or temp = "Y"
|
||||||
Console.Write("")
|
Console.Write("")
|
||||||
Else
|
Else
|
||||||
Console.WriteLine("Неверный ввод, продолжаем игру.")
|
Console.WriteLine(strings(LANG, 16))
|
||||||
End If
|
End If
|
||||||
Loop
|
Loop
|
||||||
Console.WriteLine("У Вас закончились фишки, игра окончена.")
|
Console.WriteLine(strings(LANG, 17))
|
||||||
Console.WriteLine("Нажмите любую клавишу, чтобы выйти в меню.")
|
Console.WriteLine(strings(LANG, 18))
|
||||||
Console.ReadKey()
|
Console.ReadKey()
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Sub About()
|
Sub About()
|
||||||
Console.Clear()
|
Console.Clear()
|
||||||
Console.WriteLine("Рулетка / roulette")
|
Console.WriteLine(strings(LANG, 19))
|
||||||
Console.WriteLine("Автор: Иван Бущик <ivan@bushchik.ru>")
|
Console.WriteLine(strings(LANG, 20))
|
||||||
Console.WriteLine("Лицензия: MIT")
|
Console.WriteLine(strings(LANG, 21))
|
||||||
Console.WriteLine("Сайт: bushchikivan.github.io/roulette")
|
Console.WriteLine(strings(LANG, 22))
|
||||||
Console.WriteLine("Репозиторий: github.com/BushchikIvan/roulette")
|
Console.WriteLine(strings(LANG, 23))
|
||||||
Console.WriteLine("Версия: " + ReleaseTag)
|
Console.WriteLine(strings(LANG, 24) + ReleaseTag)
|
||||||
Console.WriteLine("Нажмите любую клавишу чтобы продолжить.")
|
Console.WriteLine(strings(LANG, 18))
|
||||||
Console.ReadKey()
|
Console.ReadKey()
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Sub TestGenerator()
|
Sub TestGenerator()
|
||||||
Randomize()
|
Randomize()
|
||||||
Dim count As Integer
|
Dim count As Long
|
||||||
Dim rnd As New Random
|
Dim rnd As New Random
|
||||||
Console.Write("Введите количество чисел для генерирования >>> ")
|
Console.Write(strings(LANG, 25))
|
||||||
Count = Console.ReadLine()
|
Count = Console.ReadLine()
|
||||||
Dim mass(count) As Double
|
Dim mass(count) As Double
|
||||||
For i = 0 to Ubound(mass)
|
For i = 0 to Ubound(mass)
|
||||||
|
@ -416,7 +423,7 @@ Module Program
|
||||||
Dim pogr As Double = 0
|
Dim pogr As Double = 0
|
||||||
Dim sr As Double = mass.Sum() / Count
|
Dim sr As Double = mass.Sum() / Count
|
||||||
pogr = Math.abs((sr - 0.5) / 0.5) * 100
|
pogr = Math.abs((sr - 0.5) / 0.5) * 100
|
||||||
Console.WriteLine("Погрешность генератора случайных чисел " + pogr.ToString("0.#####") + "%")
|
Console.WriteLine(strings(LANG,26) + pogr.ToString("0.#####") + "%")
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Sub Main()
|
Sub Main()
|
||||||
|
@ -425,14 +432,27 @@ Module Program
|
||||||
Console.ForegroundColor = ConsoleColor.DarkBlue
|
Console.ForegroundColor = ConsoleColor.DarkBlue
|
||||||
Randomize()
|
Randomize()
|
||||||
Console.Clear()
|
Console.Clear()
|
||||||
|
If LANG = -1 Then
|
||||||
|
Console.WriteLine("Choose language / Выберете язык:")
|
||||||
|
Console.WriteLine("1) Russian / Русский")
|
||||||
|
Console.WriteLine("2) English / Английский")
|
||||||
|
Console.Write(">>> ")
|
||||||
|
LANG = Console.ReadLine() - 1
|
||||||
|
if LANG < 0 or LANG > 1 Then
|
||||||
|
Console.WriteLine("Incorrect choose")
|
||||||
|
Exit Sub
|
||||||
|
End If
|
||||||
|
Console.Clear()
|
||||||
|
End If
|
||||||
|
|
||||||
Intro()
|
Intro()
|
||||||
Console.WriteLine("Игра Рулетка")
|
Console.WriteLine(strings(LANG, 27))
|
||||||
Console.WriteLine("1) Начать игру")
|
Console.WriteLine(strings(LANG, 28))
|
||||||
Console.WriteLine("2) Ознакомиться с правилами")
|
Console.WriteLine(strings(LANG, 29))
|
||||||
Console.WriteLine("3) О игре")
|
Console.WriteLine(strings(LANG, 30))
|
||||||
Console.WriteLine("Дополнительно:")
|
Console.WriteLine(strings(LANG, 31))
|
||||||
Console.WriteLine("4) Проверка генератора случайных чисел")
|
Console.WriteLine(strings(LANG, 32))
|
||||||
Console.WriteLine("0) Выйти из игры")
|
Console.WriteLine(strings(LANG, 33))
|
||||||
Console.Write(">>> ")
|
Console.Write(">>> ")
|
||||||
Dim input As Integer = Console.ReadLine
|
Dim input As Integer = Console.ReadLine
|
||||||
Select Case input
|
Select Case input
|
||||||
|
@ -454,8 +474,8 @@ Module Program
|
||||||
Exit Sub
|
Exit Sub
|
||||||
End Select
|
End Select
|
||||||
Catch
|
Catch
|
||||||
Console.WriteLine("Ошибка!")
|
Console.WriteLine(strings(LANG, 34))
|
||||||
Exit Sub
|
Exit Sub
|
||||||
End Try
|
End Try
|
||||||
End Sub
|
End Sub
|
||||||
End Module
|
End Module
|
Loading…
Reference in a new issue