Souiller -by David Stockburger Premise: -Souiller is an enhancement of the classic game nibbles in which the snake pollutes its environment with excrement as you progress, creating obstacles. Features: -3 difficulty settings -optional time limit -continuously evolving game play environment Controls: -Use the directional keys to control the snake. -Use [ENTER] affirm menu selections -Use [ESC] to quit current game, repeat to exit program. Options: -The first option upon running the game is timer setting. Selecting "Timed" enables inter-eating time limit. Select "Untimed" for no such limit. -The next menu sets skill level: "1,2, or 3" difficulty increasing with number value. Skill Level "1": -snake defecates after eating three times -inter-eating time limit of 87 cycles (if enabled) Skill Level "2": -snake defecates after eating two times -inter-eating time limit of 65 cycles (if enabled) Skill Level "3": -snake defecates after eating each time -inter-eating time limit of 52 cycles (if enabled) Playing the Game: -Immediately after selecting skill level, the snake will emerge from any one of the board's corners. -Controls are like any other nibbles game. The snake can only go up, down, left or right. (Here, there is no halting death.) -If timer is enabled, the bottom row of pixels on the game screen will serve as the meter; black when full, receding from right to left. -Once the food is eaten new food will instantly appear at random coordinates, the snake will defecate (depending on skill setting) and (if enabled) the timer will reset. -Game continues until: colliding with one's own body, wall, or feces; or time expires. -Once a game has ended you are confronted with a dialog box. Choosing "play" offers skill level select before the next game; toggling the timer is available with the third dropdown option. Hints\Notes: -The refresh rate is as fast as I was able to make it in order to accommodate a snake of unlimited length, and sharing code for both timer modes. (Enabling the availability of timed play reduced speed of unmetered play by a mere 2%.) -Playing with a time meter, unfortunately, reduces speed to roughly 80% of unmetered play. All for having to draw a blank 1.8-3 pixel line; though, having a visible meter has its advantages. -I believe the controls to be responsive, keeping in mind the program records only one key log a cycle; therefore pressing the same key in quick succession will lock in that value for the next iteration, causing a temporary unresponsiveness if attempting to turn the snake. -As a game progresses and the screen fills with feces and the snake's body, play might pause briefly after eating, as the placement of the next food is being calculated because of the random number generation in the algorithm. Collision with an obstacle, as a result of unresponsiveness due to an isolated loop, can often be avoided by repeatedly pressing the direction of evasion, leaving you vulnerable to a follow-up unresponsiveness. This can be problematic in situations where food is located amongst obstacles requiring turns being made in immediate succession. -As a remedy for potential unavoidable deaths, I plan to allow the movement of the snake to continue without placement of food while a spot is being tested, in the future. For this release I have resigned to maintain optimal speed. -The only bug in this program, besides the issue described above, occurs when food is placed in the immediate path of the snake's head, resulting in eating without that portion going to the tally of value of food eaten determining the instant of excretion. The way I've written, the snake can't grow and "hold" simultaneously. This results in a new food placement, one point added to the player's score, and life continues. -This program has been optimized for speed and file size. Variables bundled in matrices were a detriment to both, and altered for this release, resulting in many arbitrary single- character variables. Further refinements to the code were done after this conversion; though what remains of the original anyone is welcomed to have. snausage9999@hotmail.com