TLDR; what hardware does one need to turn on/off individual LEDs in a 10x10 square?
I've used a 74HC595 shift register for individual LEDs but I think that only allows eight outputs; for a 10x10 grid I think I'd need at least 20 outputs to pinpoint the x,y coord/LED to turn on or off.
I'm looking to create a digital version of the game battleship. Ideally, using a keyboard to enter the coords, and LEDs to light up 'hit' squares. There are multiple stepping stones along the way, keyboard interface, memory, how to 'place' the ships on the board but, to start I'm trying to wrap my head around the lighting of hundreds of individual LEDs.
In the standard game each player has 2 boards, one for their ships and tracking enemy shots at them and another board for tracking the shorts they've made toward their enemy. Each board is a 10x10 grid so we're looking at 10x10x2x2 coords, or 400. Breaking this up in to its minimal viable option, by removing the need for lighting the tracking board, I can half that number down to 200. I've also got 2 arduino's to play with so, hardware wise I could split the load and have each arduino only tracking the enemy shots incoming to the player, bringing the number down to 100 LEDs / arduino.
For background, coding wise, I'm competent enough but the hardware and electrical theory side of things is rough. I've tinkered with the arduino, following tutorials but I've never tried to create something whole cloth on my own.
Don't go down the rabbit hole of managing addresses, by the way. Treat your LED strings as arrays, and 'reformat' the arrays as needed. Pointers are in your future...
Addressable LEDs are probably the way to go. They are serially addressed "similarly" to shift registers but they don't require any driver circuitry. They are most-commonly sold as LED strips but you can buy them individually or in a matrix.
With a strip or matrix, all you need is the Arduino, the strip/matrix, and a power supply and you're ready to go! The hardware couldn't get much easier!
If you can use the pre-made matrix-dimensions and the physical size, that's "perfect". And of course they can be combined for a larger matrix.
Most addressable LEDs are RGB and dimmable.
The WS2812 (and related) is the most common type. It only has one data line (plus power supply and ground). No separate clock or latch.
The SK9822 (and related) has data & clock lines (which IMO makes programming easier) but again no latch so it's still different from shift registers.
I made a project with 48 single-color LEDs and 8 MAX6968 chips. They are "special" shift registers with higher current capability and built-in current-control so the LEDs don't need a series resistor. (I believe there is a 16-bit version but I have two separate "strings" of 24 LEDs, so I used 3 8-bit chips for each string.)
It was pretty easy and it could be easily expanded to 100 LEDs but I wouldn't want to go much beyond that. It also wouldn't be practical with RGB LEDs and they aren't individually dimmable. ...I'm actually "thinking about" re-designing my project with addressable RGB LED strips.
Note - The "regular Arduino" has limited memory and with a large matrix you can easily run out of memory to store images patterns, especially with RGB.
The power supply requirements (Amps) also add-up quickly with a large number of LEDs.
Memory use will be dependent on programming skill and Arduino chosen, of course. @spazcool What Arduino do you have, or intend to buy?
Heed the power warning - the LED strips will have a voltage and current rating. You'll find your project requires many amperes of current, given hundreds of LEDs. Don't skimp, you'll regret it. Remember to reference just the power supply negative, between the power supply for the LEDs and the power for the Arduino, or even better, power the Arduino and the LEDs from the same external 5V supply.
Somebody here will suggest the maximum number of Addressable LEDs you can manage, once you tell us your processor, but even that will require that you 'mind your knitting' in your code.
If you go for addressable leds, look to the WS2815. +12V => less current. They have a second dataline (WS2812 not). If one led stops, the seconds leds continue normally.
You'll be doing a lot of bit shuffling, then. I've got several thousand LEDs on the shelf, and the 7219 driver boards themselves, but to make use of the MAX drivers would entail making circuit boards, which I can do but don't have an interest in at this time. Handwiring the LEDs doesn't interest me. I've used Nanos almost exclusively, they suffer from the same memory boundaries as the Uno. Suit yourself.
Just use NEOPIXELS from adafruit (really just WS2812B or SK6812's). Each LED has a built-in shift register. I've done large order of hundreds. It was easy peasy. The biggest problem was powering them all.