Page 1 of 1
Can you help me with something, please?
Posted: Tue Jun 05, 2018 10:29 pm
by Mateus
Hey guys,
I am reamking a slot machine game called Multiplay81.
You probably don't know how slot games work so let me write down a quick introduction.
This specific game has 81 pay lines.
Pay line = 3-4 matching symbols from left to right.
81 lines on 4 reel game means any combination from left to right is a winning combination.
Example:
The problem:
I don't really want to write down all 81 lines and define them one by one. I am sure there is a way to do it faster with loops.. I just couldn't do it.. or am I just too lazy? Doesn't matter..
Also, there is a WILD symbol, that counts as any other symbol if there is winning combination on that specific line with the WILD symbol.
I would also appreciate if someone could help me with how to check if there are any win lines, and move them to array.
Thank you, if u're so kind and want to help, I can provide more info.
Re: Can you help me with something, please?
Posted: Tue Jun 05, 2018 10:54 pm
by grump
So it's basically just the count of each symbol, going from left to right?
Do you have some kind of representation of your reels and symbols already? It's certainly doable with loops, it just depends on how your code represents the game elements. You basically loop over the reels from left to right and increase a distinct counter for each symbol. Place some kind of stop marker if a reel does not have a symbol that was on a previous reel, and use it to stop counting that symbol. At the end, add the count of wildcards to the count of all other symbols.
I'm not sure I fully understood how this machine works though.
BTW, I love slot machines - please post the game once you have finished it!
Re: Can you help me with something, please?
Posted: Tue Jun 05, 2018 11:28 pm
by Mateus
Hey grump, thank you for your response!
I will post the game after, for sure!
Now to get technical,
after the spin ends, the symbols are in 4 arrays (4 reels).
Slider[1-4]. Where Slider[1][1] is the top symbol in the first reel. (Just to make it clear, Slider[1][3] would be the bottom symbol on the first reel).
For some reason I just can't use my brain like I used to (lol). Would be super cool to see some code examples on how you would aproach it.
Thanks!
Re: Can you help me with something, please?
Posted: Wed Jun 06, 2018 12:29 am
by pgimeno
Here's my take (needs
hump.timer):
Code: Select all
local timer = require 'hump.timer'
local fruits = {"watermelon", "blueberry", "grapes", "lemon", "orange",
"cherry", "bar", "7", "*"}
local screen = {}
local marks = {}
local finished = true
for i = 1, 3 do
screen[i] = {}
marks[i] = {}
end
local function nextRound()
for i = 1, 3 do
for j = 1, 4 do
screen[i][j] = fruits[love.math.random(1, #fruits)]
end
end
end
local function matches(a, b, c, d)
local kind
if a == "*" then
if b == "*" then
if c == "*" then
return true
end
kind = c
else
kind = b
end
else
kind = a
end
assert(kind)
return (a == kind or a == '*') and (b == kind or b == '*')
and (c == kind or c == '*') and (d == kind or d == '*')
end
local function clearMarks()
for i = 1, 3 do
for j = 1, 4 do
marks[i][j] = false
end
end
end
local function findLines(wait)
finished = false
wait(1)
for c1 = 1, 3 do
local fruitC1 = screen[c1][1]
for c2 = 1, 3 do
local fruitC2 = screen[c2][2]
for c3 = 1, 3 do
local fruitC3 = screen[c3][3]
for c4 = 1, 3 do
local fruitC4 = screen[c4][4]
if matches(fruitC1, fruitC2, fruitC3, fruitC4) then
marks[c1][1] = true
marks[c2][2] = true
marks[c3][3] = true
marks[c4][4] = true
wait(2)
clearMarks()
end
end
end
end
end
finished = true
end
function love.update(dt)
if finished then
nextRound()
timer.script(findLines)
end
timer.update(dt)
end
function love.draw()
for i = 1, 3 do
for j = 1, 4 do
if marks[i][j] then
love.graphics.setColor(1, 0, 0)
else
love.graphics.setColor(1, 1, 1)
end
love.graphics.print(screen[i][j], j * 150, i * 10)
end
end
end
function love.keypressed(k) if k == "escape" then return love.event.quit() end end
I think your rows and columns are swapped with respect to mine.
Re: Can you help me with something, please?
Posted: Wed Jun 06, 2018 12:31 am
by Mateus
Hey pgimeno,
thank you for your reply!
I just finished my code, it was super simple, can't belive it took me so long to figure it out.. it is very similar to what you posted.
I must say that your replies helped me! Thank you very much!