sxrgini

CC: Roulette

Nov 6th, 2024 (edited)
30
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.69 KB | None | 0 0
  1. -- Roulette Game with Monitor Display in ComputerCraft Lua for Minecraft
  2.  
  3. -- Connect to the Advanced Monitor
  4. local monitor = peripheral.wrap("right") -- Change "right" to the side your monitor is on
  5.  
  6. -- Configure monitor settings
  7. monitor.setTextScale(1)
  8. monitor.clear()
  9.  
  10. -- Function to display a spinning effect on the monitor
  11. local function displaySpinAnimation(spinResult)
  12. local numbers = {
  13. {number = 0, color = "Green"},
  14. {number = 1, color = "Red"},
  15. {number = 2, color = "Black"},
  16. {number = 3, color = "Red"},
  17. {number = 4, color = "Black"},
  18. {number = 5, color = "Red"},
  19. {number = 6, color = "Black"},
  20. {number = 7, color = "Red"},
  21. {number = 8, color = "Black"},
  22. {number = 9, color = "Red"},
  23. {number = 10, color = "Black"},
  24. {number = 11, color = "Black"},
  25. {number = 12, color = "Red"},
  26. {number = 13, color = "Black"},
  27. {number = 14, color = "Red"},
  28. {number = 15, color = "Black"},
  29. {number = 16, color = "Red"},
  30. {number = 17, color = "Black"},
  31. {number = 18, color = "Red"}
  32. }
  33.  
  34. monitor.clear()
  35. monitor.setCursorPos(1, 1)
  36. monitor.write("Spinning the Wheel...")
  37.  
  38. -- Simulate spinning animation
  39. for i = 1, 15 do
  40. local spinIndex = math.random(1, #numbers)
  41. local numberDisplay = numbers[spinIndex].number
  42. local colorDisplay = numbers[spinIndex].color
  43.  
  44. monitor.setCursorPos(1, 3)
  45. monitor.clearLine()
  46. monitor.write("Number: " .. numberDisplay .. " | Color: " .. colorDisplay)
  47.  
  48. sleep(0.2) -- Adjust this for speed of the "spin"
  49. end
  50.  
  51. -- Display final result
  52. monitor.setCursorPos(1, 5)
  53. monitor.write("Result: " .. spinResult.number .. " - " .. spinResult.color)
  54. end
  55.  
  56. -- Function to spin the roulette wheel
  57. local function spinWheel()
  58. local numbers = {
  59. {number = 0, color = "Green"},
  60. {number = 1, color = "Red"},
  61. {number = 2, color = "Black"},
  62. {number = 3, color = "Red"},
  63. {number = 4, color = "Black"},
  64. {number = 5, color = "Red"},
  65. {number = 6, color = "Black"},
  66. {number = 7, color = "Red"},
  67. {number = 8, color = "Black"},
  68. {number = 9, color = "Red"},
  69. {number = 10, color = "Black"},
  70. {number = 11, color = "Black"},
  71. {number = 12, color = "Red"},
  72. {number = 13, color = "Black"},
  73. {number = 14, color = "Red"},
  74. {number = 15, color = "Black"},
  75. {number = 16, color = "Red"},
  76. {number = 17, color = "Black"},
  77. {number = 18, color = "Red"}
  78. }
  79. local spinResult = math.random(1, #numbers)
  80. return numbers[spinResult]
  81. end
  82.  
  83. -- Function to display betting options
  84. local function displayOptions()
  85. print("Welcome to Roulette!")
  86. print("Choose your bet type:")
  87. print("1. Bet on Color (Red or Black)")
  88. print("2. Bet on Number (0-18)")
  89. print("Type your choice and press Enter:")
  90. end
  91.  
  92. -- Function to handle betting
  93. local function getBet()
  94. displayOptions()
  95. local betType = tonumber(io.read())
  96.  
  97. local bet = {}
  98. if betType == 1 then
  99. print("Choose your color (Red or Black): ")
  100. bet.type = "color"
  101. bet.choice = io.read():lower()
  102. elseif betType == 2 then
  103. print("Choose your number (0-18): ")
  104. bet.type = "number"
  105. bet.choice = tonumber(io.read())
  106. else
  107. print("Invalid choice! Please try again.")
  108. return getBet()
  109. end
  110. return bet
  111. end
  112.  
  113. -- Function to calculate the outcome
  114. local function determineOutcome(bet, result)
  115. local win = false
  116.  
  117. if bet.type == "color" and bet.choice == result.color:lower() then
  118. win = true
  119. elseif bet.type == "number" and bet.choice == result.number then
  120. win = true
  121. end
  122.  
  123. if win then
  124. print("Congratulations! You won!")
  125. print("The winning result was " .. result.color .. " " .. result.number)
  126. else
  127. print("Sorry, you lost. Better luck next time!")
  128. print("The winning result was " .. result.color .. " " .. result.number)
  129. end
  130. end
  131.  
  132. -- Main game loop
  133. local function playRoulette()
  134. local playAgain = true
  135. while playAgain do
  136. local bet = getBet()
  137. local result = spinWheel()
  138.  
  139. -- Display the spin animation and result on the monitor
  140. displaySpinAnimation(result)
  141.  
  142. determineOutcome(bet, result)
  143.  
  144. print("Would you like to play again? (Yes/No)")
  145. local answer = io.read():lower()
  146. playAgain = (answer == "yes")
  147. end
  148. print("Thanks for playing Roulette!")
  149. end
  150.  
  151. -- Run the game
  152. playRoulette()
Advertisement
Add Comment
Please, Sign In to add comment