Congratulations to: * 2024/anders - Prize in sound coding - layered music generator * 2024/burton - Prize in pentagrammatology - wordle hard mode solver * 2024/cable1 - Prize in bot talk - LLM inference engine * 2024/cable2 - Prize in murky waters - salmon recipe * 2024/carlini - Prize in perfect timing - Intel 4004 emulation * 2024/codemeow - Prize in tray planting - bonsai generator * 2024/endoh1 - Prize in patient pointillism - slow ray tracer in CPP * 2024/endoh2 - Prize in solid body physics - rotating rigid body simulation * 2024/ferguson1 - Prize in diabolical logistics - Oregon trail pact with the devil * 2024/ferguson2 - Prize in yil-tas - Navajo code talker translator * 2024/howe - Nice accent eh-ward - mini vi * 2024/kramer - Prize in linguistic arithmetic - natural language numerical calculator * 2024/kurdyukov1 - Prize in phased periodicity - phase of the Moon * 2024/kurdyukov2 - Prize in art restoration - JPEG artifact removal * 2024/kurdyukov3 - Prize in virtual quietus - gaming VM and doom * 2024/kurdyukov4 - Prize in embiggening - encode without literals * 2024/maffiodo - Prize in creative interpretation - Jav\*script interpreter * 2024/mills - Prize in ℤ₃ - Infocom v3 story interpreter * 2024/stedolan - Best one liner - icon from MD5 * 2024/straadt - Prize in imitative rebooting - OpenRISC CPU and Linux * 2024/tmarrec - Prize in cyclonic coding - 3D tornado simulation * 2024/tompng - Prize in quasi bijection - vortex encryptor decryptor * 2024/weaver - Sur prize - rickroll Ran `make update` to perform the above. new file: 2024/burton/.entry.json
54 lines
1.2 KiB
C
54 lines
1.2 KiB
C
/*
|
|
* bytetest.c
|
|
*
|
|
* Write output in the game, to verify the bytes (locations) are okay.
|
|
*
|
|
* If the data file changes in certain ways these tests have to be run again and
|
|
* the code of the game would potentially have to be updated too. This is why
|
|
* the program exists.
|
|
*
|
|
* The bytecount.c is similar except it reads from the data source file and
|
|
* reads a string at a time (NUL terminated).
|
|
*
|
|
* For this to work right one should run 'make makedata' first.
|
|
*/
|
|
#include <string.h>
|
|
#include <stdio.h>
|
|
#include <ctype.h>
|
|
#include <stdlib.h>
|
|
#include <errno.h>
|
|
|
|
char *p = NULL, *y;
|
|
/*
|
|
* Z calculates the block location.
|
|
*/
|
|
#define Z(x) (x)*1663
|
|
#define V(x) { printf("<%zu>\n", (size_t)(x)); puts(&y[Z(x)]); }
|
|
|
|
int main(void)
|
|
{
|
|
FILE *fp = fopen("data", "r");
|
|
size_t len = 0;
|
|
|
|
errno = 0;
|
|
if (fp == NULL)
|
|
{
|
|
fprintf(stderr, "couldn't open data file: %s\n", strerror(errno));
|
|
exit(1);
|
|
}
|
|
|
|
if (getdelim(&y, &len, EOF, fp) != -1)
|
|
{
|
|
/*
|
|
* now we have to test every single string to make sure it's valid.
|
|
* The makedata.sh script generates V.c.
|
|
*/
|
|
#include "V.c"
|
|
}
|
|
|
|
free(y);
|
|
y = NULL;
|
|
fclose(fp);
|
|
fp = NULL;
|
|
}
|