Jump to content

Recommended Posts

Posted

Hallo,

eigentlich ist es mehr ein Feature-Wunsch aber ich stelle es erst einmal zur allgemeinen Diskussion.

Die Ausgangslage:
Bild001.thumb.jpg.1591c5e8af733c8be659753a2952f176.jpg

Die Aufgabenstellung:
Die blauen Loks sollen immer vorwärts aus dem Depot kommen
Die roten Loks sollen die Fahrtrichtung beim Verlassen des Depots umkehren (vorwärts-rückwerts-vorwärts.....) (Schlagwort ""RiWe")
Bei Betätigung des Tasters: nächste (zufällige) Lok aus dem Depot entlassen

Der Versuchsaufbau:
Bild002.thumb.jpg.0ac8233f317ad17d23aa486628671ff2.jpg

Der Wunsch:
Die Aufgabenstellung mit einem Depot erfüllen.

Für 2 Depots habe ich diese Lösung:
Gleiskontakt wird betreten:

if vehicle.variables["RiWe"] then
  $("Depot 2-"):add(vehicle)
else
  $("Depot 2+"):add(vehicle)
end

Schalter wird betätigt:

local Dp=$("Depot 2+")
local Dm=$("Depot 2-")
local Liste={},{}
print(Dp.count,Dm.count)

if Dp.count>0 then
  for i=0,Dp.count-1 do
    table.insert(Liste,{Dp,i})
  end
end
if Dm.count>0 then
  for i=0,Dm.count-1 do
    table.insert(Liste,{Dm,i})
  end
end

if #Liste>0 then
  for i=1,#Liste do
  print("Liste",Liste[i][1].name,Liste[i][2])
  end
  local x=math.random(1,#Liste)
  print("Auswahl",Liste[x][1].name,Liste[x][2])
  print()
  Liste[x][1]:release(Liste[x][2],Dp)
else
print("Depots sind leer")
end

-----------------------------------------------------------------------------

Für ein Depot habe ich eine Wunschlösung:
Wenn man auf diesen Parameter des Depots in der EV zugreifen könnte...
Bild003.jpg.5e3022ca7456973f40e38a8a8054f9d5.jpg

... würde Gleiskontakt wird betreten so aussehen:

$("Depot 1"):add(vehicle)

Taster wird betätigt so
 

local function intable(t,x)
  for i,v in ipairs(t) do
    if v==x then
      return -1
    end
  end
  return 1
end

local Depot=$("Depot 1")
local riwe=Depot:getEntriesByKeyword("RiWe")
if #riwe>0 then
  local x=math.random(0,$("Depot 1").count-1)
  for i,v in ipairs(riwe) do
    print("Index riwe",v)
  end
  print("Depot:release("..x..","..intable(riwe,x)..")","<=Wunschaktion")
  print()
  -- noch keine Lösung mit einem Depot
else
  print("Depot 1 ist leer")
end

... die Wunschaktion wird derzeit nur als print-Ausgabe erzeugt...

Bild004.jpg.b34bfe37cae80d73d44c408952612d65.jpg

Dies wäre meine Diskussionsgrundlage.
Depotproblem01.mbp

Meinungen und Anregungen gerne.
(Hinweis: Die Loks sind nur exemplarisch... es können auch ganze Züge sein)

Gruß
EASY

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...