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,203 +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.5a DL=DISCOUNT">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
|
||||
<link rel="stylesheet"
|
||||
type="text/css"
|
||||
href="../hint.css">
|
||||
<title>Most complex ASCII fluid - Honorable mention</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Most complex ASCII fluid - Honorable mention</h1>
|
||||
|
||||
<p>Yusuke Endoh<br>
|
||||
<a href="mailto:mame@ruby-lang.org">mame@ruby-lang.org</a><br>
|
||||
<a href="https://github.com/mame/">https://github.com/mame/</a></p>
|
||||
|
||||
<h2>Judges' comments:</h2>
|
||||
|
||||
<h3>To build:</h3>
|
||||
|
||||
<pre><code>make endoh1
|
||||
</code></pre>
|
||||
|
||||
<h3>To run:</h3>
|
||||
|
||||
<pre><code>./endoh1 < configuration.txt
|
||||
</code></pre>
|
||||
|
||||
<h3>Try:</h3>
|
||||
|
||||
<pre><code>./endoh1 < endoh1.c
|
||||
|
||||
./endoh1 < pour-out.txt
|
||||
|
||||
./endoh1 < fountain.txt
|
||||
</code></pre>
|
||||
|
||||
<h3>Selected Judges Remarks:</h3>
|
||||
|
||||
<p>Let’s play Jeopardy!</p>
|
||||
|
||||
<ul>
|
||||
<li>A: An obfuscated program that deals with complex numbers and produces animated ASCII graphics.</li>
|
||||
<li>Q: What is a Mandelbrot simulator?</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<p>Bzzzt!</p>
|
||||
|
||||
<p>Such heavily squeezed fluid simulation (this is parsed uniquely
|
||||
as fluids are not squeezable) has a few quirks that the judges were
|
||||
happy to experiment with.</p>
|
||||
|
||||
<p>One configuration file was inspired by an <a href="http://whatif.xkcd.com/6/">XKCD what if? entry</a>.</p>
|
||||
|
||||
<h2>Author’s comments:</h2>
|
||||
|
||||
<h3>Synopsis</h3>
|
||||
|
||||
<p><strong>DO NOT FORGET “-DG=1 -DP=4 -DV=8”</strong> and make your terminal window larger
|
||||
than 80 x 25.</p>
|
||||
|
||||
<pre><code>gcc endoh1.c -DG=1 -DP=4 -DV=8 -D_BSD_SOURCE -o endoh1 -lm
|
||||
./endoh1 < endoh1.c
|
||||
./endoh1 < logo.txt
|
||||
./endoh1 < column.txt
|
||||
./endoh1 < pour-out.txt
|
||||
./endoh1 < tanada.txt
|
||||
</code></pre>
|
||||
|
||||
<h3>What it is</h3>
|
||||
|
||||
<pre><code>,___. ,. ,. ,. ,___. ,. ,. ,.
|
||||
|/--' || `' || |/--' `' || |\_.
|
||||
|\__. || ,. ,. ,. ,__/| |\__. ,. ,____. ,. ,. || ,_. |/-' ,_. ,__.
|
||||
|/--' || || || || |/-\| `--\| || |/\/\| || || || ,/-\. || ,/-\. |/-\.
|
||||
|| || `\_/| || |\_/| ,__/| || |||||| `\_/| || `\_/\.`\_. `\_/' || `'
|
||||
`' `' `--' `' `---' `---' `' `'`'`' `--' `' `-'`' `-' `-' `'
|
||||
|
||||
|
||||
,.,. ,.,.
|
||||
,/\/\. ,. ,. ,. ,/\/\. ,. ,. ,__.
|
||||
|||#/' || `' ,_.|| |||#/' `',_.,__. || ||\\. ,.
|
||||
|||#\. || ,. ,. ,.,/#||| |\//\. ,.|#||##| ,. ,. || ,.,. |\/-' ,.,. ,.|\.
|
||||
|\/--' ||,/\.|| |||#/\/| `\#||| |||#||/\|,/\.|| ||,/'`\.|#| ,/'`\.|\/-\.
|
||||
`\| ||`\#||| |||#||\| ,//\/| ||`\|||||`\#||| ||`\.,/\/\|,.`\.,/'`\| `'
|
||||
`' `' `-'`' `'`-'`-' `-'`-' `' `'`'`' `-'`' `' `'`--'`'`' `'`' `'
|
||||
|
||||
|
||||
,_.,_. ,. ,. ,. ,_.,_. ,. ,. ,.
|
||||
|#||#| || `' || |#||#| `' || ||,_.
|
||||
||\/#| ||,. ,. ,.,_.,/| |\||#| ,.,_.,__.,. ,. || ,.,. |||#| ,.,. ,.,_.
|
||||
|||##| |||| || |||#||#| |#||#| |||#||##||| || ||,/||\.||`-',/||\.|||#\.
|
||||
||`--' ||`\_.|| |||\||#| |#||#| ||||'||\|`\_.|| ||`\||#|`\.,.`\||/'||`--'
|
||||
`' `' |#||| `'|#||#| |#||#| `'`' `'`' |#||| `' |||/' |||| |||| `'
|
||||
`-'`' `-'`-' `-'`-' `-'`' `'`' `'`' `'`'
|
||||
</code></pre>
|
||||
|
||||
<p>This program is a fluid simulator using “Smoothed-particle hydrodynamics (SPH)”
|
||||
method.</p>
|
||||
|
||||
<p><a href="http://en.wikipedia.org/wiki/Smoothed-particle_hydrodynamics">http://en.wikipedia.org/wiki/Smoothed-particle_hydrodynamics</a></p>
|
||||
|
||||
<p>The SPH particles represent the fluid flow. Particles have information about
|
||||
the position, density, and velocity. In every simulation step, they are
|
||||
changed by pressure force, viscosity force, and external force (i.e., gravity).</p>
|
||||
|
||||
<p>This program reads a text from standard input, and uses it as an initial
|
||||
configuration of the particles. The character <code>#</code> represents “wall particle” (a
|
||||
particle with fixed position), and any other non-space characters represent
|
||||
free particles.</p>
|
||||
|
||||
<p>The compilation options <code>-DG=1 -DP=4 -DV=8</code> represent, respectively, the factor
|
||||
of gravity, pressure, and viscosity. By changing their values, you can see
|
||||
different fluid behavior.</p>
|
||||
|
||||
<p>“Marching square”-like algorithm is used to render the particles.</p>
|
||||
|
||||
<p><a href="http://en.wikipedia.org/wiki/Marching_squares">http://en.wikipedia.org/wiki/Marching_squares</a></p>
|
||||
|
||||
<h3>Portability</h3>
|
||||
|
||||
<p>The program requires a C99 compiler; it uses <code>complex</code> types and one-line
|
||||
comments. It also uses <code>usleep</code>, which may require <code>-D_BSD_SOURCE</code> or somewhat
|
||||
to build with no warning. Under these conditions, it should be portable.
|
||||
At least, recent compilers with <code>-std=c99 -Wall -W -Wextra -pedantic</code> says
|
||||
nothing.</p>
|
||||
|
||||
<pre><code>gcc -DG=1 -DP=4 -DV=8 -D_BSD_SOURCE -std=c99 -Wall -W -Wextra -pedantic endoh1.c
|
||||
clang -DG=1 -DP=4 -DV=8 -D_BSD_SOURCE -std=c99 -Wall -W -Wextra -pedantic endoh1.c
|
||||
</code></pre>
|
||||
|
||||
<p>I expect it to work in any Unix-like environment. VTxxx/ANSI sequences are
|
||||
used to clear screen and move cursor to home.</p>
|
||||
|
||||
<p>I’ve tested with gcc-4.6.3 and clang-3.0 on Linux (Ubuntu 12.04)
|
||||
and gcc-4.5.3 and clang-3.1 on Cygwin. On Cygwin, gcc and clang complain about
|
||||
a usage of <code>I</code> (complex’s imaginary unit), but I bet this is cygwin’s issue;
|
||||
it is surely a C99 feature.</p>
|
||||
|
||||
<h3>Obfuscation w/ Spoiler</h3>
|
||||
|
||||
<p>First of all, the source code itself serves as an initial configuration.
|
||||
Preprocessing directives (such as <code>#include</code>)’s <code>#</code> serve as walls.</p>
|
||||
|
||||
<p>This program uses <code>double complex</code> to represent any 2D vector. But, note that
|
||||
x-axis and y-axis is swapped (real axis = y-axis, imaginary axis = x-axis).
|
||||
The purpose of swapping is not only obfuscation, but also short coding: for
|
||||
example, to add gravity to total force, <code>force += G</code> suffices, rather than
|
||||
<code>force += G*I</code>.
|
||||
(Incidentally, you can exert horizontal gravity by using, such as, <code>-DG=I</code>)</p>
|
||||
|
||||
<p>Every five entries of <code>double complex a[]</code> contain information of one particle:
|
||||
position, wall-flag, density, force, and velocity, in turn.</p>
|
||||
|
||||
<p>You can use <code>G</code>, <code>P</code>, and <code>V</code> as a guide to find the calculation code of
|
||||
gravity, pressure, and viscosity forces.</p>
|
||||
|
||||
<p>Though some assignments may look meaningless, it is actually meaningful; it
|
||||
extracts “integer part of real part” from a complex value by assigning (and
|
||||
casting) it to an integer-type variable.</p>
|
||||
|
||||
<h3>Notes about Additional Files</h3>
|
||||
|
||||
<p>“logo.txt” is a source of the logo in this remark file.</p>
|
||||
|
||||
<p>“column.txt” is a water column collapse, which is a popular demo of SPH.</p>
|
||||
|
||||
<p>“pour-out.txt” pours you a cup of tea.</p>
|
||||
|
||||
<p>“tanada.txt” simulates “Terrace farming”. (“Tanada” means a “terraced rice
|
||||
fields” in Japanese.)</p>
|
||||
|
||||
<p>“clock.txt” is a “water” clock created by HAMANO Tsukasa.</p>
|
||||
|
||||
<p>Other *.txt files are due to the judges.</p>
|
||||
|
||||
<p>“endoh1_color.c” is a variant that shows the density by using terminal 256
|
||||
colors.</p>
|
||||
|
||||
<h3>Acknowledgment</h3>
|
||||
|
||||
<p>I would like to thank my wife @hirekoke for her teaching me the SPH method.</p>
|
||||
|
||||
<p>The judges <strike>ordered</strike> suggested creating a color version
|
||||
after the judgment.</p>
|
||||
|
||||
<p>The judges and HAMANO Tsukasa (The silver medalist at this IOCCC) kindly
|
||||
provided many configuration files.</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-2015,
|
||||
<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