Форум программистов, компьютерный форум, киберфорум
Наши страницы
Lua
Войти
Регистрация
Восстановить пароль
Показать сообщение отдельно
GR_IB
0 / 0 / 0
Регистрация: 20.12.2017
Сообщений: 2
0

Изучаю Lua - есть проблемы

20.12.2017, 15:03. Просмотров 384. Ответов 2
Метки (Все метки)

Всем привет!
Начал изучать Lua вместе с Corona SDK
В книге Роберата Иерусалимски в листинге 4.2 есть пример с goto, но Corona не позволяет его использовать. Как лучше переписать код под Lua 5.1, не использую goto, имея "таблицу" движения?
Пример из книги

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
goto room1 -- начальная комната
::room1:: do
    local move = io.read()
    if move == "south" then goto room3
    elseif move == "east" then goto room2
    else
        print("invalid move")
        goto room1 -- остаемся в этой же комнате
    end
end
::room2:: do
    local move = io.read()
    if move == "south" then goto room4
    elseif move == "west" then goto room1
    else
        print("invalid move")
        goto room2
    end
end
::room3:: do
    local move = io.read()
    if move == "north" then goto room1
    elseif move == "east" then goto room4
    else
        print("invalid move")
        goto room3
    end
end
::room4:: do
    print("Congratulations, you won!")
end
Допустим есть карта, в ней я как игрок определяю направления последовательного движения, например
map = { "south", "east", "north", "west" }
т.е. я сначала пойду на юг, потом на восток, потом на север, а потом на запад, далее я запускаю игру и проверяю верна ли моя карта
room1( map )
далее код должен проверить могу ли я пойти в первой комнате в первом направлении - на юг, если да переходим к следующей комнате, если нет - карта не верная, игра окончена и так до последней четвертой комнаты.

Что мне пришло в голову:

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
map = {[ "south" ] = 1, [ "east" ] = 2, [ "west" ] = 3, [ "north" ] = 4}
 
function room1()
    local move = math.random( 1, 4 )
    if move == map[ "south" ] then return room3()
    elseif move == map[ "east" ] then return room2()
    else
        print( "invalid move" )
        return room1()
    end
end
 
function room2()
    local move = math.random( 1, 4 )
    if move == map[ "south" ] then return room4()
    elseif move == map[ "west" ] then return room1()
    else
        print( "invalid move" )
        return room2()
    end
end
 
function room3()
    local move = math.random( 1, 4 )
    if move == map[ "north" ] then return room1()
    elseif move == map[ "east" ] then return room4()
    else
        print( "invalid move" )
        return room3()
    end
end
 
function room4()
    print( "Congratulations, you won!" )
end
 
room1(map)
Но этот код не подходит, грубо говоря, требованиям моего консультанта по обучению.

Please help! Хотя бы куда копать. Уже голову себе сломал.

Заранее спасибо!

Вернуться к обсуждению:
Изучаю Lua - есть проблемы
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.12.2017, 15:03
Готовые ответы и решения:

Проблемы с интегрированием LUA
Дотянулись ручки до этого. Но и в общем дальше никак не идет. Скачал исходники...

Есть Lua скрипт но он не запускаеться а код не читаем
Здравствуйте есть lua скрипт помогите его раскодировать,он когда в блокноте или...

LUA + C++
Привет всем :) я чото не понимаю чо у меня выевляется ошибки luaavg.obj...

Lua шифрование
Здравствуйте, есть такая задачка, кто-то сможет помочь? В файле содержатся...

Парсинг lua
Здравствуйте форумчане,меня озадачило такой задачей,нужно из текста Client...

2
Другие темы раздела
Lua Не могу правильно понять какие результаты возвратят функции с логическими операторами http://www.cyberforum.ru/lua/thread2147815.html
Добрый день! Сам программирую на С++, с Lua знаком буквально 3 дня. У меня есть пример работы функции, написанной на Lua, эту функцию я должен реализовать внутри класса своего проекта. Столкнулся...
Lua C#_lua using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using NLua; namespace Nlua http://www.cyberforum.ru/lua/thread2144187.html
Lua Как менять цвет функций активации в Trainer
Всем привет, я делаю трейнер с помощью Cheat Engine, но застрял с кодом Lua на изменения цветов на функции активации в Trainer. Как написать не хватает знаний сам код не сложный нужно только...
Ищу скриптера Lua
Ищу скриптера для РП проекта в МТА
Lua Uninspected symbol near "?" http://www.cyberforum.ru/lua/thread2082117.html
Добрый день! Во время заливки кода в ESP8266 вылетает таймаут, а при выполнении кода uninspected symbol near "?". Где он нашел "?", я так и не понял. bme280.init(3,4)--SDA,SCL pin--выводы для...
Lua Сортировка таблицы с объектами Здравствуйте. Есть таблица вида Table = { = { id = 1 value = 165 name = "В упаковке" }, = подробнее
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru