This is a variant of the classic problem of m prisoners n lights. (Example may be found here but note that the requirements are not exactly the same)
The goal for you, however, is different. You want to challenge the system and overcome the restriction on communication, and talk to your fellow users with the lights as a medium. It might even relieve some of your loneliness.
One day, 10 puzzling.SE users, including you, find yourselves in a horrible prison.
A supervisor shows up and tells you about a game that you have to follow. For now, you may communicate freely and devise a plan. After the game begins, however, you will each work in isolation.
There is a room with 3 lights with switches. In random, each of you will be taken into the room. When inside, you will be able to see the state of the 3 lights, and you will be able to turn on/off the lights at will.
The original goal of the game is not important for now. The thing is, you want to still be able to communicate freely during the game. So you want to set up a chatroom, in which arbitrary conversation can take place, just using the lights.
Can you devise a protocol for this?
Details:
A chatroom means anyone can broadcast an arbitrary message in a string of bits, and anyone may broadcast a reply to that first message, and anyone may reply to the second message, and so on. This means everyone's message is not pre-determined and may depend on what other people send.
You will only need to create a 'hardware-level' protocol; it just needs to be clear that the chatroom can be built on top of it. Master-slave architecture? decentralized architecture? You decide.
Each of you may follow a different plan.
The initial state of the lights is unknown. The 3 lights have no state other than on and off.
The 3 lights are your only medium of communication, and it's not possible to see them from outside. This basically means only one will be able to receive and send information at a time.
Each person will be taken inside multiple times. You will keep getting taken inside.
It is impossible to know, between two entries, whether anyone else has entered, or how many has entered.
'Random' means picking one uniformly randomly each time. However, a plan that fails sometimes, even with arbitrary low probability, is not acceptable. Your goal is to keep the chatroom, and allow each finitely long conversation to be done in finite time, with probability 1.
Extra credit:
- Does your plan work for arbitrarily many people? (It may be easier to work on this extra credit than the original; I'm not sure.)
- Can you make do with only 2 lights?
I already know the solution to the above, including the extra credits. So it's possible. Challenge for you.
It may be helpful to write a program to check for possible off-by-one errors and the like. Generators in, for example, Python and JavaScript are your friend.