#How can I make a scoring system for my bowling game

176 messages · Page 1 of 1 (latest)

dusty yarrow
#

I have little/zero experience with Cv2 and I want to make a standard bowling score system. Any type of help is appreciated

#

I already have a way of telling whether a pin is standing or not using a trigger volume but I don't have any idea how to save the data of previous frames, nor how to add the values of strikes and spares

fallow roost
#

Kinda the Same problem here for me

#

Strike and spares are so hard

#

Like it saves bonus for 1/2 throw and shit

next lintel
fallow roost
#

When they fall they're no longer in

next lintel
#

I dont like trigger volumes

fallow roost
#

💀

next lintel
#

they work most the times

fallow roost
#

List of objects work tho

next lintel
#

but when they stop working, it sucks

next lintel
fallow roost
#

Now the only part that's too hard is the spare/strike part

#

I'm also kinda struggling

next lintel
#

Give each pin the tag like, p0l0, which means "Pin 0, Lane 0"
or p6l7 which means "Pin 6, Lane 7"

fallow roost
#

Oh it's 1 lane for me

#

But the OP asked for the score system, pretty sure he already did the pin system

next lintel
#

it might be better to have 2 different tags

p6l7, and l7 "Pin 6, Lane 7" and "Lane 7"

This way you can grab a single pin in a single lane, or just every pin in a single lane

fallow roost
#

Could you just help for the strike/spare system, that's where we're both kinda confused

#

Having a bonus for 2 rounds etc

#

Should we have a variable for each throw

#

Or each "round"

next lintel
#

could make a list

#

string variable might be better

fallow roost
#

Not sure if that would be better

next lintel
#

0/0 means you have played 1 round and scored 0 points
0/0\0,10 means you played 2 games of 2 rounds, you got 0 points, then points, and 0 points, then a spare

fallow roost
#

Wut...

next lintel
# fallow roost Wut...

Well, what do you need as the score system, a way of tracking score, or a way of detecting how many pins you knocked down?

fallow roost
#

The problem is strike and spare

#

Basically it gives a bonus for the 2 next rounds

#

Also meaning that de scoreboard updates 2 round late

next lintel
#

i dont know enough about bowling to know this

fallow roost
#

Yeah

#

Quick explanation
Spare=bonus for the next throws

#

Strike for the 2 next throws

#

So if you strike then score 7 and 2

#

You will have 19

next lintel
#

yeah man idk enough about bowling lol

#

the one thread I couldnt help RRwah

fallow roost
#

Well that's all you need to know lol

#

The rest is normal

next lintel
#

oh and jok's thread about finding Y

fallow roost
#

Just 1 point for 1 pin

#

Can you help with what I told you for the rules

#

Those are all the rules

#

The other ones are just the ones that everyone already knows

echo blaze
#

i think this explains the scoring for spares and strikes pretty well

fallow roost
#

Yep now the hard part is to put it in rec room

#

It's so hard

echo blaze
#

i think implementing it in an actual programming language could help with figuring out how to implement it in rec room

#

because youve already solved the problem of actually making it but you just now have to figure out the correct chips to use

fallow roost
#

Not really tbh

#

Don't know even with code how I would do it

solemn marlin
#

I'm fairly good with scoring systems, I just need a bowling room that works with cv2

fallow roost
hollow sedge
#

I can give a Bowling Score chip a shot later tonight. Initial thoughts: bowling scoring can have some logical complexity that may spike CPU heat 15-20% for a single CV2 tick, but only when you log a new turn. Questions for you: Is this spike too much? Complex optimization may help, but dealing with this spike (which will only occur when you log a new turn) on your end will be easier. If this spike is too much, would it be acceptable to spread out the processing to multiple CV2 ticks (by using delays to transfer execution to another tick, relieving some CPU heat). My thinking is that the chip will have very few input ports: Log Turn (Exec), Pins Knocked This Turn (Int), Reset Game (exec). The output pins would be all the data you need to make a bowling scoreboard. So you will have the data, but building your own scoreboard is still on you. This chip would purely be for tracking a game of bowling. cc: @fallow roost @dusty yarrow

fallow roost
#

We just need spare and strike system

hollow sedge
#

I’ll throw in a utility chip where you can plug in the frame output in and it’ll tell you if you had a spare or strike that turn as well.

fallow roost
#

Cause i thought about that but also thought it would be too annoying

hollow sedge
# fallow roost So do you just use a lot of variables

A lot of variables or a smaller number of lists. Maybe some event sender/receiver to store some calculated values for final output that aren’t required for the inner-circuit logic. (Frame X Total Score - INT output) for example.

#

But the annoying part is on every throw you need to have a system to check if: the current throw is the first or second throw of the frame. If it’s the second, check if last frame was strike. If it’s first, check if last frame was strike or spare. If it’s strike AND current frame is on first throw, check two frames back to see if it’s a strike.

#

Modify the scores as you go

#

I’ll try to finish it tonight. It’ll be some effort.

fallow roost
#

What if I had a if value in a if value checking if it's spare or bowling

#

If it's spare then it will take the next throw

#

If strike the 2 next ones

#

Also having to save every throw instead

#

Wait why did I say if value

#

Just if

#

Mb

hollow sedge
fallow roost
#

@hollow sedge just making sure

#

Variable are different in Each board right

#

So copying board would make able to gain time by not renaming

hollow sedge
#

I leave the networking ambiguous so you can control that outside of this chip.

fallow roost
#

You just did all of that?

#

Man if this really work

#

Mind maybe helping me out

#

Like putting it in my room

#

You can always maybe get a % we'll see

hollow sedge
#

I’ll probably publish for free so any others can modify and improve if they want. I’m not going for hard optimization right now. Some, but not a lot.

fallow roost
#

Nah that's not for free 😧

#

That deservers a nice 500 tokens

hollow sedge
#

Just need to work on some frame 10 stuff. Frame 10 can have a second play which is another weird random rule of bowling

fallow roost
#

Actually

#

3 plays

#

Others have 2

hollow sedge
#

3 throws

fallow roost
#

Yep

hollow sedge
#

But only if throws 1 + 2 = 10 pins

fallow roost
#

You can make 3 strikes.

#

You have 3 anyway

hollow sedge
#

True

fallow roost
#

Frame 10 is like having 3 frame of 1 throw

#

Kinda

hollow sedge
#

But it can also be a normal frame if no strike or spare happened

#

Bowling has some goofy rules

fallow roost
#

Yeah kinda

#

Do you think you could help

#

The room we making is reallyyy hugr

#

Huge

#

Got a 5k+ people event

#

Even geckovr coming

hollow sedge
#

Idk any players by name like that. I’m fairly new still

#

What’s the room for? Let me finish this chip and see if it works for you first

fallow roost
#

Oh

#

Gecko vr is certified

#

On rr

#

He got like 60k subs i think

#

And 90k on youtube

#

So @hollow sedge ?

hollow sedge
#

We can talk when I finish chip later. Need to work on 10th frame issues

fallow roost
#

K

hollow sedge
fallow roost
#

well

#

If that rly works

#

God dayum

hollow sedge
#

Input is simple. You just execute with the INT set to the last number of pins knocked. Chip will track frame and scores and all the data needed to make a scoreboard that you would see in bowling alley

fallow roost
#

So the lists are every throw of the frame

hollow sedge
#

Yes

#

1 or 2, except last frame can have 3

#

Sometimes

fallow roost
#

Not sure but i think it would be good to have something for each throw...

#

Cause if you get a strike bonus

#

And it lasts for 2 throws

hollow sedge
#

All bonuses are calculated within the chip

fallow roost
#

OH

#

god damn

hollow sedge
#

You tell the chip how many pins are knocked, this chip tracks the entire game for you

fallow roost
#

Can I see the circuits

hollow sedge
#

Don’t have a clear picture and I have Use Only for now. I might need to make minor adjustments if you find any flaws

#

Stretches beyond the frame of this picture

fallow roost
#

How many variables ?

hollow sedge
#

A lot

fallow roost
#

So 1 for each throw

#

1 for each result

hollow sedge
#

Not quite

fallow roost
#

hmmm

#

wdym

hollow sedge
#

Either way, test it out. It should work

#

I use some lists which holds more data than individual INT. But I also use individual INT cars too

#

I think 23 vars

fallow roost
#

Is the frame total frame 1+2 for the 2nd frame?

hollow sedge
#

Can reduce more with lists but didn’t want to

fallow roost
#

Oh

#

So frame 10 total Can be 200 for example

#

Oh Fuck you dyno

hollow sedge
#

Yes

#

Like bowling alley

#

How each frame shows the current score at that point in the game

#

All data is there to make scoreboard and track bowling game

#

Try it

fallow roost
#

Now last hard thing would be to update the scoreboard depending of the spare/bowling

#

Could you have a bool output knowing if there's currently a strike active
And one for spare

hollow sedge
#

Last Throw Strike (Bool)

#

Last Throw Spare (Bool)

#

Makes sense

#

But that can be calculated from frame output at well technically

fallow roost
#

There can also be multiple strike at the same time right?

hollow sedge
#

If Frame 3 Score Equals 10 And Frame 3 Throws list count 1 means strike and 2 means spare

#

So spare and strike can be derived from chip output

fallow roost
#

The bonus for 1 throw (spare) and 2 (strike) works 100%?

hollow sedge
fallow roost
#

Well ok then

hollow sedge
#

Test it against some online bowling score calculator

#

Same inputs and check outputs

hollow sedge
fallow roost
#

I dm you a few days ago