If you look at the variables (since the are either boolean - either true or false) you can invert their meaning if they are prefixed by a !.
So like !archerAwake is read as not archerIsAwake which basically means archerSleeps transforming a if(!archerIsAwake... to if(archerSleeps....
Look at the description of the instructions:
Signal prisoner: the prisoner can be signalled using bird sounds if the prisoner is awake and the archer is sleeping, as archers are trained in bird signaling so they could intercept the message.
edit: I just noticed you can archieve the solution with just one single IF block π

