Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 13.12.2021
Сообщений: 14
1

Беды с кодом игры Баше

20.01.2022, 22:52. Показов 1430. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
Module Module1
    Sub Main()
        Dim z As String = "###############################################################################################################################################################################################
            И        И   ГГГГГГГ     РРРРРРР         А              БББББББ         А        Ш   Ш   Ш   ЕЕЕЕЕЕ
            И       ИИ   Г           Р     Р       А   А            Б             А    А     Ш   Ш   Ш   Е
            И    И   И   Г           РРРРР        ААААААА           БББББББ      АААААААА    Ш   Ш   Ш   ЕЕЕЕЕЕ   
            И И      И   Г           Р           А       А          Б     Б      А      А    Ш   Ш   Ш   Е
            И        И   Г           Р          А         А         БББББББ      А      А    ШШШШШШШШШ   ЕЕЕЕЕЕ  
#################################################################################################################################################################################"
 
        Console.WindowWidth = 110
        Console.WindowHeight = 31
        Console.BackgroundColor = ConsoleColor.Magenta
        Console.ForegroundColor = ConsoleColor.White
        Dim t As Integer
        Dim o As String =
    "                                     1    -      Играть !                                                             
                                          2    -      Правила!                                                                                                                                                                                                                                                                                                  
                                          3    -      Выход  !                                                             "
        Dim rr As String =
            "Баше — математическая игра, в которой два игрока из кучки, содержащей первоначально N предметов, по очереди берут не менее одного и не более М предметов. Проигравшим считается тот, кому нечего брать. Классическая игра подразумевает N=15 и взятие не менее 1 и не более 3 предметов за один раз. Оптимальная стратегия для первого игрока в этом случае заключается во взятии 3 предметов первым ходом и дополнении ходов противника до 4 в последующих ходах. В обобщённой игре Баше — можно брать от 1 до M предметов — оптимальную стратегию можно выразить так: Бери столько предметов, чтобы после твоего хода количество предметов было кратно (M+1). Можно также рассмотреть мизерный вариант игры Баше: проигравшим считается тот, кто возьмет последний предмет"
 
        Dim zz() As Char = z.ToCharArray
        Dim yy() As Char = o.ToCharArray
        Dim ww() As Char = rr.ToCharArray
        Dim rd As New Random
        Dim x As Integer
        Dim aa As Integer
 
        For i = 0 To zz.Length - 1
            Console.Write(zz(i))
            x = 1
            Threading.Thread.Sleep(1)
        Next
        Console.ReadKey()
 
        Console.WriteLine(" нажмите 1 чтобы продолжить")
        t = Console.ReadLine
        If t <> 1 Then
            Console.WriteLine(" нажмите 1 чтобы продолжить")
        Else
            Console.WriteLine(" ок")
            Console.Clear()
            Console.WriteLine(o)
                Threading.Thread.Sleep(1)
            aa = Console.ReadLine
            If aa = 2 Then
                For i = 0 To ww.Length
                    Console.WriteLine(ww(i))
                    x = 1
                    Threading.Thread.Sleep(1)
                Next
            ElseIf aa = 1 Then
                Console.WriteLine(" Играем")
 
            ElseIf aa = 3 Then
                Console.WriteLine(" Нажми Enter для выхода")
            Else
                Console.WriteLine(" выбери цифру")
            End If
 
        End If
 
        Console.ReadKey()
    End Sub
End Module
помогите пж с кодом, есть беды с ним
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.01.2022, 22:52
Ответы с готовыми решениями:

беды с кодом
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;math.h&gt; #include &lt;conio.h&gt; #include &lt;vector&gt;...

Беды с кодом
Добрый день. Начну с того,что мне задали в качестве лабораторной сделать программу, которая...

ИИ для игры Баше
Кто-нибудь знает как написать ИИ для игры Баше? Какая должна быть формула для каждого хода...

Проблемы с кодом игры Шашки
Всем привет! у меня проблема, есть готовая игра шашки, все вроде правильно,но не шашки не могуть...

Игры с открытым исходным кодом
Привет всем! Подскажите игры с открытым исходным кодом, сделанные в unity. Я думаю изучить код и...

11
2615 / 2542 / 527
Регистрация: 17.02.2019
Сообщений: 4,252
21.01.2022, 05:40 2
vloggerr, а что за беды?
0
0 / 0 / 0
Регистрация: 13.12.2021
Сообщений: 14
21.01.2022, 14:15  [ТС] 3
во-первых не все поле закрашивается фиолетовым
во-вторых после заставки переменная с описанием нажмите на кнопку 1 должна появляться внизу а не в самой заставке
в-третьих, если выбрать правила, то описание будет идти вертикально, а не горизонтально

такие беды
0
4407 / 3531 / 843
Регистрация: 02.02.2013
Сообщений: 3,417
Записей в блоге: 2
21.01.2022, 15:35 4
Лучший ответ Сообщение было отмечено vloggerr как решение

Решение

vloggerr, с вашими бедами разбираться не стал, предлагаю вариант
Кликните здесь для просмотра всего текста
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
Sub Main()
    Console.WindowWidth = 110
    Console.WindowHeight = 31
    Console.BackgroundColor = ConsoleColor.DarkGreen
    Console.ForegroundColor = ConsoleColor.Yellow
    Console.Clear()
    Console.WriteLine("Игра Баше с компьютером")
    Console.ForegroundColor = ConsoleColor.White
    Dim rn As New Random
    Dim allItems As Integer = rn.Next(10, 21)
    Console.WriteLine("Всего предметов " & allItems.ToString)
    Console.WriteLine("Число предметов для взятия 1, 2, 3.")
    Console.WriteLine("Проигрывает игрок забирающий последний предмет")
    Console.WriteLine("Первый ход у пользователя")
    Console.WriteLine()
    Dim takenItems As Integer
    Dim movesMade As Integer
    Do While allItems > 1
        takenItems = Val(InputBox("Какое количество предметов Вы забираете?", "Ваш ход!"))
        If takenItems < 1 OrElse takenItems > 3 Then Continue Do
        movesMade += 1
        allItems -= takenItems
        Console.WriteLine("Ход " & movesMade)
        Console.WriteLine("После Вашего хода осталось предметов " & allItems)
        If allItems = 1 Then
            Console.WriteLine("Компьютер проиграл!")
            Exit Do
        End If
        For ii = 0 To 6
            Select Case allItems
                Case 4 * ii
                    allItems -= 3
                    Console.WriteLine("После хода компьютера осталось предметов " & allItems)
                Case 4 * ii + 1
                    allItems -= rn.Next(1, 4)
                    Console.WriteLine("После хода компьютера осталось предметов " & allItems)
                Case 4 * ii + 2
                    allItems -= 1
                    Console.WriteLine("После хода компьютера осталось предметов " & allItems)
                Case 4 * ii + 3
                    allItems -= 2
                    Console.WriteLine("После хода компьютера осталось предметов " & allItems)
            End Select
        Next ii
        If allItems = 1 Then
            Console.WriteLine("Вы проиграли!")
            Exit Do
        End If
    Loop
    Console.ReadLine()
End Sub
Миниатюры
Беды с кодом игры Баше  
1
0 / 0 / 0
Регистрация: 13.12.2021
Сообщений: 14
21.01.2022, 17:33  [ТС] 5
спасибо! как можно сделать программу так, чтобы ход исполнял НЕ КОМПЬЮТЕР, а другой игрок?
0
4407 / 3531 / 843
Регистрация: 02.02.2013
Сообщений: 3,417
Записей в блоге: 2
21.01.2022, 18:04 6
Цитата Сообщение от vloggerr Посмотреть сообщение
как можно сделать программу так, чтобы ход исполнял НЕ КОМПЬЮТЕР, а другой игрок?
Мне кажется, что это вполне подойдет для самостоятельной работы.
1
2615 / 2542 / 527
Регистрация: 17.02.2019
Сообщений: 4,252
21.01.2022, 18:10 7
оШиБоК полно
Цитата Сообщение от vloggerr Посмотреть сообщение
во-первых не все поле закрашивается фиолетовым
Нуно вот так наверно между 14 и 15 строках
VB.NET
1
Console.Clear()
Цитата Сообщение от vloggerr Посмотреть сообщение
во-вторых
поставьте в конце переменной Dim z As String = "ваш текст" & vbCrLf
Ну и кавычки (") и для связки слов (&) пропустили во многих местах строки.
Цитата Сообщение от vloggerr Посмотреть сообщение
в-третьих
Замените в 49 строке WriteLine на Write
VB.NET
1
Console.Write(ww(i)) ' Console.WriteLine(ww(i))
Ну далее наверно разберетесь по делу.

Добавлено через 35 секунд
Упс уже не актуально
2
0 / 0 / 0
Регистрация: 13.12.2021
Сообщений: 14
21.01.2022, 18:25  [ТС] 8
все равно спасибо !
0
0 / 0 / 0
Регистрация: 13.12.2021
Сообщений: 14
27.01.2022, 16:38  [ТС] 9
хорошо другой вопрос
как можно сделать так, чтобы числа генерировались компьютером?
0
Лень — мое второе и
3206 / 2397 / 684
Регистрация: 28.11.2014
Сообщений: 3,587
Записей в блоге: 3
27.01.2022, 16:57 10
vloggerr, Как получить случайное число из диапазона?
1
2615 / 2542 / 527
Регистрация: 17.02.2019
Сообщений: 4,252
27.01.2022, 22:07 11
Код взят из ссылки что дал Orlangur
VB.NET
1
2
3
Dim rnd As New Random()
Dim rnd1 As Integer = rnd.Next(5)'0 - 4
Dim rnd2 As Integer = rnd.Next(1,5)'1 - 4
Добавлю

Next(Int32)Перегрузка возвращает случайные целые числа в диапазоне от 0 до maxValue -1. Однако если maxValue значение равно 0, метод возвращает 0.

Next(Int32, Int32)Перегрузка возвращает случайные целые числа в диапазоне от minValue до maxValue -1. Однако, если maxValue равно minValue , метод возвращает значение minValue .
1
0 / 0 / 0
Регистрация: 13.12.2021
Сообщений: 14
28.01.2022, 01:20  [ТС] 12
спасибо

я вас опять замучаю, но последний вопрос:
как сделать так, чтобы в конце был счет?
0
28.01.2022, 01:20
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.01.2022, 01:20
Помогаю со студенческими работами здесь

Портирование движка игры с открытым исходным кодом
Итак, есть игровой движок на OpenGL, есть его полные исходники. Задача: сделать его порт на...

Баше
Привет всем. Если вы читаете это сообщение значит вы находитесь на мини-форуме по разработке игры...

Квадрат Баше
Квадрат Баше. Требуется расположить 16 валетов, дам, королей и тузов в виде квадрата так, чтобы ни...

Беды с else в массиве
Ругается. Говорит: Program1.pas(13) : Встречено 'else', а ожидалось ';' Задача была такая: ...

Игра Баше
6. На столе лежит куча из N одинаковых предметов. Двое играющих по очереди берут себе любое...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru