Stránka 1 z 1

Lua začátečník - chyba v kódu

Napsal: 17 dub 2013 14:52
od funnyman
Ahoj,

prosím o vysvětelní, kde jsem neuzavřel "if" (program hlásí chybu " 'end' expected near break to close 'if' ")

Kód: Vybrat vše

function ai.foundPassengers(train,passengers)
   if train.ID == 1 then
      i = 1
      while i < #passengers do
         if passenger[1].destX > train.x then
            return passengers[1]
         elseif passenger[2].destX > train.x then
            return passengers[2]
         break
         end
      end
   elseif train.ID == 2 then
      i = 1
      while i < #passengers do
         if passenger[1].destX < train.x then
            return passengers[1]
         elseif passenger[2].destX < train.x then
            return passengers[2]
         break
         end
      end
   else
      return passengers[1]
   end
end

Re: Lua začátečník - chyba v kódu

Napsal: 17 dub 2013 15:01
od CZechBoY
čau,
ten break tam je k čemu? nepatří ani do jedný větve ifu takže je tam zbytečně a nejspíš syntakticky špatně
dej ho pryč :D
aha oni tam jsou 2, takže dej pryč oba dva :D

Re: Lua začátečník - chyba v kódu

Napsal: 17 dub 2013 15:05
od funnyman
aby přerušil ten while ... do, jsem myslel...

tak bez toho "break" se to rozjede, ale v průběhu to udělá děsivý výpis chyby, který zatím nechápu :)

Re: Lua začátečník - chyba v kódu

Napsal: 17 dub 2013 15:09
od CZechBoY
tak pošli eště tu chybu
ten cyklus přeruší ten return, to stačí...
return ti vyskočí z celý funkce (takže i z toho cyklu)

teda doufám, tenhle jazyk neumim :D

Re: Lua začátečník - chyba v kódu

Napsal: 17 dub 2013 15:51
od funnyman
rád bych, ale nedá se kopírovat a je to přes 300 znaků, nechce se mi to opisovat. je to z jedné hry, trainsportedgame.no-ip.org/ nedaří se mi projít ani přes tutoriál :)

Re: Lua začátečník - chyba v kódu

Napsal: 17 dub 2013 15:55
od CZechBoY
když se nedá kopírovat, tak aspoň screen

Re: Lua začátečník - chyba v kódu

Napsal: 17 dub 2013 17:59
od funnyman
Snímek obrazovky-trAInsported.png


to červeně tam...

Re: Lua začátečník - chyba v kódu

Napsal: 18 dub 2013 11:20
od CZechBoY
tak to nevim, je tam moc řádků napsanejch :D
to co je v prvním příspěvku je aktuální verze?

Re: Lua začátečník - chyba v kódu

Napsal: 23 dub 2013 18:19
od funnyman
dostávám chybu "attempt to get length of global "passengers" (a nil value) tímto kódem:

Kód: Vybrat vše

if #passengers == nil then
   print("nejsou")
end


jak tedy mám zjistit, zda je délka seznamu "passengers" žádná nebo nulová (nil znamená žádná, nebo i nulová?)

děkuji za odpověď

Re: Lua začátečník - chyba v kódu

Napsal: 25 dub 2013 15:46
od mederi
#passengers
Pokus o zistenie počtu prvkov nedefinovaného poľa vracia chybu.
Neviem presne, o čo ide v tej tvojej úlohe.

Kód: Vybrat vše

if passengers == nil then
   print("passengers je nedefinovaná globálna premenná. Tak ju definujem ako pole.")
   passengers={}
end
print("Počet pasažierov: " .. #passengers)

Keď som si tu všimol tvoju tému o Lua, tak som tu otvoril aj ja podobnú tému o VLC+Lua: VLC rozšírenia - Lua skripty
Pár užitočných odkazov uvedených na tom VLC fóre:
Lua tutorials: http://lua-users.org/wiki/TutorialDirectory
Wikipedia: Lua (programming language): http://en.wikipedia.org/wiki/Lua_%28pro ... anguage%29

Lua je ľahká klasika: premenné, cykly, podmienky, funkcie, ... - veľmi podobné napríklad PHP.