Remove hint.html and index.html
As per discussions on GitHub the index.html and hint.html files should be deleted in favour of README.md files (from any .text/.txt/.markdown/.md files which will be turned into README.md in an upcoming commit).
This commit is contained in:
1 parent
ee8a36310f
commit
77fb0f11a2
143 files changed
-28606
No files matched your search
@@ -1,110 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta name="GENERATOR" content="mkd2html 2.1.3 DL=DISCOUNT">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
|
||||
<link rel="stylesheet"
|
||||
type="text/css"
|
||||
href="../hint.css">
|
||||
<title>Best ball</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Best ball</h1>
|
||||
|
||||
<p>Peter Eastman<br>
|
||||
<a href="mailto:peter.eastman@gmail.com">peter.eastman@gmail.com</a></p>
|
||||
|
||||
<h2>Judges' comments:</h2>
|
||||
|
||||
<h3>To build:</h3>
|
||||
|
||||
<pre><code>make eastman
|
||||
</code></pre>
|
||||
|
||||
<h3>To run:</h3>
|
||||
|
||||
<pre><code>./eastman
|
||||
</code></pre>
|
||||
|
||||
<h3>Try:</h3>
|
||||
|
||||
<pre><code>Quit the program. Resize your terminal window. Run it again.
|
||||
</code></pre>
|
||||
|
||||
<h3>Selected Judges Remarks:</h3>
|
||||
|
||||
<p>This round program will generate a classic spherical result!</p>
|
||||
|
||||
<p>You will need a terminal capable of displaying coloured ANSI
|
||||
characters (for example an xterm or a Terminal.app window).</p>
|
||||
|
||||
<p>You might also want to turn off any scrollback history. The program will
|
||||
size itself to the initial geometry of your terminal.</p>
|
||||
|
||||
<p>If you are ambitious, make the font really small and the window really
|
||||
large for hi-rez graphics!</p>
|
||||
|
||||
<h2>Author’s comments:</h2>
|
||||
|
||||
<p>This program uses ANSI graphics to recreate the classic Boing Ball demo from
|
||||
the Commodore Amiga. See http://www.youtube.com/watch?v=-ga41edXw3A if you
|
||||
aren’t familiar with it. Back in its day, this demo inspired lust and awe in
|
||||
geeks around the world.</p>
|
||||
|
||||
<p>The graphics are raytraced, with procedural textures on the ball and the back
|
||||
wall. I did cheat a little to simplify the calculations: it uses a parallel
|
||||
projection, but textures the back wall to look as if there were a floor being
|
||||
viewed in perspective. The shadow is also just part of the texture, not an
|
||||
actual raytraced shadow.</p>
|
||||
|
||||
<p>This program automatically adapts to the size of the terminal it is running in,
|
||||
so try enlarging the window to get higher resolution. Don’t resize while the
|
||||
program is running, though. It only checks the size once, when it starts up.</p>
|
||||
|
||||
<p>To compile:</p>
|
||||
|
||||
<p>cc -lm ball.c</p>
|
||||
|
||||
<p>Portability:</p>
|
||||
|
||||
<p>It should be completely portable. I’ve tested with gcc on Mac OS X 10.7 and
|
||||
Fedora 10. I would expect it to work in any Unix-like environment.</p>
|
||||
|
||||
<p>Obfuscation:</p>
|
||||
|
||||
<p>I have merged expressions wherever possible, making extensive use of ternary
|
||||
operators, commas, return values of assignment operators, etc. The entire
|
||||
raytracing computation, include ray intersection tests and procedural texture
|
||||
evaluations, is a single expression involving 41 operators.</p>
|
||||
|
||||
<p>Variables are named alphabetically in the order they are declared.</p>
|
||||
|
||||
<p>The third argument to ioctl() should really be a “struct winsize”, and I should
|
||||
then look up the ws_row and ws_col fields, but that makes it way too obvious
|
||||
what I’m doing there. Since a winsize just contains four unsigned shorts, I
|
||||
replaced it with an array. And since all the values will be much less than
|
||||
32767, I further simplified the type to just short[].</p>
|
||||
|
||||
<p>A wonderful thing about ANSI graphics is that it produces nearly unintelligible
|
||||
code. Consider the printf spec to print a single space in a desired color:
|
||||
“\x1B[%dm ”. I could have done something to further obfuscate it, but it’s
|
||||
already indistinguishable from line noise, so why bother?</p>
|
||||
|
||||
<p>There are lots of other minor obfuscations to make the code less obvious. For
|
||||
example, I could have written the outer loop as while(1), but why write a 1
|
||||
when I can calculate it from the return value of usleep() instead? And I could
|
||||
have written usleep(80000), but usleep(79383) just looks so much better. And
|
||||
so on.</p>
|
||||
|
||||
<hr />
|
||||
|
||||
<TABLE><TR>
|
||||
<TD><a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/"><img alt="Creative Commons License" style="border-width:0" src="http://i.creativecommons.org/l/by-sa/3.0/88x31.png" /></a></TD>
|
||||
<TD><P>© Copyright 1984-2012,
|
||||
<A HREF="/judges.html">Leo Broukhis, Simon Cooper, Landon Curt Noll</A>
|
||||
- All rights reserved<BR>
|
||||
This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/">Creative Commons Attribution-ShareAlike 3.0 Unported License</a>.</P></TD>
|
||||
<TD> <!--<a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01 Transitional" height="31" width="88"></a>--></TD>
|
||||
</TR></TABLE>
|
||||
</body>
|
||||
</html>
|
||||
Reference in new issue
Block a user