Move 1988-2004 entries into subdirs
We we move 1988-2004 entries from all of a year's winning entries in a single directory to each winner being in their own sub-directory under the given year directory.
This commit is contained in:
1 parent
1e82e8aa3e
commit
d2a42f42e8
478 files changed
No files matched your search
@@ -0,0 +1,74 @@
|
||||
10 REM Lunar Lander
|
||||
20 REM By Diomidis Spinellis
|
||||
25 REM Compiler version
|
||||
30 PRINT "You aboard the Lunar Lander about to leave the spacecraft."
|
||||
60 GOSUB 4000
|
||||
70 GOSUB 1000
|
||||
80 GOSUB 2000
|
||||
90 GOSUB 3000
|
||||
100 LET H = H - V
|
||||
110 LET V = ((V + G) * 10 - U * 2) / 10
|
||||
120 LET F = F - U
|
||||
130 IF H > 0 THEN 80
|
||||
135 LET H = 0
|
||||
140 GOSUB 2000
|
||||
150 IF V > 5 THEN 200
|
||||
160 PRINT "Congratulations! This was a very good landing."
|
||||
170 GOSUB 5000
|
||||
180 GOTO 10
|
||||
200 PRINT "You have crashed."
|
||||
210 GOTO 170
|
||||
1000 REM Initialise
|
||||
1010 LET V = 70
|
||||
1020 LET F = 500
|
||||
1030 LET H = 1000
|
||||
1040 LET G = 2
|
||||
1050 RETURN
|
||||
2000 REM Print values
|
||||
2010 PRINT " Meter readings"
|
||||
2015 PRINT " --------------"
|
||||
2020 PRINT "Fuel (gal):"
|
||||
2030 PRINT F
|
||||
2040 GOSUB 2100 + 100 * (H != 0)
|
||||
2050 PRINT V
|
||||
2060 PRINT "Height (m):"
|
||||
2070 PRINT H
|
||||
2080 RETURN
|
||||
2100 PRINT "Landing velocity (m/sec):"
|
||||
2110 RETURN
|
||||
2200 PRINT "Velocity (m/sec):"
|
||||
2210 RETURN
|
||||
3000 REM User input
|
||||
3005 IF F == 0 THEN 3070
|
||||
3010 PRINT "How much fuel will you use?"
|
||||
3020 INPUT U
|
||||
3025 IF U < 0 THEN 3090
|
||||
3030 IF U <= F THEN 3060
|
||||
3040 PRINT "Sorry, you have not got that much fuel!"
|
||||
3045 PRINT F
|
||||
3050 GOTO 3010
|
||||
3060 RETURN
|
||||
3070 LET U = 0
|
||||
3080 RETURN
|
||||
3090 PRINT "No cheating please! Fuel must be >= 0."
|
||||
3100 GOTO 3010
|
||||
4000 REM Detachment
|
||||
4005 PRINT "Ready for detachment"
|
||||
4007 PRINT "-- COUNTDOWN --"
|
||||
4010 FOR I = 1 TO 11
|
||||
4020 PRINT 11 - I
|
||||
4025 GOSUB 4500
|
||||
4030 NEXT I
|
||||
4035 PRINT "You have left the spacecraft."
|
||||
4037 PRINT "Try to land with velocity less than 5 m/sec."
|
||||
4040 RETURN
|
||||
4500 REM Delay
|
||||
4510 FOR J = 1 TO 500
|
||||
4520 NEXT J
|
||||
4530 RETURN
|
||||
5000 PRINT "Do you want to play again? (0 = no, 1 = yes)"
|
||||
5010 INPUT Y
|
||||
5020 IF Y == 0 THEN 5040
|
||||
5030 RETURN
|
||||
5040 PRINT "Have a nice day."
|
||||
5050 END
|
||||
@@ -0,0 +1,17 @@
|
||||
#include <stdio.h>
|
||||
#define Q r=R[*p++-'0'];while(
|
||||
#define B ;break;case
|
||||
char*s="Qjou!s\\311^-g\\311^-n\\311^-c\\::^-q-ma%mO1JBHm%BQ-aP1J[O1HB%[Q<nbj\
|
||||
o)*|gps)<<*txjudi)m*|aQdbtf!::::;sfuvso<aQefgbvmu;aQ<m,,a%CQ<csfbla%bQ<aN2!Q\
|
||||
\ndbtf!aP2Q;m>aP2Q<a%!D12J!JGJHJOJQJFJSJJJMHS%HD12D12N3!N4\nJUJT%UQm>aP4HC%T\
|
||||
Qs\\q,,^>m,2<m>aP4HC%SD12N1\nJNQm>s\\..q^aHC%NHb%GN1!D32P3%RN1UP1D12JPQUaP1H\
|
||||
R%PN4\nQ<g\\(aP3Q(^>aP2Q,2<n\\(aP3Q(^>aP4Hb%OD12D12N2!N3\nJVP3Q,,<jg)aP3Q=>n\
|
||||
\\(aP3Q(^*m>g\\(aP3Q(^<fmtf!m,,aHC%QN1!N1\nJ#Qqsjoug)#&e]o#-aP1Q*aHb%#Qqvut)\
|
||||
aP1Q*aHb%FN1\nQm>::::aHC%VP3Q>bupj)hfut)c**aHb%JD12JON1!Qjg)a%LN1UP1D12JIQUa\
|
||||
P1HL%IQ*m>aN2!N2\nP2Q<fmtf!m,,aHC%MN1!N2>P2Q>aN2\nP2Hbdd!b/d";int k;char R[4][99]
|
||||
;main(c,v)char**v;{char*p,*r,*q;for(q=s;*q;q++)*q>' '&&(*q)--;{FILE*i=fopen(v
|
||||
[1],"r"),*o=fopen(q-3,"w");for(p=s;;p++)switch(*p++){B'M':Q(k=fgetc(i))!=EOF
|
||||
&&k!=*p)*r++=k;if(k==EOF){fputs("}}\n",o);fclose(o);return system(q-6);}*r=0
|
||||
B'P':while(*p!='`')fputc(*p++,o)B'O':Q*r)fputc(*r++,o);p--B'C':k=0;Q k<*p-'0'
|
||||
)(*r++=fgetc(i),k++);*r=0 B'I':k= *p;if(**R==k)goto G B'G':k= *p;G:p=s;while(
|
||||
*p!='$'||p[1]!= k)p++;p++B'N':R[*p-'0'][0]++;}}}
|
||||
@@ -0,0 +1,17 @@
|
||||
#include <stdio.h>
|
||||
#define Q r=R[*p++-'0'];while(
|
||||
#define B ;break;case
|
||||
char*s="Qjou!s\\311^-g\\311^-n\\311^-c\\::^-q-ma%mO1JBHm%BQ-aP1J[O1HB%[Q<nbj\
|
||||
o)*|gps)<<*txjudi)m*|aQdbtf!::::;sfuvso<aQefgbvmu;aQ<m,,a%CQ<csfbla%bQ<aN2!Q\
|
||||
\ndbtf!aP2Q;m>aP2Q<a%!D12J!JGJHJOJQJFJSJJJMHS%HD12D12N3!N4\nJUJT%UQm>aP4HC%T\
|
||||
Qs\\q,,^>m,2<m>aP4HC%SD12N1\nJNQm>s\\..q^aHC%NHb%GN1!D32P3%RN1UP1D12JPQUaP1H\
|
||||
R%PN4\nQ<g\\(aP3Q(^>aP2Q,2<n\\(aP3Q(^>aP4Hb%OD12D12N2!N3\nJVP3Q,,<jg)aP3Q=>n\
|
||||
\\(aP3Q(^*m>g\\(aP3Q(^<fmtf!m,,aHC%QN1!N1\nJ#Qqsjoug)#&e]o#-aP1Q*aHb%#Qqvut)\
|
||||
aP1Q*aHb%FN1\nQm>::::aHC%VP3Q>bupj)hfut)c**aHb%JD12JON1!Qjg)a%LN1UP1D12JIQUa\
|
||||
P1HL%IQ*m>aN2!N2\nP2Q<fmtf!m,,aHC%MN1!N2>P2Q>aN2\nP2Hbdd!b/d";k;char R[4][99]
|
||||
;main(c,v)char**v;{char*p,*r,*q;for(q=s;*q;q++)*q>' '&&(*q)--;{FILE*i=fopen(v
|
||||
[1],"r"),*o=fopen(q-3,"w");for(p=s;;p++)switch(*p++){B'M':Q(k=fgetc(i))!=EOF
|
||||
&&k!=*p)*r++=k;if(k==EOF){fputs("}}\n",o);fclose(o);return system(q-6);}*r=0
|
||||
B'P':while(*p!='`')fputc(*p++,o)B'O':Q*r)fputc(*r++,o);p--B'C':k=0;Q k<*p-'0'
|
||||
)(*r++=fgetc(i),k++);*r=0 B'I':k= *p;if(**R==k)goto G B'G':k= *p;G:p=s;while(
|
||||
*p!='$'||p[1]!= k)p++;p++B'N':R[*p-'0'][0]++;}}}
|
||||
@@ -0,0 +1,84 @@
|
||||
Most Well Rounded:
|
||||
|
||||
Diomidis Spinellis
|
||||
Imperial College, University of London
|
||||
Myrsinis 1
|
||||
GR-145 62 Kifissia
|
||||
Greece
|
||||
|
||||
|
||||
Judges' comments:
|
||||
|
||||
Make and run as follows:
|
||||
|
||||
make dds
|
||||
dds basic_program
|
||||
a.out
|
||||
|
||||
For example, the author suggests trying:
|
||||
|
||||
dds LANDER.BAS
|
||||
a.out
|
||||
|
||||
Notice that a file a.c has been generated. Can you tell how a.c was
|
||||
produced? How does a.c relate to LANDER.BAS?
|
||||
|
||||
This obfuscated program translates BASIC programs into obfuscated
|
||||
C programs by way of an obfuscated algorithm.
|
||||
|
||||
NOTE: Due to minor problems with some strict ANSI C compilers, we
|
||||
have supplied a more portable ANSI version.
|
||||
|
||||
|
||||
Selected notes from the author:
|
||||
|
||||
This program is a companion to the DDS-BASIC interpreter program that
|
||||
was submitted to the contest in 1990. This compiles BASIC programs into
|
||||
executable commands. The input format is almost identical to the input
|
||||
format of the DDS-BASIC interpreter. The program needs an executable C
|
||||
compiler called `cc' in your path in order to work.
|
||||
|
||||
Program commands:
|
||||
|
||||
variable names A to Z variables initialized to 0 on RUN
|
||||
FOR var = exp TO exp NEXT variable
|
||||
GOSUB exp RETURN
|
||||
GOTO exp IF exp THEN exp
|
||||
INPUT variable PRINT string
|
||||
PRINT exp var = exp
|
||||
REM any text END
|
||||
|
||||
Expressions are the same as the expressions of the C language.
|
||||
Many system calls and C library calls can be used.
|
||||
|
||||
Input format:
|
||||
|
||||
- Free format positioning of tokens on the line.
|
||||
- No space is allowed before the line number.
|
||||
- Exactly one space is needed after the FOR and NEXT tokens
|
||||
- ALL INPUT MUST BE UPPERCASE.
|
||||
|
||||
Error checking / error reports:
|
||||
|
||||
The compiler silently ignores many errors.
|
||||
Other errors may produce errors in later phases of the compilation.
|
||||
|
||||
Can you figure out how the compiler works? Hint (rot13):
|
||||
|
||||
The compiler is NOT written in C, so this is really a meta-obfuscated
|
||||
program. The C code is an intepreter for the four register, seven
|
||||
instruction COGNIMP$ machine that is contained in the s string.
|
||||
(COGNIMP$ is named after the symbolic names of the seven instructions it
|
||||
defines (Print Output Goto Match If, iNcrement and Copy). The $ sign
|
||||
is used for labels.) The actual compiler is written in COGNIMP$.
|
||||
Browsing through the COGNIMP$ code we encouriage you to examine the
|
||||
loops for scanning the expression in the IF statement and the way a
|
||||
decision tree is implemented in order to match the statements. (Of
|
||||
course the 's' string is encoded by adding one to every character of it just
|
||||
to confuse you).
|
||||
|
||||
Copyright (c) 1991, Landon Curt Noll & Larry Bassel.
|
||||
All Rights Reserved. Permission for personal, educational or non-profit use is
|
||||
granted provided this this copyright and notice are included in its entirety
|
||||
and remains unaltered. All other uses must receive prior permission in writing
|
||||
from both Landon Curt Noll and Larry Bassel.
|
||||
Reference in new issue
Block a user