Merge pull request #1425 from xexyl/robison2k-fix
This commit is contained in:
7 files changed
+80
-34
No files matched your search
@@ -63,7 +63,7 @@ CDEFINE=
|
|||||||
|
|
||||||
# Include files that are needed to compile
|
# Include files that are needed to compile
|
||||||
#
|
#
|
||||||
CINCLUDE=
|
CINCLUDE= -include stdio.h
|
||||||
|
|
||||||
# Optimization
|
# Optimization
|
||||||
#
|
#
|
||||||
|
|||||||
+13
-12
@@ -12,13 +12,6 @@ make
|
|||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
### Try:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
echo "Do or do not. There is no try."
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
## Judges' remarks:
|
## Judges' remarks:
|
||||||
|
|
||||||
The program plays almost always reasonably, but does not always detect
|
The program plays almost always reasonably, but does not always detect
|
||||||
@@ -33,27 +26,32 @@ author a patent he applied for. :-)
|
|||||||
|
|
||||||
## Author's remarks:
|
## Author's remarks:
|
||||||
|
|
||||||
|
|
||||||
### TITLE OF INVENTION
|
### TITLE OF INVENTION
|
||||||
|
|
||||||
Highly Compressed Program for Playing Hygienic Checkers
|
Highly Compressed Program for Playing Hygienic Checkers
|
||||||
|
|
||||||
|
|
||||||
### FIELD OF INVENTION
|
### FIELD OF INVENTION
|
||||||
|
|
||||||
The present invention generally relates to
|
The present invention generally relates to
|
||||||
[checkers](https://en.wikipedia.org/wiki/Checkers).
|
[checkers](https://en.wikipedia.org/wiki/Checkers).
|
||||||
|
|
||||||
|
|
||||||
### BACKGROUND OF THE INVENTION
|
### BACKGROUND OF THE INVENTION
|
||||||
|
|
||||||
Within the field of [checkers](https://en.wikipedia.org/wiki/Checkers), the
|
Within the field of [Checkers](https://en.wikipedia.org/wiki/Checkers), the
|
||||||
problem of finding a hygienic opponent is difficult, as good opponents are
|
problem of finding a hygienic opponent is difficult, as good opponents are
|
||||||
peculiar to the tavern habitat of cracker-barrels, pot-belly stoves, tobacco,
|
peculiar to the tavern habitat of cracker-barrels, pot-belly stoves, tobacco,
|
||||||
and spittoons.
|
and spittoons.
|
||||||
|
|
||||||
|
|
||||||
### BRIEF SUMMARY OF THE INVENTION
|
### BRIEF SUMMARY OF THE INVENTION
|
||||||
|
|
||||||
The present invention plays [checkers](https://en.wikipedia.org/wiki/Checkers)
|
The present invention plays [Checkers](https://en.wikipedia.org/wiki/Checkers)
|
||||||
without spitting.
|
without spitting.
|
||||||
|
|
||||||
|
|
||||||
### BRIEF DESCRIPTION OF SEVERAL VIEWS OF THE INVENTION
|
### BRIEF DESCRIPTION OF SEVERAL VIEWS OF THE INVENTION
|
||||||
|
|
||||||
FIG. 1 shows a numbering of positions.
|
FIG. 1 shows a numbering of positions.
|
||||||
@@ -64,6 +62,7 @@ FIG. 3 shows a sample board.
|
|||||||
|
|
||||||
FIG. 4 shows a method in accordance with the present invention.
|
FIG. 4 shows a method in accordance with the present invention.
|
||||||
|
|
||||||
|
|
||||||
### DETAILED DESCRIPTION OF THE INVENTION
|
### DETAILED DESCRIPTION OF THE INVENTION
|
||||||
|
|
||||||
Operator plays Black (`x`); the program plays White (`o`). Said Black goes first.
|
Operator plays Black (`x`); the program plays White (`o`). Said Black goes first.
|
||||||
@@ -85,7 +84,7 @@ said loser.
|
|||||||
|
|
||||||
FIG. 4 shows a C program in accordance with the present invention. Control flow
|
FIG. 4 shows a C program in accordance with the present invention. Control flow
|
||||||
is straightforward: control enters routine `main()`, executes a plurality of
|
is straightforward: control enters routine `main()`, executes a plurality of
|
||||||
statements, and exits via `return` statement. FIG. 4 presumes that type `int`
|
statements, and exits via a `return` statement. FIG. 4 presumes that type `int`
|
||||||
is `32 bits` and `short` is `16 bits`, which are essential to the preferred
|
is `32 bits` and `short` is `16 bits`, which are essential to the preferred
|
||||||
embodiment of the invention. FIG. 4 also presumes that the host computer uses
|
embodiment of the invention. FIG. 4 also presumes that the host computer uses
|
||||||
ASCII encoding for characters. It should be obvious that practitioners skilled
|
ASCII encoding for characters. It should be obvious that practitioners skilled
|
||||||
@@ -95,6 +94,7 @@ The disclosure here describes a particular embodiment of the present invention,
|
|||||||
and other embodiments within the spirit of this disclosure are possible, as well
|
and other embodiments within the spirit of this disclosure are possible, as well
|
||||||
as consumption of spirits while playing.
|
as consumption of spirits while playing.
|
||||||
|
|
||||||
|
|
||||||
### CLAIMS
|
### CLAIMS
|
||||||
|
|
||||||
I claim, by letters patently absurd:
|
I claim, by letters patently absurd:
|
||||||
@@ -110,10 +110,10 @@ I claim, by letters patently absurd:
|
|||||||
and beta cuts.
|
and beta cuts.
|
||||||
|
|
||||||
3. The method of claim 1, further comprising the step of formatting the
|
3. The method of claim 1, further comprising the step of formatting the
|
||||||
source code with short lines, in order to impress manager with
|
source code with short lines, in order to impress the manager with
|
||||||
high productivity, when measured in lines of code.
|
high productivity, when measured in lines of code.
|
||||||
|
|
||||||
4. The method of claim 3, further comprising the step for telling
|
4. The method of claim 3, further comprising the step for telling the
|
||||||
skeptical manager that this is the well-known technique of
|
skeptical manager that this is the well-known technique of
|
||||||
"linear programming".
|
"linear programming".
|
||||||
|
|
||||||
@@ -129,6 +129,7 @@ I claim, by letters patently absurd:
|
|||||||
sequence to either sum a plurality of bits in an N-bit word or reverses
|
sequence to either sum a plurality of bits in an N-bit word or reverses
|
||||||
them, in lg(N) time, depending upon a parameter.
|
them, in lg(N) time, depending upon a parameter.
|
||||||
|
|
||||||
|
|
||||||
### DRAWINGS
|
### DRAWINGS
|
||||||
|
|
||||||
#### FIG 1.
|
#### FIG 1.
|
||||||
|
|||||||
+37
-15
@@ -689,22 +689,44 @@ C
|
|||||||
o&
|
o&
|
||||||
4)
|
4)
|
||||||
{
|
{
|
||||||
o&
|
char
|
||||||
1?
|
X1[
|
||||||
|
5]=
|
||||||
|
{'\
|
||||||
|
\0'}
|
||||||
|
,X2
|
||||||
|
[5]
|
||||||
|
={\
|
||||||
|
'\0\
|
||||||
|
'};
|
||||||
|
C o
|
||||||
|
&1
|
||||||
|
){
|
||||||
scanf
|
scanf
|
||||||
("%d"
|
("%4s"
|
||||||
,&
|
,X1);
|
||||||
n)
|
n=at\
|
||||||
:(
|
oi(X1);
|
||||||
|
}else
|
||||||
|
{X1[
|
||||||
|
0]=
|
||||||
|
'\
|
||||||
|
\0'
|
||||||
|
;X2
|
||||||
|
[0]
|
||||||
|
='\0';
|
||||||
scanf
|
scanf
|
||||||
("%d%d"
|
("%4s\
|
||||||
,&
|
%4s",
|
||||||
m,
|
X1,
|
||||||
&n
|
X2);
|
||||||
),
|
m=
|
||||||
--
|
atoi
|
||||||
m)
|
(X1);
|
||||||
;
|
n=
|
||||||
|
atoi
|
||||||
|
(X2)
|
||||||
|
;--m;
|
||||||
Z=
|
Z=
|
||||||
A
|
A
|
||||||
N>>
|
N>>
|
||||||
@@ -729,7 +751,7 @@ B,
|
|||||||
H"{ ; { { } { } { ; } ; { "
|
H"{ ; { { } { } { ; } ; { "
|
||||||
))
|
))
|
||||||
;
|
;
|
||||||
}
|
}}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
+3
-3
@@ -114,7 +114,7 @@ PROG= prog
|
|||||||
#
|
#
|
||||||
OBJ= ${PROG}.o
|
OBJ= ${PROG}.o
|
||||||
CSRC= ${PROG}.o
|
CSRC= ${PROG}.o
|
||||||
DATA= maze demo.sh
|
DATA= maze try.sh
|
||||||
TARGET= ${PROG}
|
TARGET= ${PROG}
|
||||||
#
|
#
|
||||||
ALT_OBJ=
|
ALT_OBJ=
|
||||||
@@ -141,8 +141,8 @@ ${PROG}: ${PROG}.c
|
|||||||
${CC} ${CFLAGS} $< -o $@ ${LDFLAGS}
|
${CC} ${CFLAGS} $< -o $@ ${LDFLAGS}
|
||||||
${LN} -sf ${PROG} tbfs
|
${LN} -sf ${PROG} tbfs
|
||||||
|
|
||||||
test: prog
|
test: ${PROG}
|
||||||
${CAT} prog.c | ./prog
|
./${PROG} < ${PROG}.c
|
||||||
|
|
||||||
|
|
||||||
# alternative executable
|
# alternative executable
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ The last two can be done in a sequence, first showing the respective files at
|
|||||||
the terminal, like:
|
the terminal, like:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
./demo.sh
|
./try.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -5,8 +5,17 @@
|
|||||||
# Doesn't run the program on README.md as it's longer and slower.
|
# Doesn't run the program on README.md as it's longer and slower.
|
||||||
#
|
#
|
||||||
|
|
||||||
# make prog first and exit if failure
|
# make sure CC is set so that when we do make CC="$CC" it isn't empty. Doing it
|
||||||
make || exit
|
# this way allows us to have the user specify a different compiler in an easy
|
||||||
|
# way.
|
||||||
|
if [[ -z "$CC" ]]; then
|
||||||
|
CC="cc"
|
||||||
|
fi
|
||||||
|
|
||||||
|
make CC="$CC" all >/dev/null || exit 1
|
||||||
|
|
||||||
|
# clear screen after compilation so that only the entry is shown
|
||||||
|
clear
|
||||||
|
|
||||||
# display prog.c to the user
|
# display prog.c to the user
|
||||||
echo "$ cat prog.c"
|
echo "$ cat prog.c"
|
||||||
@@ -2304,6 +2304,20 @@ Cody also added the [try.sh](2000/primenum/try.sh) script.
|
|||||||
Cody added the [try.sh](2000/rince/try.sh) script.
|
Cody added the [try.sh](2000/rince/try.sh) script.
|
||||||
|
|
||||||
|
|
||||||
|
## [2000/robison](2000/robison/robison.c) ([README.md](2000/robison/README.md]))
|
||||||
|
|
||||||
|
Cody fixed an infinite loop that occurred if invalid input was entered, flooding
|
||||||
|
the screen with:
|
||||||
|
|
||||||
|
```
|
||||||
|
Black position and direction: illegal
|
||||||
|
```
|
||||||
|
|
||||||
|
This was fixed by having the `scanf(3)` read in a string and then use `atoi(3)`
|
||||||
|
on it to assign to the `int`s, much like with `1987/lievaart`. The strings are
|
||||||
|
`char[5]` and the `%` specifier is `%4s` which is enough for the game.
|
||||||
|
|
||||||
|
|
||||||
## [2000/thadgavin](2000/thadgavin/thadgavin.c) ([README.md](2000/thadgavin/README.md]))
|
## [2000/thadgavin](2000/thadgavin/thadgavin.c) ([README.md](2000/thadgavin/README.md]))
|
||||||
|
|
||||||
Cody fixed the code and added an appropriate make rule so that the SDL version
|
Cody fixed the code and added an appropriate make rule so that the SDL version
|
||||||
|
|||||||
Reference in new issue
Block a user