Воскресенье, 19 Мая 2019, 14:00

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 32
  • 1
  • 2
  • 3
  • 31
  • 32
  • »
Форум игроделов » Записи участника » DivES [640]
Результаты поиска
DivESДата: Среда, 13 Февраля 2019, 23:22 | Сообщение # 1 | Тема: Вопрос-Ответ (C++)
Blender 2.49b user
Сейчас нет на сайте
allods, как и написал drcrack, это - список инициализации.
Можешь поискать по запросу "список инициализации классов c++" ^_^
DivESДата: Среда, 13 Февраля 2019, 22:45 | Сообщение # 2 | Тема: Вопрос-Ответ (C++)
Blender 2.49b user
Сейчас нет на сайте
allods, что именно интересует? EventCondition? Или стиль присваивания через m_Name(name)?
DivESДата: Среда, 13 Февраля 2019, 00:10 | Сообщение # 3 | Тема: Вопрос-Ответ (C++)
Blender 2.49b user
Сейчас нет на сайте
Цитата allods ()
А 1 байт это замок номер 1. то есть 011111111 я знаю что этого замка в списке уже нет. Если 255 то значит 511-255 = 256 а это последний замок. то значит 111111110.

В двоичной системе исчисления самый старший разряд - крайний левый (то есть в 0111 1111 самым старшим является 0, самым младшим - крайняя справа единица).
Так что отсутствие замка под номером один (обозначаемого 1 битом) будет выглядеть как 111111110.
Так же как и отсутствие десятого замка (256 бит) будет выглядеть как 011111111.
Возможно, подтолкнёт на какие-либо мысли. Если, конечно, ещё есть неразрешённые вещи в этом твоём коде :)


Сообщение отредактировал DivES - Среда, 13 Февраля 2019, 00:13
DivESДата: Вторник, 12 Февраля 2019, 23:39 | Сообщение # 4 | Тема: Вопрос-Ответ (C++)
Blender 2.49b user
Сейчас нет на сайте
allods, а как ты преобразовываешь тот код, что уже показывал?
Я вот лично пока что не вижу реализации твоей идеи через тот код :(

Добавлено (12 Февраля 2019, 23:40)
---------------------------------------------

Цитата allods ()
если не стирать нули

Где именно стирать?
DivESДата: Вторник, 12 Февраля 2019, 23:14 | Сообщение # 5 | Тема: Вопрос-Ответ (C++)
Blender 2.49b user
Сейчас нет на сайте
Цитата allods ()
собственно для проверки я могу просто разобрать 111111111 в Лист
и через цикл проверить 0 или 1 ? я правильно понял ?

Разобрать конечно можно и проверить тоже, если это требуется.
Но по идее, двоичный 0 он и в Африке - ноль (в десятичной системе, имеется в виду).
То есть, 0 (в десятичной) = 0 (тут и далее - в двоичной) = 00 = 000 = 0000 =...
То есть, проверка if (двоичное число) будет срабатывать только в том случае, когда в этом двоичном числе есть хотя бы одна единичка :)

Добавлено (12 Февраля 2019, 23:23)
---------------------------------------------

Цитата allods ()
players[i].allowedFactions.erase(fact); и еще что такое erase
я посмотрел и насколько я понял оно убирает значение == fact ?

По этому поводу ничего не скажу, не совсем понимаю, с чем мы работаем. Но судя по названию функции/ метода она и правда "стирает" значение.
Цитата allods ()
вообщем странно немного. С этим кодом что я написал в самом начале. Я получаю не в двоичной системе не 111111111 а 511
в итоге все остальне не работает. Так как я не вижу преобразования 511 в 111111111
В итоге если преобразовать в двоичую систему все сходится. Или я что то не понял

Преобразовывать не нужно, по идее. Раньше ведь всё работало?
DivESДата: Вторник, 12 Февраля 2019, 22:38 | Сообщение # 6 | Тема: Вопрос-Ответ (C++)
Blender 2.49b user
Сейчас нет на сайте
allods, 123456789 в двоичной системе это 111010110111100110100010101.
Побитовые операции на то и побитовые, что работают с битами :D
То есть числа всегда прежде переводятся в соответствующую систему координат.
По поводу 111010110111100110100010101 << 5... результат такой: 11101011011110011010001010100000 (в двоичной) или 3950617248 (в десятичной). Проверил на C++ и через перевод из одной системы в другую.
Как видишь, в данном случае всё сдвинулось влево на пять знаков.
Но для правильной работы мне пришлось работать с типом long int.
В твоём же случае работа идёт с ui16, то есть unsinged int. При этом в двоичной записи там сможет поместиться лишь 16 бит, насколько я понимаю :)

Добавлено (12 Февраля 2019, 22:46)
---------------------------------------------

Цитата allods ()
а здесь почему ui16 ? в чем его фишка

Я уже успел опередить этот вопрос своим ответом, но ещё дополню.

Смотри, 65535 (десятичное) - верхний предел типа unsigned int (ui16).
В двоичном виде это 1111111111111111 (их 16).
Если мы попытаемся сдвинуть значение переменной этого типа на один влево (<< 1), то получим 1111111111111110, так как биты, сдвинутые за пределы - теряются.
1111111111111111 << 3 = 1111111111111000,
1111111111111111 << 8 = 1111111100000000 (ровно до "половины") и так далее :)

Добавлено (12 Февраля 2019, 22:50)
---------------------------------------------
Кстати, сначала меня ввело в заблуждение ui16. Потому что эта аббревеатура означает unsigned int (а он 32-ух битный).
В то время как usi16 было бы логичнее - unsigned short int :)

Добавлено (12 Февраля 2019, 22:58)
---------------------------------------------
Кстати, ui16 - это просто своего рода псевдоним типа данных.
Мы сами можем задать свой псевдоним используя typedef:

Код
typedef unsigned short int ui16;

- как в твоём случае, например :)
То есть typedef тип имя;
DivESДата: Вторник, 12 Февраля 2019, 22:11 | Сообщение # 7 | Тема: Вопрос-Ответ (C++)
Blender 2.49b user
Сейчас нет на сайте
allods, объяснить в точности не смогу, но "помочь понять", как просишь - постараюсь :)
Начнём с &. Это поразрядная конъюнкция (или умножение).
То есть, если взядь два числа, например 110 и 100, то результатом 110 & 100 будет 100.
Возьмём 110 и 010, результат 110 & 010 = 10. Результат равен "умножению" чисел.
1*0 = 0, 1*1 = 1, 0*0 = 0 -> получаем 10, так как 0 слева отбрасывается. Объяснил, как смог, в остальном можешь почитать на тему конъюнкции!

Далее идёт <<. Это побитовый сдвиг. Тут понять проще.
01 << 1 = 10 (в двоичной) или 2 (в десятичной).
0010 << 1 = 0100.
0110 << 1 = 1100.
0110 << 2 = 1000. (биты, сдвинуты за пределы - теряются)
То есть просто перемещаем битовые значения по разрядам.

Ну а теперь мы подошли к пониманию этой условной конструкции. Она будет срабатывать до тех пор, пока значение во внутренних скобках будет равняться нулю. Ведь только в этом случае значение во внешних скобках будет принимать значение истины.
Поправьте, если ошибся ^_^

Добавлено (12 Февраля 2019, 22:25)
---------------------------------------------
(allowedFactions & (1 << fact)) - внутренние скобки;
(!(allowedFactions & (1 << fact))) - внешние.
Вот что имелось в виду :)

DivESДата: Среда, 06 Февраля 2019, 09:23 | Сообщение # 8 | Тема: Хочу делать любые 3D игры! С чего начать?
Blender 2.49b user
Сейчас нет на сайте
Logos300, Blender 3D. По сути - 3D редактор (с множеством других функций), в котором имеется свой игровой движок Blender Game Engine.
Моделируем -> размещаем объекты на сцене -> "прописываем" игровую логику -> запускаем -> играем!
В качестве скриптового языка программирования используется Python.
DivESДата: Суббота, 26 Января 2019, 17:38 | Сообщение # 9 | Тема: Помогите наладить прыжок.
Blender 2.49b user
Сейчас нет на сайте
Тут, как минимум, опечатка в "Ground":
Код
void OnCollisionEnter2D (Collision2D collision){
        if(collision.gameObject.tag == "Groung")
         isGrounded = true;

Да и вообще. Почему два метода при столкновении с поверхностью земли одновременно присваивают и true, и false флагу isGrounded?
Хотя, наверное я не понимаю Unity ^_^

Добавлено (26 Января 2019, 17:43)
---------------------------------------------
Хотя, видимо ...Enter2d срабатывает при столкновении, а ...Exit2d - при "отсутствии" столкновения. В таком случае, попробуй и правда опечатку убрать :)

DivESДата: Четверг, 24 Января 2019, 15:29 | Сообщение # 10 | Тема: Нахождение среднего значения и стандартного отклонения
Blender 2.49b user
Сейчас нет на сайте
graniza, можно поподробнее? Желательно с кодом :)
DivESДата: Четверг, 24 Января 2019, 14:53 | Сообщение # 11 | Тема: Нахождение среднего значения и стандартного отклонения
Blender 2.49b user
Сейчас нет на сайте
graniza, трудности с добавлением этих двух параметров?
DivESДата: Четверг, 24 Января 2019, 12:22 | Сообщение # 12 | Тема: Нахождение среднего значения и стандартного отклонения
Blender 2.49b user
Сейчас нет на сайте
С числом ходов да, скорее всего от discard. А для среднего числа точек принятия решения я бы ввёл новую переменную в этом if-е:
Код
# Place card in it's corresponding spot if game isn't over yet
        if (None in board) and (len(discard)<6):

Ведь по идее именно тут происходит принятие решения. Или я не прав?


Сообщение отредактировал DivES - Четверг, 24 Января 2019, 12:23
DivESДата: Четверг, 24 Января 2019, 11:43 | Сообщение # 13 | Тема: Нахождение среднего значения и стандартного отклонения
Blender 2.49b user
Сейчас нет на сайте
Irbis, блин, а ведь точно! Не обратил внимания на то что на форуме отступы съехали. Посмотрел, что синтаксис подсветился и отправил :D
Сейчас должно быть правильно:


Сообщение отредактировал DivES - Четверг, 24 Января 2019, 11:47
DivESДата: Четверг, 24 Января 2019, 10:58 | Сообщение # 14 | Тема: Нахождение среднего значения и стандартного отклонения
Blender 2.49b user
Сейчас нет на сайте
graniza, в Geany, это обычный блокнот.
Нужно чётко выставить расположение блоков с помощью табуляций, заменив ими (табуляциями) появившиеся после копирования пробелы.
Сам столкнулся с этим, когда копировал код отсюда :o

Добавлено (24 Января 2019, 11:10)
---------------------------------------------
drcrack, ошибка "unindent does not match any outer indentation level", проверяй :D

DivESДата: Среда, 23 Января 2019, 23:48 | Сообщение # 15 | Тема: Нахождение среднего значения и стандартного отклонения
Blender 2.49b user
Сейчас нет на сайте
graniza, вечером? Я только с работы вечером вернусь :(
Попробую сейчас дописать, что смогу. Не отвечай, я просто дополню сообщение!

Добавлено (24 Января 2019, 00:13)
---------------------------------------------
Тут старый код:


Добавлено (24 Января 2019, 00:14)
---------------------------------------------
Первые две строчки можешь удалить, они для работы кириллицы в Linux.
И да, не забывай про важность табуляций в Python ^_^
Можешь успеть спросить что-нибудь, пока я не ушёл)

Добавлено (24 Января 2019, 00:53)
---------------------------------------------
Код
from random import randint
from statistics import mean, stdev, pvariance

# 52 deck of cards ranked 1-13
# shuffle the deck at game start
# board of 10 spots
# discard pile
# rank: ace=low k=high
# when placing card, every space to left is empty or lower rank
# every space to right is empty or higher rank
# loss = 6th discard
# win = at least one card on every spot on board

lossCount = 0;
winCount = 0;

#Список полученных результатов (очков):
scoresList = list();

#Даём пользователю возможность ввести количество пасьянсов
#(без каких-либо проверок: ожидаем, что пользователь не дурак и введёт число)
solitaireCount = input("Введите количество пасьянсов: ");

for z in range(0, solitaireCount):
    # new deck
    deck = list();
    # new discard pile
    discard = list();
    # 4 of each card
    for i in range(1,5):
  for x in range(1,14):
   deck.append(x);

    # shuffling the deck
    for z in range(0,51):
  w = randint(z,51)
  tempCard = deck[z];
  deck[z] = deck[w];
  deck[w] = tempCard;

    #print deck;
    #print len(deck);

    # Initializing the board
    board = [None]*10;
    # Automating card draws from the deck
    for i in range(0,51):
  #print board;
  card = deck.pop();

  # Place card in it's corresponding spot if game isn't over yet
  if (None in board) and (len(discard)<6):
   if len(board)>=card:
    board[card-1] = card;
   else:
    discard.append(card);

    # Loss conditions
    if len(discard)==6:
  lossCount +=1;
  print ("Поражение!");

    # Win conditions
    if ((None in board) == False):
  winCount +=1;
  print ("Победа! :)");

    #Записываем результат в список:
    score = 0;
    for curCard in board:
  if (None != curCard):
   score += curCard;
    scoresList.append(score);

    print (board)
    print (discard)
print (winCount);
print ("% побед: " + str((100*float(winCount)/float(solitaireCount))) +"%\n");

#Записываем результаты в файл:
print ("Записываем результаты в текстовый файл... \n");
with open("scores_out.txt", "w") as file:
    for line in scoresList:
  file.write(str(line) + "\n")
    file.close();

#Считываем результаты из файла в список:
print ("Считываем результаты из текстового файла... \n");
scoresFromFile = [];
with open("scores_out.txt", "r") as file:
    for line in file:
  scoresFromFile.append(line.strip());
    file.close();

print ("Работаем со статистикой... \n");
mean = mean(scoresList);
pvariance = pvariance(scoresList);
stdev = stdev(scoresList);

#Записываем полученную статистику в файл:
print ("Записываем полученную статистику в конец файла... \n");
with open("scores_out.txt", "a") as file:
    file.write("Mean = " + str(mean) + "\n");
    file.write("Pvariance = " + str(pvariance) + "\n");
    file.write("Stdev = " + str(stdev) + "\n");
    file.close();

А вот и новый вариант с действующей статистикой (надеюсь, я всё сделал правильно :D ) и с записью/чтением файла. Пусть и без тех дополнительных данных.
Парочка моментов:
1. Будет ругаться на кириллицу - замени все слова на русском (в том числе комменты) на английские.
2. По поводу многострадального statistics. Скачивай прямиком с гит-хаба, если у тебя ещё нет этого модуля.
Переходишь сюда, открывается .py файл.
Сохраняешь его (ПКМ -> "Сохранить как") прямо в папку со своим "проектом". Должен сохраниться как "statistics.py".
Ну, вроде бы всё)
Успехов тебе завтра! B)


Сообщение отредактировал DivES - Четверг, 24 Января 2019, 00:56
DivESДата: Среда, 23 Января 2019, 23:34 | Сообщение # 16 | Тема: Нахождение среднего значения и стандартного отклонения
Blender 2.49b user
Сейчас нет на сайте
graniza, оперируешь такими терминами и не можешь решить такую простецкую задачу :(
Счёт и ввод количества пасьянсов сделал.
Статистику не сделал - у меня отсутствует та самая statistics, о которою я уже трижды запнулся :D
Сегодня уже не закончу. Могу попробовать завтра, если ещё поздно не будет)


Сообщение отредактировал DivES - Среда, 23 Января 2019, 23:34
DivESДата: Среда, 23 Января 2019, 22:47 | Сообщение # 17 | Тема: Нахождение среднего значения и стандартного отклонения
Blender 2.49b user
Сейчас нет на сайте
graniza, а счёт - это число карт в списке board? (то есть 10 для победного кейса)
Или же сумма всех карт в том же списке? (то есть 55 в случае победы)
DivESДата: Среда, 23 Января 2019, 22:33 | Сообщение # 18 | Тема: Нахождение среднего значения и стандартного отклонения
Blender 2.49b user
Сейчас нет на сайте
graniza, хорошо. Пасьянс работает, насколько я могу судить. В статистике что нужно? Только развёрнуто. То есть, что подразумевается под средним значением и стандартным отклонением? Так как, как я уже сказал, код статистики в принципе бесполезен :D

Добавлено (23 Января 2019, 22:35)
---------------------------------------------
Хотя нет, стоп. Ошибаюсь. Увидел statistics. В чём сложность связать эти два файла?

DivESДата: Среда, 23 Января 2019, 20:39 | Сообщение # 19 | Тема: Нахождение среднего значения и стандартного отклонения
Blender 2.49b user
Сейчас нет на сайте
graniza, ещё актуально? Какой именно пасьянс нужен?
В коде статистики импортируется statistics. Стандартная библиотека для Python? Если нет, то код бесполезный :)
DivESДата: Четверг, 13 Декабря 2018, 01:30 | Сообщение # 20 | Тема: И пришла новая версия 2.8 и помер BGE
Blender 2.49b user
Сейчас нет на сайте
Цитата Ine ()
И то и другое ездит, но на Порше можно и до Steam доехать

Конечно можно! Больше того - и ведь доезжают! Я про ту кучу трэша на приведённых Вами движках, разработанную за месяц (в лучшем случае) из разного рода прессетов :)
Цитата Ine ()
Я могу быть знаком с человеком, но не разговаривать с ним. Так и здесь, я знаком с BGE, но я не разрабатываю на нём игры

Знания о человеке, с которым не разговариваешь, будут уж слишком поверхностными ;)
Форум игроделов » Записи участника » DivES [640]
  • Страница 1 из 32
  • 1
  • 2
  • 3
  • 31
  • 32
  • »
Поиск:

Все права сохранены. GcUp.ru © 2008-2019 Рейтинг