HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > Общие вопросы программирования
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 28.09.2022, 11:13
Hiranos
Новичок
Регистрация: 27.09.2022
Сообщений: 1
С нами: 1911264

Репутация: 1
По умолчанию

Всем доброго времени суток! Нужна помощь, как сделать так чтобы рандомно из определенных позиций бот выбирал её и выводил. НО после того как он её вывел один раз чтобы он не выводил её более, тоесть попросту забыл о её как бы существовании. Возможно непонятно объяснил ну ссори. И да, желательно не скинуть готовый код а объяснить как это делается
 
Ответить с цитированием

  #2  
Старый 29.09.2022, 17:50
plalkeo
Постоянный
Регистрация: 10.11.2018
Сообщений: 930
С нами: 3951464

Репутация: 118


По умолчанию

Не знаю оно ли это

Но как я понял, можно хранить позиции в массиве, и далее при взятии из массива надо убрать эту позицию из этого же массива, и далее она не будет существовать в нем
 
Ответить с цитированием

  #3  
Старый 30.09.2022, 08:56
pomidorq
Участник форума
Регистрация: 17.04.2020
Сообщений: 184
С нами: 3197792

Репутация: 83
По умолчанию

Создаёшь словарь, помещаешь значение в ключ а булево значение, которое показывает, использовалось ли значение, в само значение.

далее просто проходишь циклом по массиву, если значение ключа будет True - значит он уже использовался и его мы пропускаем.

Вот пример работы. Этот код никогда не выведет два одинаковых значения, а когда они кончатся - закончит работу.



Для твоего случая скорее подойдёт одинарных проход пока не будет найдено свободное значение, который выглядит вот так:

Python:





Код:
import
random

values
=
{
"Значение 1"
:
False
,
"Значение 2"
:
False
,
"Значение 3"
:
True
,
"Значение 4"
:
False
,
"Значение 5"
:
False
}
def
get_rand_value
(
)
:
while
True
:
random_value
=
random
.
randint
(
1
,
5
)
j
=
0
for
k
,
v
in
values
.
items
(
)
:
j
+=
1
if
(
j
==
random_value
)
and
(
not
v
)
:
print
(
k
)
values
[
k
]
=
True
return
get_rand_value
(
)
 
Ответить с цитированием

  #4  
Старый 01.10.2022, 22:54
rdye
Познающий
Регистрация: 17.08.2022
Сообщений: 58
С нами: 1970152

Репутация: 8
По умолчанию

если правильно понял, 1. выбираем рандомную вещь из списка 2. используем ее (выводим) 3. удаляем ее из списка. все легко гуглится
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.