Jump to content

Depot mit wählbarem Richtungswechsel


Recommended Posts

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 to comment
Share on other sites

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...