Files
ioccc/1992/kivinen/README.md
T
Cody Boone Ferguson ac1334c84d Make 1992/kivinen/kivinen.c alt code
Originally the main version was changed to have a call to usleep(3) as
the game moves so fast. It was discussed a while back however to in
cases like this to make it so that the build/use/try sections refer to
the alt code and then instead of an alternate code section have an
original code section. Because of this the modified code was changed to
be an alt version and then restore the original with the fixed code.

As for the fixed code (and also alt code) I have made it look more like
the original by changing the 'ext' macro to be 'exit' (with the comma
operator). I tried and believe I succeeded (mostly if not totally) in
making the lines start and end on the same columns and in at least some
lines the same character starts and ends the lines as the original.
2023-11-12 03:19:47 -08:00

3.7 KiB

To build:

If your machine support the X Window System, Version 11:

make alt

We recommend the alt version first as the original goes too fast on modern systems. See original code for the original should you wish to see what we mean.

You can reconfigure the value to usleep(3); see try section below.

Bugs and (Mis)features:

The current status of this entry is:

STATUS: known bug - please help us fix

For more detailed information see 1992 kivinen in bugs.md.

Try:

./kivinen.alt

./kivinen.alt a

./kivinen.alt a b

See also the author's remarks for other variations.

Also try changing the speed this game moves. For instance if you wish to change the usleep(3) value to 30000 from 20000, try:

make clobber CDEFINE="-DZ=30000" alt # make it slower

make clobber CDEFINE="-DZ=10000" alt # make it faster

Then use the same syntax as above and described by the author.

Original code:

As noted above, the alt version is recommended because the code goes too fast in modern systems. If you wish to see the original you may do so with the original code.

Original build:

make all

Original use:

Use kivinen as you would kivinen.alt.

Judges' remarks:

The type of entertainment depends on number of arguments you have with the program. :-)

NOTE: Some systems do not need (or have) -lsocket -lresolv -lnsl. Such systems should compile using -lX11.

NOTE: The original winning source kivinen.orig.c assumed that exit returned a value which cause problems for some systems where exit returns void. The file kivinen.c avoids this problem.

Author's remarks:

X Entertainment Kit

This kit includes three games from the early era of video games designed for the X Window System Version 11 Release 5. It should work with earlier releases, though.

Space Invaders

The classic game of shooting aliens from outer space, trying to exterminate all life on earth. The game ends when the first line of aliens touches the ground, or destroy you. To win the game you must destroy all the aliens. If you evade out from the screen you lose.

Controls
  • Button 1 = Move left
  • Button 2 = Fire missile
  • Button 3 = Move right

Breakout

Break all the bricks with the ball, using your paddle. If you miss the ball the game ends.

Controls
  • Button 1 = Move left
  • Button 3 = Move right

Dropout

Catch all the falling pieces, before they reach the ground. If you miss it, game ends. To win you must catch all 30 pieces.

Controls
  • Button 1 = Move left
  • Button 3 = Move right

Starting a game

The type of the game is determined by the number of arguments given to the program.

  • no arguments = Space Invaders
  • 1 argument = Breakout
  • 2 arguments = Dropout
  • 3 arguments = double sized Breakout
  • 4 arguments = triple sized Space Invaders
  • 5 arguments = triple sized Breakout
  • 6 arguments = double sized Dropout
  • 7 arguments = quadruple sized Breakout

...and so on...

Scores

The exit value of the game is your score. The smaller the score the better it is. The exit value of zero means you have won.

Features

The game has a cheat system, which can be found after examining the event loop at the end of program. It is not a bug, it's a feature!

This file is Copyright (c) 2023 by Landon Curt Noll. All Rights Reserved. You are free to share and adapt this file under the terms of this license:

Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)

For more information, see: https://creativecommons.org/licenses/by-sa/4.0/