Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
10 / 1 / 0
Регистрация: 06.10.2009
Сообщений: 73
1

Написать игру, где показывается клавиша и ее нужно успеть нажать

04.10.2011, 21:48. Показов 1530. Ответов 3
Метки нет (Все метки)

НЕобходимо написать мини игру, в которой случайно выводится изображение клавиши и необходимо как можно быстрее нажать эту кнопку на клавиатуре.
так же программа измеряет время, и вносит результат в таблицу/
Может кто сталкивался с таким, есть какие-то разработки.. А то даже не знаю с чего начать..
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.10.2011, 21:48
Ответы с готовыми решениями:

Написать игру где нужно скрыть метки нажимая кнопки
Разработайте игру, которая заключается в следующем. На форме размещены четыре кнопки (Button) и...

Посоветуйте мультиплеерную игру, где нужно управлять отрядом
сюжет, кампания меня не интересуют, главное геймплей и PvP. Под управление в мультиплеере должен...

Нужно написать игру
Нужно написать мааалленнькую игру , буквально 3 функции , алгоритм я знаю , в основном игра с...

Bозможно ли сделать так, прежде чем нажать Button1, нужно нажать Button2?
Bозможно ли сделать так, прежде чем нажать Button1, нужно нажать Button2 ?

3
1448 / 356 / 61
Регистрация: 03.04.2010
Сообщений: 2,098
05.10.2011, 14:07 2
6elka, Ну, я думаю не стоит начинать пока хотя бы одну книгу по C# в страниц 1000 не прочитать, а там все ответы сами придут. А если хочешь проект сейчас, то за $ тебе сделают тут Фриланс.
 Комментарий модератора 
Не нужно отправлять пользователей во фриланс.
0
179 / 175 / 14
Регистрация: 17.01.2011
Сообщений: 349
06.10.2011, 14:51 3
Цитата Сообщение от 6elka Посмотреть сообщение
А то даже не знаю с чего начать..
Давайте попробуем вам помочь понять, с чего начать
Разберемся с задачей. Нам требуется:
1) Чтобы приложение видело нажатую кнопку.
2) Считало, сколько времени прошло после появления изображения кнопки и нажатием.
3) Вносило результаты в таблицу.
Описание простейшей реализации:
1) Нажатие на форме отлавливается событием KeyPress, которое передает в параметр e.KeyChar нажатый символ.
2) Тут есть два способа - таймер или вычитание разницы во времени.
3) В простейшем варианте - DataGridView с заносимыми в него напрямую строками.
Второй и третий пункт по сути - единое целое и является выполнением функции логирования.
Плюс с этому требуется функция, которая будет выдавать тот самый случайный символ. Тут нам поможет класс Random.

Начнем с самого простого, кинем на форму требуемые нам элементы и правильно их назовем.
Нам потребуется:
1) Label, назовем его letter - будет отображать букву, которую требуется нажать.
2) DataGridView, назовем её score - таблица результатов. Не забываем сделать её ReadOnly.

Теперь добавим две колонки в таблицу:
1) Буква (let)
2) Время (time)

Все это более-менее достойно оформляем, у меня получилось так:
Название: 3b505f890cd9a60ca6124db3b46baeda.PNG
Просмотров: 81

Размер: 6.4 Кб

Вот такой черновой код программы:
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
public partial class Form1 : Form
    {
        //Список символов
        List<char> letters = new List<char>();
        //Новый генератор случаных чисел
        Random rand = new Random();
        //Получаем текущее время как точку отсчета
        DateTime lastTime = DateTime.Now;
 
        public Form1()
        {
            InitializeComponent();
 
            //Добавляем значения в наш список
            letters.Add('й');
            letters.Add('ц');
            letters.Add('у');
            letters.Add('к');
            letters.Add('е');
            letters.Add('н');
            letters.Add('г');
 
            //Показываем первый символ
            showNextLetter();
        }
 
        //Показываем следующий символ
        private void showNextLetter()
        {
            letter.Text = letters[getNext()].ToString();
        }
 
        //Получаем следующий случайный индекс
        private int getNext()
        {
            return rand.Next(0, letters.Count - 1);
        }
 
        //Добавляем сообщение в таблицу
        private void addLogMsg(char ch, DateTime dt)
        {
            TimeSpan ts = dt - lastTime;
            score.Rows.Add(ch.ToString(), ts.TotalSeconds.ToString());
        }
 
        private void score_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar.ToString() == letter.Text)
            {
                addLogMsg(e.KeyChar, DateTime.Now);
                lastTime = DateTime.Now;
                showNextLetter();
            }
        }
    }
Если надо отображать не символ, а изображение кнопки - добавляйте на форму ImageList и забросьте туда изображение всех букв, задав в имени их название, а затем выводите на PictureBox.
В данном примере введенное значение получается через таблицу score, поскольку фокус по умолчанию будет на ней. Если более грамотно подходить к вопросу, лучше использовать хуки в WinApi и перехватывать все введенные на нашей форме клавиши.
2
10 / 1 / 0
Регистрация: 06.10.2009
Сообщений: 73
06.10.2011, 20:17  [ТС] 4
Спасибо, думаю это как раз то что мне нужно))
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.10.2011, 20:17

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Нужно написать игру на С++ и SFML
Ребята дело в том что в универе дали задание курсовую, написать приложение Гамока ( китайские...

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

нужно в течение 3-4 недель написать браузерную игру!
Задание такое: нужно написать в течение 3-4 недель браузерную игру, например карточную какую-то...

Что нужно знать, чтобы написать сетевую игру
Покурил немного эту тему. Насколько понял, &quot;на сокетах никто уже вчистую не программирует, ибо...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.