Сгибальщик
42 / 42 / 4
Регистрация: 18.05.2013
Сообщений: 220
|
||||||
1 | ||||||
Подтормаживающий рандом27.07.2013, 19:56. Показов 829. Ответов 15
Метки нет (Все метки)
Сделал простую змейку.
1
|
27.07.2013, 19:56 | |
Ответы с готовыми решениями:
15
Рандом Рандом рандом рандом |
198 / 170 / 19
Регистрация: 05.05.2013
Сообщений: 1,235
|
|
27.07.2013, 21:09 | 2 |
У меня ни чего не тормозит 20000+ набрал
0
|
187 / 180 / 25
Регистрация: 27.01.2012
Сообщений: 1,335
|
|
27.07.2013, 21:16 | 3 |
Бендерродригез, ещё бы! Вы поставили бесконечный цикл с выходом только в том случае, когда случайным образом программа сможет поставить яблоко в место, где нет змеи. Теоретически, программа может навечно зависнуть при первом же ходе, ведь пусть даже поле и 23 на 28, а значит кол-во вариантов 23*28, все равно может выпасть подряд over9000 числа 1х1, где расположена змейка (на то он и рандом). Что уж говорить о том, если змея будет занимать, допустим, 95% поля (не так уж и сложно это сделать) - вот уж где точно может намертво зависнуть.
Как вариант, сделайте массив свободных клеток и уже затем rand() % massiveOfFreeCells.size()
0
|
Сгибальщик
42 / 42 / 4
Регистрация: 18.05.2013
Сообщений: 220
|
|
27.07.2013, 21:41 [ТС] | 4 |
Я так понимаю, вектор надо к этому делу приспособить, а то с простым массивом поменяю шило на мыло? Просто недавно только с этой темой начал ознакомляться.
0
|
187 / 180 / 25
Регистрация: 27.01.2012
Сообщений: 1,335
|
|
27.07.2013, 22:12 | 5 |
Бендерродригез, ну да, можно вектор. Хотя за эффективность подобного способа не ручаюсь, возможно, что можно ещё лучше сделать, но проблем с неопределенной скоростью рандомизации яблока больше не будет
1
|
68 / 41 / 1
Регистрация: 14.05.2013
Сообщений: 383
|
|
27.07.2013, 22:22 | 6 |
0
|
Сгибальщик
42 / 42 / 4
Регистрация: 18.05.2013
Сообщений: 220
|
|
27.07.2013, 22:32 [ТС] | 7 |
Даниил1991, дебаг или релиз версия?
Сейчас проверил релиз - да, тормоза отсутсвуют, но ситуация, указанная nexen, таки вполне реальна.
0
|
68 / 41 / 1
Регистрация: 14.05.2013
Сообщений: 383
|
|
27.07.2013, 22:45 | 8 |
Да я и не оспариваю, возможно всё
0
|
150 / 137 / 35
Регистрация: 29.07.2012
Сообщений: 709
|
|
28.07.2013, 17:03 | 9 |
В твоей змейке уже есть 1 недоработка. Попробуй двигаться по вертикале, и зажать клавишу W. Змейка начнет быстрей передвигаться.
0
|
Сгибальщик
42 / 42 / 4
Регистрация: 18.05.2013
Сообщений: 220
|
|
28.07.2013, 17:23 [ТС] | 10 |
Bend3r, недоработок там, ясное дело, полно, но никакого ускорения я не наблюдаю. Может, тебе просто кажется? Скорость движения зависит не от нажатия кнопки, а от заданного времени простоя программы.
0
|
150 / 137 / 35
Регистрация: 29.07.2012
Сообщений: 709
|
|
28.07.2013, 17:25 | 11 |
char pole[30][25] = {0};
У тебя массивы не равны. Движение в любом случае будет не равное.
0
|
Сгибальщик
42 / 42 / 4
Регистрация: 18.05.2013
Сообщений: 220
|
|
28.07.2013, 17:30 [ТС] | 12 |
Bend3r, а поподробней? Какая связь между размерностью массива и скоростью?
0
|
150 / 137 / 35
Регистрация: 29.07.2012
Сообщений: 709
|
|
28.07.2013, 17:37 | 13 |
Елементарно, по вашим данным по вертикале нужно пройти 30 шагов, по горизонтали 25. Ну так вот змейка быстрей будет двигаться, т.к ей нужно будет пройти меньшее кол-во шагов. Получается и скорость у нее будет быстрей.
0
|
Сгибальщик
42 / 42 / 4
Регистрация: 18.05.2013
Сообщений: 220
|
|
28.07.2013, 17:42 [ТС] | 14 |
Bend3r, я не так понял, значит.
А ещё по вертикали символы шире, поэтому скорость перемещения кажется больше. Я-то думал, разговор о програмном ускорении по вертикали. Но на то она и консоль. Если можно сделать символы квадратными, то как?
0
|
150 / 137 / 35
Регистрация: 29.07.2012
Сообщений: 709
|
|
28.07.2013, 17:44 | 15 |
Символы одинаковые, но когда двигаешься по вертикале, между символами есть пробел вроде как.
0
|
Сгибальщик
42 / 42 / 4
Регистрация: 18.05.2013
Сообщений: 220
|
|
28.07.2013, 17:48 [ТС] | 16 |
Bend3r, да даже по окантовке видно, что по вертикали размер больше.
А вот квадратные символы - это действительно интересно.
0
|
28.07.2013, 17:48 | |
28.07.2013, 17:48 | |
Помогаю со студенческими работами здесь
16
Рандом в С++ Рандом рандом Использование рандом Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |