Advertisement
Guest User

Untitled

a guest
Jul 20th, 2017
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 3.88 KB | None | 0 0
  1.  
  2. -- Dessa variabler definierar förutsättningarna (svårighetsgraden)
  3. local maxCommands = 10
  4. local gravity = 10
  5. local safeSpeed = 10
  6. local startFuel = 500
  7. local startHeight = 1000
  8. local maxBurn = 20
  9.  
  10. -- Dessa variabler definierar raketens nuvarande status
  11. local rocketInAir = false
  12. -- Lägg till variabler för raketens nuvarande höjd, bränsle och hastighet
  13.  
  14. local rocketcurrentHeight = 0
  15. local rocketcurrentFuel = 0
  16. local rocketcurrentSpeed = 0
  17.  
  18. -- Lägg till variabler för simuleringens tid och antal använda kommandon
  19.  
  20. local rocketsimulatedTime = 0
  21. local rocketusedCommands = 0
  22.  
  23. -- Lägg till en variabel för huruvida du har lyckats landa säkert eller inte
  24.  
  25. local rocketsafeLanding = false
  26.  
  27. if not rocket then
  28.     rocket = {}
  29. end
  30.  
  31. -- Kolla om variabeln SAVED_rocketHistory finns och skapa den som ett tomt table om den inte finns.
  32.  
  33. SAVED_rocketHistory {}
  34.  
  35. -- Detta är alltså den variabel som skall sparas mellan omstarter av WoW.
  36.  
  37. local function handleGroundHit()
  38.     -- Sätta variabeln rocketInAir till falskt.
  39.    
  40.     local rocketInAir = false
  41.    
  42.     -- Kolla om du landade säkert eller krashade.
  43.     -- Sätt variabeln för säker landning till sant om du lyckades.
  44.     -- Skriv ut meddelanden om hur det slutade samt hur mycket bränsle och kommandon du hade kvar.
  45.     -- Spara resultatet i rakethistorien om det är slut.
  46. end
  47.  
  48.  -- Skapa en lokal funktion som heter moveRocket och som tar ett argument - hur mycket raketen gasar (burn).
  49.     -- Denna funktion ansvarar för den "fysiska" förflyttningen av raketen och kontroll mot marken.
  50.     -- Den skall inte gå att anropa direkt från WoW utan används bara i denna fil och är därför local.
  51.    
  52.     -- Uppdatera raketen, dvs dess bränsle, hastighet och höjd, samt den tid som har gått sedan starten.
  53.     -- Uppdateringen gäller exakt ett (1) helt tidssteg.
  54.     -- Hastigheten ökar med gravitationen och minskar med gas (burn).
  55.     -- Kom ihåg att man inte skall kunna gasa mer än maxBurn, eller med än vad man har bränsle till!
  56.  
  57.     -- Skriv ut tid, hastighet och höjd för detta tidssteg
  58.    
  59.     -- Kolla om du har träffat marken
  60.     -- Anropa du funktionen handleGroundHit om du har träffat marken.
  61.     -- Returnera falskt om du har träffat marken, annars sant. Dvs sant om man kan fortsätta.
  62. -- Slut på funktionen
  63.  
  64. function rocket.drop()
  65.     -- Nollställ alla raket-status-variabler, inklusive tid, säker landning och använda kommandon.
  66.     -- ... och sätt rocketInAir till sant
  67.     -- Skriv ut startmeddelande med förutsättningarna
  68. end
  69.  
  70. function rocket.command(burn,duration)
  71.     -- Kolla att raketen är i luften - annars kan man inte ge den kommandon.
  72.     if not rocketInAir then
  73.         print("Ingen raket i luften nu - släpp en ny raket först.")
  74.         return
  75.     end
  76.     -- Se till att man inte gasar mer än man kan
  77.     if burn > maxBurn then
  78.         print("Du försökte gasa mer än vad som är möjligt. Gas satt till max: "..maxBurn)
  79.         burn = maxBurn
  80.     end
  81.     -- Uppdatera raketen så många tidssteg som duration säger (med en loop)
  82.     -- Använd funktionen moveRocket som du har skrivit ovan för att flytta raketen ett tidssteg i taget med en viss gas.
  83.     -- Avbryt loopningen om moveRocket returnerar falskt. (Dvs, om du har nått marken).
  84.  
  85.     -- Uppdatera antalet använda kommandon
  86.     -- Kolla om du fick slut på bränsle eller har slut på kommandon. Skriv ut det i så fall.
  87.     -- Kolla om raketen fortfarande är i luften och du har slut på något av det ovan:
  88.         -- Låt raketen falla fritt genom att anropa moveRocket med 0 i gas tills marken är nådd.
  89.  
  90.     -- Kolla om raketen fortfarande är i luften (rocketInAir)
  91.         -- Om den är det så skriv ut hur många kommandon och hur mycket bränsle du har kvar
  92. end
  93.  
  94. function rocket.printHistory()
  95.     -- Skriv ut rakethistorien
  96. end
  97.  
  98. -- Skriv en funktion som heter rocket.clearHistory och gör det nedan när den anropas:
  99.     -- Nollställ rakethistorian
  100. -- Slut på funktionen - den är enkel ;)
  101.  
  102. print("Rocket.lua loaded")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement