mirror of
https://github.com/bobbimanners/GNO-Extras.git
synced 2024-12-22 02:30:17 +00:00
Got quiz to work on GNO
This commit is contained in:
parent
ec75640c20
commit
5ac09e1b7e
@ -52,7 +52,7 @@ dmake install
|
|||||||
|
|
||||||
*Disclaimer / To Do*
|
*Disclaimer / To Do*
|
||||||
|
|
||||||
`backgammon` and `quiz` do not work yet.
|
`backgammon` does not work yet.
|
||||||
|
|
||||||
Very minimal testing has been performed. If you find bugs, please let me know!
|
Very minimal testing has been performed. If you find bugs, please let me know!
|
||||||
|
|
||||||
|
@ -20,7 +20,7 @@ FILE *input;
|
|||||||
int nl = 0;
|
int nl = 0;
|
||||||
int na = NA;
|
int na = NA;
|
||||||
int inc;
|
int inc;
|
||||||
int ptr = 0;
|
int ptr = 0;
|
||||||
int nc = 0;
|
int nc = 0;
|
||||||
char line[150];
|
char line[150];
|
||||||
char response[100];
|
char response[100];
|
||||||
@ -32,24 +32,24 @@ int disj(int s);
|
|||||||
int eat(int s, char c);
|
int eat(int s, char c);
|
||||||
int string(int s);
|
int string(int s);
|
||||||
int fold(int c);
|
int fold(int c);
|
||||||
int publish(char *t);
|
void publish(char *t);
|
||||||
int pub1(int s);
|
void pub1(int s);
|
||||||
int _segment(char *u, char *w[]);
|
int _segment(char *u, char *w[]);
|
||||||
int perm(char *u[], int m, char *v[], int n, int p[]);
|
int perm(char *u[], int m, char *v[], int n, int p[]);
|
||||||
int find(char *u[], int m);
|
int find(char *u[], int m);
|
||||||
int readindex(void);
|
void readindex(void);
|
||||||
int talloc(void);
|
void talloc(void);
|
||||||
int badinfo(void);
|
void badinfo(void);
|
||||||
int next(void);
|
int next(void);
|
||||||
void done(int, int);
|
void done(int, int);
|
||||||
int instruct(char *info);
|
void instruct(char *info);
|
||||||
int dunno(void);
|
void dunno(void);
|
||||||
int query(char *r);
|
int query(char *r);
|
||||||
|
|
||||||
int readline(void)
|
int readline(void)
|
||||||
{
|
{
|
||||||
char *t;
|
char *t;
|
||||||
register c;
|
register int c;
|
||||||
loop:
|
loop:
|
||||||
for (t=line; c=getc(input), *t=c, c!=EOF; t++) {
|
for (t=line; c=getc(input), *t=c, c!=EOF; t++) {
|
||||||
nc++;
|
nc++;
|
||||||
@ -103,7 +103,7 @@ int disj(int s)
|
|||||||
case 0:
|
case 0:
|
||||||
case ']':
|
case ']':
|
||||||
case '}':
|
case '}':
|
||||||
return(t|x&s);
|
return(t|(x&s));
|
||||||
case '|':
|
case '|':
|
||||||
ev++;
|
ev++;
|
||||||
t |= s;
|
t |= s;
|
||||||
@ -194,13 +194,13 @@ int fold(int c)
|
|||||||
return(c|040);
|
return(c|040);
|
||||||
}
|
}
|
||||||
|
|
||||||
int publish(char *t)
|
void publish(char *t)
|
||||||
{
|
{
|
||||||
ev = t;
|
ev = t;
|
||||||
pub1(1);
|
pub1(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
int pub1(int s)
|
void pub1(int s)
|
||||||
{
|
{
|
||||||
for(;;ev++){
|
for(;;ev++){
|
||||||
switch(*ev) {
|
switch(*ev) {
|
||||||
@ -287,7 +287,7 @@ int find(char *u[], int m)
|
|||||||
return(0);
|
return(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
int readindex(void)
|
void readindex(void)
|
||||||
{
|
{
|
||||||
xx[0] = nc = 0;
|
xx[0] = nc = 0;
|
||||||
while(readline()) {
|
while(readline()) {
|
||||||
@ -300,7 +300,7 @@ int readindex(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int talloc(void)
|
void talloc(void)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
for(i=0;i<NF;i++)
|
for(i=0;i<NF;i++)
|
||||||
@ -309,7 +309,7 @@ int talloc(void)
|
|||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
register j;
|
register int j;
|
||||||
int i;
|
int i;
|
||||||
int x;
|
int x;
|
||||||
int z;
|
int z;
|
||||||
@ -318,7 +318,7 @@ int main(int argc, char *argv[])
|
|||||||
int count;
|
int count;
|
||||||
info = "/usr/local/games/quiz.k/index";
|
info = "/usr/local/games/quiz.k/index";
|
||||||
time(&tm);
|
time(&tm);
|
||||||
inc = (int)tm&077774|01;
|
inc = (int)((tm&077774)|01);
|
||||||
loop:
|
loop:
|
||||||
if(argc>1&&*argv[1]=='-') {
|
if(argc>1&&*argv[1]=='-') {
|
||||||
switch(argv[1][1]) {
|
switch(argv[1][1]) {
|
||||||
@ -393,15 +393,17 @@ loop:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define STDIN 1 /* For GNO */
|
||||||
|
|
||||||
int query(char *r)
|
int query(char *r)
|
||||||
{
|
{
|
||||||
char *t;
|
char *t;
|
||||||
for(t=r;;t++) {
|
for(t=r;;t++) {
|
||||||
if(read(0,t,1)==0)
|
if(read(STDIN,t,1)==0)
|
||||||
done(0,0);
|
done(0,0);
|
||||||
if(*t==' '&&(t==r||t[-1]==' '))
|
if(*t==' '&&(t==r||t[-1]==' '))
|
||||||
t--;
|
t--;
|
||||||
if(*t=='\n') {
|
if(*t=='\n' || *t=='\r') {
|
||||||
while(t>r&&t[-1]==' ')
|
while(t>r&&t[-1]==' ')
|
||||||
*--t = '\n';
|
*--t = '\n';
|
||||||
break;
|
break;
|
||||||
@ -434,7 +436,7 @@ void done(int x, int y)
|
|||||||
printf("score %d%%\n",100*rights/(rights+wrongs));
|
printf("score %d%%\n",100*rights/(rights+wrongs));
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
int instruct(char *info)
|
void instruct(char *info)
|
||||||
{
|
{
|
||||||
int i, n;
|
int i, n;
|
||||||
printf("Subjects:\n\n");
|
printf("Subjects:\n\n");
|
||||||
@ -471,11 +473,11 @@ int instruct(char *info)
|
|||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
int badinfo(void){
|
void badinfo(void){
|
||||||
printf("Bad info %s\n",line);
|
printf("Bad info %s\n",line);
|
||||||
}
|
}
|
||||||
|
|
||||||
int dunno(void)
|
void dunno(void)
|
||||||
{
|
{
|
||||||
printf("I don't know about that\n");
|
printf("I don't know about that\n");
|
||||||
exit(0);
|
exit(0);
|
||||||
|
Loading…
Reference in New Issue
Block a user