[personal profile] blocknote

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

 

напиши код для Twine 2 SugarCube 2, чтобы он отображал рандомную картинку из папки kartinki

Copilot
Конечно, вот пример кода для Twine 2 с использованием формата SugarCube 2, который отображает случайное изображение из заданного списка:

<<set $images to ["kartinka1.jpg", "kartinka2.jpg", "kartinka3.jpg"]>> /* Замените имена файлов на имена ваших изображений */
<<set $randomImage to $images.pluck()>>
<img src="path/to/kartinki/$randomImage"> /* Укажите правильный путь к папке с изображениями */
 

 

Этот код использует метод .pluck() для выбора случайного изображения из массива $images и отображения его в пассаже. Помните, что вам нужно будет заменить "kartinka1.jpg", "kartinka2.jpg", "kartinka3.jpg" на имена файлов ваших изображений и указать правильный путь к папке kartinki.


вам не нужно перечислять все 100 изображений вручную. Вы можете использовать цикл в Twine для автоматического создания массива с именами файлов. Вот пример кода, который делает это:
 
<<set $images to []>>
<<for _i to 100>>
  <<set _imageName to "kartinka" + _i + ".jpg">>
  <<set $images.push(_imageName)>>
<</for>>
<<set $randomImage to $images.pluck()>>
<img src="path/to/kartinki/$randomImage"> /* Укажите правильный путь к папке с изображениями */
 
Этот код создает массив $images с именами файлов от kartinka1.jpg до kartinka100.jpg, а затем выбирает из него случайное изображение для отображения. Убедитесь, что имена файлов соответствуют тем, которые у вас есть в папке, и что путь к папке kartinki указан верно.

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

Ок, скармливаю ему то, что сделано было самостоятельно, но корректно не работало:

Кот:

<<set $randimg = random(4, 6)>>

<div style="text-align: center;">

    <img src="pic/(" + "$randimg" + ").jpg" style="display: inline-block;">

</div>

Как изменить этот код, чтобы он в Твайн 2 SugarCube 2 отображал картинку, а не строку: <img src="pic/(" + "4" + ").jpg" style="display: inline-block;">

 

Картинки в папке имеют названия (4), (5), (6)

Ответ Бинга:

Чтобы код корректно работал в Twine 2 с использованием формата SugarCube 2 и отображал изображение, вам нужно использовать следующий синтаксис для вставки изображения:

 

<<set $randimg to random(4, 6)>>

<div style="text-align: center;">

    <img src="pic/($randimg).jpg" style="display: inline-block;">

</div>

 

Этот код устанавливает переменную $randimg со случайным значением от 4 до 6 и использует эту переменную в пути к изображению. Убедитесь, что ваши изображения находятся в папке pic вашего проекта Twine.

Ну, мы знаем как оно работает поэтому сразу пишем рекламацию: "это так не работает. Он создает ссылку на картинку такого вида: /pic/fignia/($randimg).jpg
===============================

Что нужно добавить, чтобы вместо текста $randimg было числовое значение переменной?

Ответ: Чтобы вместо текста $randimg отображалось числовое значение переменной, вам нужно использовать оператор <<print>> в Twine 2 с форматом SugarCube 2. Вот как это должно выглядеть:

 

<<set $randimg to random(4, 6)>>

<div style="text-align: center;">

    <<print '<img src="pic/' + $randimg + '.jpg" style="display: inline-block;">'>>

</div>

 

Оператор <<print>> здесь используется для вывода значения переменной $randimg как части строки, что позволяет динамически изменять путь к изображению. Убедитесь, что ваши изображения правильно размещены в указанной папке.
===============================

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

Поэтому еще один уточняющий вопрос: "а чтобы имя отображалос в виде (4).jpg?"

Ответ: "Для того чтобы имя файла отображалось в виде (4).jpg, вам нужно добавить скобки в строку пути к файлу. Вот пример кода, который должен работать в Twine 2 с использованием SugarCube 2:

 

<<set $randimg to random(4, 6)>>

<div style="text-align: center;">

    <<print '<img src="pic/(' + $randimg + ').jpg" style="display: inline-block;">'>>

</div>

 

Этот код установит переменную $randimg со случайным значением от 4 до 6 и выведет путь к изображению с учетом скобок вокруг числа. Таким образом, если значение $randimg будет, например, 4, то путь к изображению примет вид pic/(4).jpg. Убедитесь, что скобки являются частью имени файла в вашей папке pic.

 

вот теперь оно работает как мне нужно... Спасибо, Майкрософту, что не создает нам простых путей, вот теперь зато понятно, что вместо скобочек можно что угодно подставить. И как подставлять тоже ясно.

Новое матерное слово дня: "конкатенация" Это вот про вот эти вот скобочки с принтом " + " объединяющие элементы в одну строку

 

 

 

 

(will be screened)
(will be screened)
(will be screened)
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

Profile

blocknote

September 2025

S M T W T F S
 123456
78910111213
14151617181920
21222324 252627
282930    

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Powered by Dreamwidth Studios