Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 22.11.2023
Сообщений: 16

Последовательность нажатий

09.04.2024, 18:10. Показов 1609. Ответов 30
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть код вот такой небольшой игры. Суть игры заключается в том, что у нас на экране появляются случайные буквы и мы должны их нажимать как можно быстрее, если букв в ListBox станет больше чем 7, тогда мы проиграем. Этакий тренажер быстрой печати.

Нужно сделать так: На экране все так же друг за другом появляются случайные буквы буквы, например вот так: F G H C N. Но что бы победить, нам нужно нажать клавиши в определенной последовательности, а именно третья буква - вторая - первая(то есть H G F). Я честно без понятия как это реализовать и нейросети тоже чет не вывозят.
C#
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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
Random random = new Random();
    Stats stats = new Stats();
    public Form1()
    {
        InitializeComponent();
    }
 
    private void timer1_Tick(object sender, EventArgs e)
    {
        listBox1.Items.Add((Keys)random.Next(65, 90));
        if (listBox1.Items.Count > 7)
        {
            listBox1.Items.Clear();
            listBox1.Items.Add("Игра окончена!");
            timer1.Stop();
 
            
        }
 
        
 
    }
    class Stats
    {
        public int Total = 0;
        public int Missed = 0;
        public int Correct = 0;
        public int Accuracy = 0;
 
        public void Update(bool correctKey)
        {
            Total++;
            if (!correctKey)
            {
                Missed++;
            }
            else
            {
                Correct++;
            }
            Accuracy = 100 * Correct / (Missed + Correct);
 
 
           
        }
 
    }
 
   
    private void listBox1_KeyDown(object sender, KeyEventArgs e)
    {
        if (listBox1.Items.Contains(e.KeyCode)) 
        {
            listBox1.Items.Remove(e.KeyCode);
            listBox1.Refresh();
            if (timer1.Interval > 400)
                timer1.Interval -= 10;
            if (timer1.Interval > 250)
                timer1.Interval -= 7;
            if (timer1.Interval > 100)
                timer1.Interval -= 2;
            dificultyProgressBar.Value = 800 - timer1.Interval;
 
            stats.Update(true);
        }
        else
        {
            stats.Update(false);
        }
 
        if (stats.Correct > 6)
        {
            listBox1.Items.Clear();
            listBox1.Items.Add("Игра выиграна!");
            timer1.Stop();
        }
 
        correctLabel.Text = "Correct: " + stats.Correct;
        missedLabel.Text = "Missed: " + stats.Missed;
        totatlLabel.Text = "Total: " + stats.Total;
        accuracyLabel.Text = "Accuracy: " + stats.Accuracy + "%";
    }
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.04.2024, 18:10
Ответы с готовыми решениями:

Как получить последовательность нажатий кнопок?
Собственно сабж...

Синхронизация нажатий в listbox
Здравствуйте. Как синхнорищзировать два или несколько listbox-ов. Например: я в первом листбоксе выбираю третью строку, а во втором...

Счётчик нажатий на кнопку
Вообщем по идеи должен считать нажатия и выводить их в label1, считает в итоге только 1 нажатие, последующие не видит. private:...

30
 Аватар для Козадоев
165 / 155 / 33
Регистрация: 05.03.2013
Сообщений: 879
10.04.2024, 08:07
Если последовательность известна - то ожидай нажатия нужной, остальные игнорируй.
0
0 / 0 / 0
Регистрация: 22.11.2023
Сообщений: 16
10.04.2024, 09:31  [ТС]
Последовательность как раз таки неизвестна. Клавиши постоянно разные.
0
 Аватар для Козадоев
165 / 155 / 33
Регистрация: 05.03.2013
Сообщений: 879
10.04.2024, 09:39
Цитата Сообщение от krivoGlaz_ Посмотреть сообщение
Последовательность как раз таки неизвестна. Клавиши постоянно разные.
А это что?
Цитата Сообщение от krivoGlaz_ Посмотреть сообщение
нам нужно нажать клавиши в определенной последовательности, а именно третья буква - вторая - первая(то есть H G F).
Вот и жди когда нажмет F, потом жди G и так далее...
0
0 / 0 / 0
Регистрация: 22.11.2023
Сообщений: 16
10.04.2024, 09:41  [ТС]
Это просто приведено как пример. При каждом запуске программы будут разные клавиши. Если бы все было так просто, я бы и не задавал вопроса.
0
 Аватар для Козадоев
165 / 155 / 33
Регистрация: 05.03.2013
Сообщений: 879
10.04.2024, 09:45
Цитата Сообщение от krivoGlaz_ Посмотреть сообщение
При каждом запуске программы будут разные клавиши.
Цитата Сообщение от krivoGlaz_ Посмотреть сообщение
Суть игры заключается в том, что у нас на экране появляются случайные буквы и мы должны их нажимать как можно быстрее
Так программа же выдает буквы. Значит ей известна последовательность.
Цитата Сообщение от krivoGlaz_ Посмотреть сообщение
Если бы все было так просто, я бы и не задавал вопроса.
Это слишком просто, вы первый раз пишите программу?
0
0 / 0 / 0
Регистрация: 22.11.2023
Сообщений: 16
10.04.2024, 09:47  [ТС]
Да, первый
0
 Аватар для Козадоев
165 / 155 / 33
Регистрация: 05.03.2013
Сообщений: 879
10.04.2024, 09:49
Цитата Сообщение от krivoGlaz_ Посмотреть сообщение
Да, первый
Так бы сразу и сказал ). В общем программа должна запомнить, что вывела на экран, в переменной и ждать нажатия пользователя и сравнивать с переменной.
1
10.04.2024, 09:53

Не по теме:

Цитата Сообщение от krivoGlaz_ Посмотреть сообщение
Да, первый
начинать с таких примеров -- не самый оптимальный путь.

0
0 / 0 / 0
Регистрация: 22.11.2023
Сообщений: 16
10.04.2024, 10:06  [ТС]
А можно прямо кодом ответ и куда его вставлять.

Добавлено через 7 минут
Цитата Сообщение от Wolfdp Посмотреть сообщение
начинать с таких примеров -- не самый оптимальный путь.

Не по теме:

Понимаю. Я бы не сказал, что прямо первая программа, но и не сказать, что я сильно смыслю в этом, но обстоятельства вынуждают заниматься данной задачей. Поэтому обращаюсь к людям смыслящих в этом сильно больше меня.

0
 Аватар для Козадоев
165 / 155 / 33
Регистрация: 05.03.2013
Сообщений: 879
10.04.2024, 10:06
Цитата Сообщение от krivoGlaz_ Посмотреть сообщение
А можно прямо кодом ответ и куда его вставлять.
Нет ))). Так не интересно. Советы бесплатно давать интересно, самому делать забесплатно работу чью- то нет. Если не надо учится, только сдать - поищи ресурсы где за плату делают. Эту программу можно конечно за 10 мин написать, но вот кто захочет заморачиваться за 100р? Никто.
0
2285 / 1601 / 400
Регистрация: 26.06.2017
Сообщений: 4,743
Записей в блоге: 1
10.04.2024, 10:08
Цитата Сообщение от krivoGlaz_ Посмотреть сообщение
вот так: F G H C N. Но что бы победить, нам нужно нажать клавиши в определенной последовательности, а именно третья буква - вторая - первая(то есть H G F)
Хм, а почему не N C H G F? Почему с третьей буквы?
0
0 / 0 / 0
Регистрация: 22.11.2023
Сообщений: 16
10.04.2024, 10:11  [ТС]
Цитата Сообщение от Uswer Посмотреть сообщение
Хм, а почему не N C H G F? Почему с третьей буквы?
Так мне задача поставлена, что именно с третьей.
0
2285 / 1601 / 400
Регистрация: 26.06.2017
Сообщений: 4,743
Записей в блоге: 1
10.04.2024, 10:16
Цитата Сообщение от krivoGlaz_ Посмотреть сообщение
именно с третьей
Очень странное утверждение. Уточните задание, т.к. видимо вы его не до конца уловили или некорректно сформулировали.

Добавлено через 1 минуту
Если принять, что буквы должны вводится только когда их будет 3 и более, то это условие надо добавлять в обработчик нажатий.
0
0 / 0 / 0
Регистрация: 22.11.2023
Сообщений: 16
10.04.2024, 10:17  [ТС]
Цитата Сообщение от Uswer Посмотреть сообщение
Очень странное утверждение. Уточните задание, т.к. видимо вы его не до конца уловили или некорректно сформулировали.
Я предельно точно передал слова своего препода, а вот то что он конченный, это уже не мои проблемы. Я уже несколько раз уточнял задание, но ответ не изменялся. Надо именно с третьей буквы
0
2285 / 1601 / 400
Регистрация: 26.06.2017
Сообщений: 4,743
Записей в блоге: 1
10.04.2024, 10:21
Нажатия и их обработка должны начинать только когда букв более 3-х? Если нет, то как засчитывается победа?
0
0 / 0 / 0
Регистрация: 22.11.2023
Сообщений: 16
10.04.2024, 10:23  [ТС]
Цитата Сообщение от Uswer Посмотреть сообщение
Нажатия и их обработка должны начинать только когда букв более 3-х? Если нет, то как засчитывается победа?
Да когда букв более трех.
0
2285 / 1601 / 400
Регистрация: 26.06.2017
Сообщений: 4,743
Записей в блоге: 1
10.04.2024, 10:25
Цитата Сообщение от krivoGlaz_ Посмотреть сообщение
Я честно без понятия как это реализовать и нейросети тоже чет не вывозят.
Во мода пошла - учатся не студенты, а нейросети Так действительно скоро человечество роботы истребят .
0
0 / 0 / 0
Регистрация: 22.11.2023
Сообщений: 16
10.04.2024, 10:27  [ТС]
Цитата Сообщение от Uswer Посмотреть сообщение
Во мода пошла - учатся не студенты, а нейросети Так действительно скоро человечество роботы истребят .

Не по теме:

Щито поделать, какие преподы такие и студенты. Побывали бы вы на наших парах, заплакали бы. Приходиться как-то выкручиваться

0
2285 / 1601 / 400
Регистрация: 26.06.2017
Сообщений: 4,743
Записей в блоге: 1
10.04.2024, 10:31
Цитата Сообщение от krivoGlaz_ Посмотреть сообщение
Да когда букв более трех.
Тогда добавь вначале listBox1_KeyDown эти строки
C#
1
2
if (listBox1.Items.Count < 3)
  return;
Добавлено через 1 минуту
Цитата Сообщение от krivoGlaz_ Посмотреть сообщение
какие преподы такие и студенты
Неа, преподы студенту всегда кажутся неадекватами, но у них (преподов) свои мотивы быть такими и это видно на дистанции времени.
Цитата Сообщение от krivoGlaz_ Посмотреть сообщение
Побывали бы вы на наших парах
Я своё оттрубил.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.04.2024, 10:31
Помогаю со студенческими работами здесь

Перехват нажатий клавиатуры
Добрый день. После добавления на форму элемента axShockwaveFlash5, перестал работать выход из программы Выход реализован нажатием...

Создать кнопку с подсчетом нажатий
Создать кнопку. Количество нажатий специально созданной кнопки должно отображаться в специально созданной метке.

Имитация нажатий клавиш в игре
Как имитировать нажатие клавиши &quot;Spacebar&quot; в игре? (Зажать/отпустить) В SendKeys`e нету пробела, а user32.dll игра не видит

Подсчитать количество нажатий клавиш
Привет, уважаемые форумчане. Учусь на специальности &quot;Программная инженерия&quot;. Нужна ваша помощь с лабораторной работой. Возможно не совсем...

Обработка нажатий клавиш в консоли
C# Консольное выполнение клавиши А можно сделать консольное выполнение клавиши static void Main(string...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru