When the computer picks up a charge on a particular wire, it knows that the joystick is in the right position to complete that particular circuit. Pushing the stick forward closes the "forward switch," pushing it left closes the "left switch," and so on. In some designs, the computer recognizes a diagonal position when the stick closes two switches (for example, closing the forward switch and the left switch simultaneously would mean a forward/leftward diagonal position). The firing buttons work exactly the same way -- when you press down, it completes a circuit and the computer recognizes a fire command.
This design communicates joystick motion in a sort of shorthand -- it processes movement as absolute values instead of subtle gradations. In other words, it can't distinguish between pressing forward on the stick a little bit and pushing it as far as it will go -- there is only one value for forward.
This is fine -- even ideal -- for some games. It's the perfect design form something like Pac Man or Tetris, for example. But it can be fairly limiting for other games, such as flight simulators. In the next section, we'll look at the conventional analog joystick design that can pick up on subtle shifts in position.