Jump to content

Depot mit wählbarem Richtungswechsel


Empfohlene Beiträge

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto besitzen, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen.

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...