Skip to content

jonahwh/pitchcar_track_generator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

51 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PitchCar Track Generator

Generates all possible tracks, or a single random valid track, for PitchCar

Rules:

  • Tracks will always begin with a straight piece
  • Tracks must not overlap
  • Tracks must form a complete look
  • Track must not already have been found as a rotation

All possible values for a basic PitchCar set (10 curves, 6 straight pieces) are provided in pitchcar_tracks

  • Slw = Straight piece with left wall
  • Srw = Straight piece with right wall
  • R = Right Turn
  • L = Left Turn

Usage:

Generate all possible tracks

require 'pitchcar'
# tracks = Pitchcar::Pitchcar.find_all_tracks(STRAIGHT_PIECES, LEFT_RIGHT_PIECES)
tracks = Pitchcar::Pitchcar.find_all_tracks(6, 10)
tracks.first.to_s # => 'Slw Slw Slw Slw L Slw L Slw L R R L L R L L'

Find a random valid track

require 'pitchcar'
# track = Pitchcar::Pitchcar.random_valid_track(STRAIGHT_PIECES, LEFT_RIGHT_PIECES)
track = Pitchcar::Pitchcar.random_valid_track(6, 10)
track.to_s # => 'Slw Slw L Slw R R Slw Slw R L R R L Slw R R'

With size restrictions

require 'pitchcar'
# Either min or max can be omitted
track = Pitchcar::Pitchcar.random_valid_track(6, 10, { min: { x: 1, y: 2 }, max: { x: 5, y: 5 } })

Find n random valid tracks

require 'pitchcar'
# tracks = Pitchcar::Pitchcar.random_valid_tracks(STRAIGHT_PIECES, LEFT_RIGHT_PIECES, COUNT)
track = Pitchcar::Pitchcar.random_valid_tracks(6, 10, 4)
track.map(&:to_s) # => ["Slw Srw L R Srw L L Srw R L L Slw R Slw L L", "Slw L Slw L Slw R Srw L L R L Srw L R L Slw", "Slw R Slw Slw R Slw Srw L R R Srw R L R L R", "Slw Slw L Srw L R L Srw R L L Srw L R Slw L"]

With size restrictions

require 'pitchcar'
# Either min or max can be omitted
track = Pitchcar::Pitchcar.random_valid_tracks(6, 10, 4, { min: { x: 1, y: 2 }, max: { x: 5, y: 5 } })

About

Track Generator for PitchCar

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages