A twist amount is calculated based on an angular velocity around a Z-axis of an input device when a player performs a shoot operation. Based on a value of a difficulty level stored in an external main memory, a minimum successful twist amount and a maximum successful twist amount are determined. As a result, the higher the difficulty level is, the narrower a successful range of the twist amount becomes. Further, the twist amount of the input device, which is obtained when the player performs the shoot operation for a first to a fourth shots, is stored in the external main memory. When the player performs the shoot operation for a fifth shot or thereafter, the twist amount of the input device at the time of the shoot operation for the fifth shot and thereafter is corrected with the use of the twist amount of the first to fourth shots.