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

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

09.04.2024, 18:10. Показов 1787. Ответов 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
0 / 0 / 0
Регистрация: 22.11.2023
Сообщений: 16
10.04.2024, 10:43  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Uswer Посмотреть сообщение
Неа, преподы студенту всегда кажутся неадекватами, но у них (преподов) свои мотивы быть такими и это видно на дистанции времени.

Не по теме:

Ну смотри, мы приходим на пару, нам просто в лицо кидают методичку, которая взята с инета, или вот в данном случаем учебник Стиллмена по C#, ты делаешь из него задание, потом этот препод подходит дает тебе дополнительное задание,
и вот с ним мучайся как хочешь, если хочешь спросить что то у препода, он говорит: иди гугли, и сидит всю пару залипает в телефон, то есть как преподаватель он не исполняет свои обязанности от слова совсем

0
10.04.2024, 10:54

Не по теме:

krivoGlaz_, ну что сказать - плохо, если это действительно так. Но учеба это ±90% самообразование, а оставшиеся 10% информация от препода.

0
0 / 0 / 0
Регистрация: 22.11.2023
Сообщений: 16
10.04.2024, 11:00  [ТС]
Цитата Сообщение от Uswer Посмотреть сообщение
ну что сказать - плохо, если это действительно так. Но учеба это ±90% самообразование, а оставшиеся 10% информация от препода.

Не по теме:

Были бы эти десять процентов

0
2298 / 1614 / 400
Регистрация: 26.06.2017
Сообщений: 4,780
Записей в блоге: 1
10.04.2024, 11:51
По задаче: смотри - в листбокс по таймеру прилетают буквы, но удаляешь ты их не в порядке обратном их добавлению. Подсказываю - нужно заменить метод Remove на другой. А ещё лучше вообще уйти от листбокса и работать с коллекцией букв.
0
2810 / 1679 / 885
Регистрация: 14.04.2015
Сообщений: 5,723
10.04.2024, 15:33
krivoGlaz_, предлагаю такой вариант задачи
Вложения
Тип файла: 7z WindowsFormsApp248.7z (175.0 Кб, 10 просмотров)
1
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3463 / 2784 / 575
Регистрация: 04.09.2018
Сообщений: 8,757
Записей в блоге: 3
10.04.2024, 16:01
AndreyVorobey,
есть недоработка: после первого теста, если приложение не перезапускать, то второй тест не активирует ввод букв...
0
Эксперт .NET
 Аватар для Wolfdp
3790 / 1767 / 371
Регистрация: 15.06.2012
Сообщений: 6,543
Записей в блоге: 3
10.04.2024, 16:07

Не по теме:

AndreyVorobey, итить, всю идею испортили.... >.<


Лад, раз уж набрал, то скину ещё один вариант, хотя разбирать его ТС навряд будет.
Вложения
Тип файла: zip KeyboardGame.zip (143.1 Кб, 8 просмотров)
2
2810 / 1679 / 885
Регистрация: 14.04.2015
Сообщений: 5,723
10.04.2024, 16:13
wizard41, забыл убрать строку
C#
1
textBox1.Enabled = false;
без нее будет норм

Добавлено через 4 минуты
Wolfdp, оч сложно думаю, для такого уровня)
0
10.04.2024, 16:23

Не по теме:

Цитата Сообщение от AndreyVorobey Посмотреть сообщение
оч сложно думаю, для такого уровня)
Зависит от изначальной базы. Нам WPF очень качественно подавали, хоть и очень мало. После него очень быстро понял что не единым визуальным конструктором всё это можно делать.

0
0 / 0 / 0
Регистрация: 22.11.2023
Сообщений: 16
10.04.2024, 18:33  [ТС]
AndreyVorobey, Wolfdp, Спасибо за ваши ответы и старания, особенно за твой:3 Wolfdp, но к сожалению они мне не подходят
0
2810 / 1679 / 885
Регистрация: 14.04.2015
Сообщений: 5,723
11.04.2024, 09:17
krivoGlaz_, чем же?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.04.2024, 09:17

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
31
Ответ Создать тему
Новые блоги и статьи
Nekobox - outbounds[0].transport: unknown transport type: raw
damix 01.10.2026
Фикс ошибки Правым кликом по серверу -> отладочная информация -> edit Заменить "net": "raw", на "net": "tcp", Нажать кнопку reload.
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru