Forum.iFiction.Ru

iFiction.Ru · ifHub · FAQ · IFWiki · QSP · URQ · INSTEAD · AXMA

форум об interactive fiction, текстовых приключенческих играх и всём таком...

Вы не зашли.

Объявление

Опубликованы итоги ЗОК 2019.

0    0    #526
05.01.2015 15:20

alfa10
Участник (+1, -1)
Зарегистрирован: 29.10.2013
Сообщений: 84

Re: Как сделать что-то или "я вот не понимаю"

А если мне надо три строки и более? И с фотками внутри колонки, а? smile Программа ругается на третий столбец

Неактивен

0    0    #527
05.01.2015 16:42

DoubleDragon
Модератор (+390, -31)
Откуда: Москва
Зарегистрирован: 07.04.2012
Сообщений: 1760
Вебсайт

Разработчик "AXMA Story Maker"

Re: Как сделать что-то или "я вот не понимаю"

alfa10 написал:

А если мне надо три строки и более? И с фотками внутри колонки, а? smile Программа ругается на третий столбец

Строк может быть сколько угодно. Столбцов - не более двух.

Неактивен

0    0    #528
05.01.2015 16:52

alfa10
Участник (+1, -1)
Зарегистрирован: 29.10.2013
Сообщений: 84

Re: Как сделать что-то или "я вот не понимаю"

а фото и ссылки можно вставить в таблицы?

Неактивен

0    0    #529
05.01.2015 19:05

DoubleDragon
Модератор (+390, -31)
Откуда: Москва
Зарегистрирован: 07.04.2012
Сообщений: 1760
Вебсайт

Разработчик "AXMA Story Maker"

Re: Как сделать что-то или "я вот не понимаю"

Можно вставлять изображения:

Код:

<<row 'Лого' '[[File: http://sm.axmasoft.com/rsc/logo.png]]'>>

Ссылки нельзя.

Неактивен

0    0    #530
05.01.2015 22:52

alfa10
Участник (+1, -1)
Зарегистрирован: 29.10.2013
Сообщений: 84

Re: Как сделать что-то или "я вот не понимаю"

Код:

<<set $place = []>>

<<set $i = 0>>

<<loop $имя.length>>

    <<if $очки[$i] lt 10>>

        <<set $place.push("00" + $очки[$i] + "|" + $i)>>

    <<elseif $очки[$i] lt 100>>

        <<set $place.push("0" + $очки[$i] + "|" + $i)>>

    <<else>>

        <<set $place.push($очки[$i] + "|" + $i)>>

    <<endif>>

    <<set $i++>>

<<endloop>>

<<set $place = $place.sort()>>

''Общий зачет Кубка мира:''

----

<<set $i = 0>>

<<loop $имя.length>>

    <<set $индекс = $place[$i].split('|')[1]>>

    <<print ($i + 1)>> место: <<print $имя[$индекс]>> (<<print $очки[$индекс]>>)

    <<set $i++>>

<<endloop>>

Этот код делает сортировку спортсменов по местам, где первое место - у кого меньшее число очков. А как сделать сортировку наоборот, чтобы первым был тот, у кого больше всего очков?

Неактивен

0    0    #531
05.01.2015 23:52

alfa10
Участник (+1, -1)
Зарегистрирован: 29.10.2013
Сообщений: 84

Re: Как сделать что-то или "я вот не понимаю"

Есть кусок кода значений:

Код:

<<set $процент_лежка = ($попал_лежка*100)/$выстрел_лежка>>

<<set $процент_стойка = ($попал_стойка*100)/$выстрел_стойка>>

<<set $выстрел_лежка = 15>>

<<set $выстрел_стойка = 0>>

<<set $попал_лежка = 12>>

<<set $попал_стойка = 0>>

Есть кусок кода вывода значения на экран:

Код:

Точность стрельбы лежа: <<print $процент_лежка>> %

Получаю в итоге:
Точность стрельбы лежа: NaN %

Почему, ребят?

Неактивен

0    0    #532
06.01.2015 12:18

alfa10
Участник (+1, -1)
Зарегистрирован: 29.10.2013
Сообщений: 84

Re: Как сделать что-то или "я вот не понимаю"

531 пост - вопрос снимается, ошибку нашел.

Неактивен

0    0    #533
06.01.2015 20:20

Morych
Модератор (+67, -8)
Откуда: Гродно
Зарегистрирован: 05.07.2012
Сообщений: 523
Вебсайт

Re: Как сделать что-то или "я вот не понимаю"

alfa10 написал:

А как сделать сортировку наоборот, чтобы первым был тот, у кого больше всего очков?

Вместо
<<set $place = $place.sort()>>

Нужно написать
<<set $place = $place.sort().reverse()>>

Элементы массива будут отсортированы по убыванию.

Неактивен

0    0    #534
06.01.2015 21:02

DoubleDragon
Модератор (+390, -31)
Откуда: Москва
Зарегистрирован: 07.04.2012
Сообщений: 1760
Вебсайт

Разработчик "AXMA Story Maker"

Re: Как сделать что-то или "я вот не понимаю"

Кстати, числовые массивы правильно сортировать так: <<set $place = $place.sort(*)>> (звёздочка показывает, что сортировать значения надо как числа).

Сравните:

<<set $arr = [5,10,1,111,100,2]>>
<<print $arr.sort()>>
<<print $arr.sort(*)>>


Этот код выводит:

1,10,100,111,2,5
1,2,5,10,100,111


Но я сейчас посмотрел, это работает только в версиях 2.x, а в 3.0 не работает из-за допущенной ошибки, которую я поправлю в ближайшем обновлении.

Неактивен

0    0    #535
06.01.2015 22:17

Morych
Модератор (+67, -8)
Откуда: Гродно
Зарегистрирован: 05.07.2012
Сообщений: 523
Вебсайт

Re: Как сделать что-то или "я вот не понимаю"

Полезное замечание! Правда, применительно к биатлону такая сортировка не подходит, поскольку в массиве у нас не просто числа, а еще какая-то дополнительная информация, отделенная условным символом. Это может быть имя или индекс спортсмена. После сортировки нам нельзя потерять связь между числовым параметром и самим спортсменом. А поскольку сортируются строки, в числовом параметре мы добавляем нули вместо отсутствующих разрядов. Ничего лучше я не придумал. Может, есть более красивый способ?

Неактивен

0    0    #536
06.01.2015 22:47

alfa10
Участник (+1, -1)
Зарегистрирован: 29.10.2013
Сообщений: 84

Re: Как сделать что-то или "я вот не понимаю"

Morych написал:

alfa10 написал:

А как сделать сортировку наоборот, чтобы первым был тот, у кого больше всего очков?

Вместо
<<set $place = $place.sort()>>

Нужно написать
<<set $place = $place.sort().reverse()>>

Элементы массива будут отсортированы по убыванию.

Спасибо большое, дружище!!!

Неактивен

0    0    #537
06.01.2015 22:56

alfa10
Участник (+1, -1)
Зарегистрирован: 29.10.2013
Сообщений: 84

Re: Как сделать что-то или "я вот не понимаю"

Вот, прилагаю сейв, если интересно?! Пока реализовал на базе белорусских спортсменок главное меню, и все окна главного меню, кроме "Начать гонку".  Вот думаю, как сделать, чтобы после финиша гонки очки присуждались в зависимости от занятой позиции?! Например, 1 место - 10 очков, второе - 8, Третье - 6 и т.д. Там ведь будет массив. Поможете, ребята?

P.S. На втором слайде (где только крестик ошибки фотографии) нажмите на крестике. Просто там открытие 3 слайда при щелчке по фотке сделал.

Вообщем, архив тут: https://cloud.mail.ru/public/a6478949ef … %D1%80.rar

Отредактировано alfa10 (06.01.2015 23:04)

Неактивен

0    0    #538
06.01.2015 23:00

alfa10
Участник (+1, -1)
Зарегистрирован: 29.10.2013
Сообщений: 84

Re: Как сделать что-то или "я вот не понимаю"

Сейв

Неактивен

0    0    #539
07.01.2015 17:29

DoubleDragon
Модератор (+390, -31)
Откуда: Москва
Зарегистрирован: 07.04.2012
Сообщений: 1760
Вебсайт

Разработчик "AXMA Story Maker"

Re: Как сделать что-то или "я вот не понимаю"

А что, неплохо. Надо допилить сами гонки и получится этакий симулятор.

Неактивен

0    0    #540
07.01.2015 20:00

alfa10
Участник (+1, -1)
Зарегистрирован: 29.10.2013
Сообщений: 84

Re: Как сделать что-то или "я вот не понимаю"

DoubleDragon написал:

А что, неплохо. Надо допилить сами гонки и получится этакий симулятор.

Парни, поможите? smile Пока вот интересует момент, как сделать так, чтобы очки присуждались согласно занятым местам спортсменам?

Отредактировано alfa10 (07.01.2015 21:24)

Неактивен

0    0    #541
08.01.2015 23:56

alfa10
Участник (+1, -1)
Зарегистрирован: 29.10.2013
Сообщений: 84

Re: Как сделать что-то или "я вот не понимаю"

Ребята, сейчас столкнулся с проблемой, что эстафета не получается sad

1 - непонятно, как прописать, на каком этапе будет выступать именно мой спортсмен? Ведь я то могу выбрать любого спортсмена...
2 - непонятно, как сделать так, чтобы на финише очки присуждались сборной, а не спортсмену. Надо понять, как система поймет, что финишировавший спортсмен принадлежит к конкретной сборной?

Посмотрите?
https://cloud.mail.ru/public/be22f9339b … 1%D1%82.sm

Отредактировано alfa10 (08.01.2015 23:57)

Неактивен

0    0    #542
09.01.2015 22:47

alfa10
Участник (+1, -1)
Зарегистрирован: 29.10.2013
Сообщений: 84

Re: Как сделать что-то или "я вот не понимаю"

Такой еще вопрос: создал в начале игры массив <<set $имя = []>>. Также в начале игры называю своего спортсмена <<input '' $имя0>>. Как значение $имя0 вписать в массив?

Неактивен

0    0    #543
10.01.2015 18:06

alfa10
Участник (+1, -1)
Зарегистрирован: 29.10.2013
Сообщений: 84

Re: Как сделать что-то или "я вот не понимаю"

Парни, сел окончательно с игрой. Совершенно не пойму с просчетом гонок. Нужно вводить по идее очень много параметров: ведь, кто-то может бежать дистанцию, а кто то в это время стрелять. Как это сделать, мне не понятно! Хочу спросить, может кто-то сможет мне помочь в реализации игры по моим консультациям? В знак благодарности, я готов буду оплатить Вашу помощь. Не крупно конечно, но пару тысяч выделить смогу.

Неактивен

0    0    #544
10.01.2015 23:25

alfa10
Участник (+1, -1)
Зарегистрирован: 29.10.2013
Сообщений: 84

Re: Как сделать что-то или "я вот не понимаю"

Можно ли, имея разные переменные, например (результат1, результат2, результат3, результат4), объединить их в массив, и сделать сортировку этого массива так, чтобы результаты с наименьшим числовым значением выводились выше, чем результаты с большим числовым значением?

Например:

Результат1 - 50 ходов
Результат2 - 75 ходов
Результат3 - 28 ходов
Результат4 - 52 хода

Выводится так:

1 место - Результат3 - 28 ходов
2 место - Результат1 - 50 ходов
3 место - Результат4 - 52 хода
4 место - Результат2 - 75 ходов

Неактивен

0    0    #545
12.01.2015 15:22

Morych
Модератор (+67, -8)
Откуда: Гродно
Зарегистрирован: 05.07.2012
Сообщений: 523
Вебсайт

Re: Как сделать что-то или "я вот не понимаю"

alfa10 написал:

Такой еще вопрос: создал в начале игры массив <<set $имя = []>>. Также в начале игры называю своего спортсмена <<input '' $имя0>>. Как значение $имя0 вписать в массив?

<<set $имя.push($имя0)>>

Неактивен

0    0    #546
12.01.2015 15:46

Morych
Модератор (+67, -8)
Откуда: Гродно
Зарегистрирован: 05.07.2012
Сообщений: 523
Вебсайт

Re: Как сделать что-то или "я вот не понимаю"

alfa10 написал:

Можно ли, имея разные переменные, например (результат1, результат2, результат3, результат4), объединить их в массив, и сделать сортировку этого массива так, чтобы результаты с наименьшим числовым значением выводились выше, чем результаты с большим числовым значением?

Например:

Результат1 - 50 ходов
Результат2 - 75 ходов
Результат3 - 28 ходов
Результат4 - 52 хода

Выводится так:

1 место - Результат3 - 28 ходов
2 место - Результат1 - 50 ходов
3 место - Результат4 - 52 хода
4 место - Результат2 - 75 ходов

Это мы уже проходили wink

Код:

<<set $результат1 = 50>>
<<set $результат2 = 75>>
<<set $результат3 = 28>>
<<set $результат4 = 52>>

<<set $места = []>>

<<set $места.push($результат1 + "|Результат1")>>
<<set $места.push($результат2 + "|Результат2")>>
<<set $места.push($результат3 + "|Результат3")>>
<<set $места.push($результат4 + "|Результат4")>>

<<set $места = $места.sort()>>

<<set $номер = 0>>
<<loop $места.length>>
<<set $результат = $места[$номер].split("|")>>
<<set $место = $номер + 1>>
<<print $место>> место - <<print $результат[1]>> - <<print $результат[0]>> ходов
<<set $номер++>>
<<endloop>>

А чтобы в зависимости от числа выводить "ход", "хода" или "ходов", смотри эту заметку.

Неактивен

0    0    #547
12.01.2015 15:53

Morych
Модератор (+67, -8)
Откуда: Гродно
Зарегистрирован: 05.07.2012
Сообщений: 523
Вебсайт

Re: Как сделать что-то или "я вот не понимаю"

alfa10 написал:

Парни, сел окончательно с игрой. Совершенно не пойму с просчетом гонок. Нужно вводить по идее очень много параметров: ведь, кто-то может бежать дистанцию, а кто то в это время стрелять. Как это сделать, мне не понятно! Хочу спросить, может кто-то сможет мне помочь в реализации игры по моим консультациям? В знак благодарности, я готов буду оплатить Вашу помощь. Не крупно конечно, но пару тысяч выделить смогу.

Попробуй спросить в Потоке. Сюда, мне кажется, увлекающиеся Асмом реже заглядывают.

Неактивен

0    0    #548
12.01.2015 18:34

alfa10
Участник (+1, -1)
Зарегистрирован: 29.10.2013
Сообщений: 84

Re: Как сделать что-то или "я вот не понимаю"

Для DoubleDragon (вопрос из потока).
Смотри, есть код:

Код:

<<loop $имя.length>>

    <<if $счетчик_хода0[$i] lt 10>>

        <<set $place.push("000" + $счетчик_хода0[$i] + "|" + $i)>>

    <<elseif $счетчик_хода0[$i] lt 100>>

        <<set $place.push("00" + $счетчик_хода0[$i] + "|" + $i)>>

    <<else>>

        <<set $place.push($счетчик_хода0[$i] + "|" + $i)>>

    <<endif>>

    <<set $i++>>

<<endloop>>

Этот код соритрует и показывает мне лидера гонки:

750 - Вася
985 - Петя
1055 - Коля

А если у меня такие значения получаются в гонке:

9750 - Вася
9985 - Петя
10055 - Коля

Как мне надо будет код записать?

Неактивен

0    0    #549
12.01.2015 19:58

alfa10
Участник (+1, -1)
Зарегистрирован: 29.10.2013
Сообщений: 84

Re: Как сделать что-то или "я вот не понимаю"

Пост 548 - проблему решил

Неактивен

0    0    #550
12.01.2015 23:08

Morych
Модератор (+67, -8)
Откуда: Гродно
Зарегистрирован: 05.07.2012
Сообщений: 523
Вебсайт

Re: Как сделать что-то или "я вот не понимаю"

Кстати, alfa10, когда появится поддержка функции sort(*), можно попробовать добавлять в массив без дополнительных нулей, но через точку, а не через вертикальную линию. Т.е. так:

<<set $place.push($счетчик_хода0[$i] + "." + $i)>>

тогда в массиве у нас окажутся дробные числа (где целая часть - количество ходов, а дробная часть - это индекс спортсмена). Такой массив уже можно будет отсортировать методом sort(*) и сортироваться будут вообще любые значения ходов, без необходимости, повторюсь, добавлять дополнительные нули.

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

Неактивен

Powered by PunBB
© copyright 2001–2019 iFiction.Ru