I've been having a bit of a go at making a twin-sized blankets with odds and ends of worsted weight yarn. Maybe around 60 yards per square.
Using size 7 needles (I knit pretty loosely, so you may find you want to go up a bit in size).
For the first square, I cast on 48 stitches with a stitch marker placed in the middle.
Each row after - I slipped the very first stitch with yarn in front, then I knit to the stitch marker, slipped it, did an SSK, and then knit to the end of the row. Repeated until I only had two stitches left - and just did a P2Tog (though I imagine an SSK or K2Tog woutld work as well, it's just with the yarn in front after turning for that last row, it was just easier to P2Tog.
Subsequent squares in the same row - or starting a new row - I would pick up & knit 24 stitches off of an existing square, and cast-on the 24 needed to start another square. Subsequent squares in an existing row, I could pick up and knit 48 stitches from two existing squares.
I'm weaving ends in as I go ... and if a scrap of left over yarn doesn't make the whole square - I'd switch, or add a stripe... and have some fun with it.
I did do a 4-color square once (probably won't do that one again, it was more weaving in than I enjoyed.
I did it by casting on/picking up 12 stitches in color 1; 24 stitches in color 2; 12 stitches in color 3... made sure in each row to wrap the color I was working in around the next color and worked the decreases until there was no more color 2. Then switched all stitches in the next row to color 4. It was an experiment ... and it was ok. And it did let me use ever decreasing amounts of yarn - say 15 yards -ish each. But, yeah... I think I'd rather just crack open another skein of yarn vs trying to use such tiny left overs.
As you can see, it's not finished quite yet... Plan is to do 20+ rows of 10 squares each. It goes fast than one would think, but it's still one of those things that can get tiring after a bit. So four squares here, two squares here... bit by bit, it's growing.