mirror of
https://github.com/vattam/BSDGames.git
synced 2025-12-20 19:04:49 +00:00
Initial revision
git-svn-id: file:///srv/svn/joey/bsdgames-trunk@5086 a4a2c43b-8ac3-0310-8836-e0e880c912e2
This commit is contained in:
14
hangman/Makefile.bsd
Normal file
14
hangman/Makefile.bsd
Normal file
@@ -0,0 +1,14 @@
|
||||
# $NetBSD: Makefile,v 1.7 1998/02/18 22:37:31 jtc Exp $
|
||||
# @(#)Makefile 8.1 (Berkeley) 5/31/93
|
||||
|
||||
PROG= hangman
|
||||
SRCS= endgame.c extern.c getguess.c getword.c main.c playgame.c \
|
||||
prdata.c prman.c prword.c setup.c
|
||||
MAN= hangman.6
|
||||
DPADD= ${LIBCURSES}
|
||||
LDADD= -lcurses
|
||||
HIDEGAME=hidegame
|
||||
|
||||
.include <bsd.prog.mk>
|
||||
|
||||
|
||||
12
hangman/Makefrag
Normal file
12
hangman/Makefrag
Normal file
@@ -0,0 +1,12 @@
|
||||
# Makefile - makefile for hangman
|
||||
|
||||
hangman_DIRS := $(GAMESDIR) $(MAN6DIR) $(shell dirname $(HANGMAN_WORDSFILE))
|
||||
hangman_WORDS := hangman/words
|
||||
|
||||
hangman_all: hangman/hangman $(hangman_WORDS) hangman/hangman.6
|
||||
|
||||
hangman_install: hangman_all
|
||||
$(INSTALL_BINARY) hangman/hangman $(INSTALL_PREFIX)$(GAMESDIR)/hangman
|
||||
$(HIDE_GAME) hangman
|
||||
$(INSTALL_DATA) $(hangman_WORDS) $(INSTALL_PREFIX)$(HANGMAN_WORDSFILE)
|
||||
$(INSTALL_MANUAL) hangman/hangman.6
|
||||
84
hangman/endgame.c
Normal file
84
hangman/endgame.c
Normal file
@@ -0,0 +1,84 @@
|
||||
/* $NetBSD: endgame.c,v 1.4 1997/10/11 01:16:26 lukem Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1983, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* This product includes software developed by the University of
|
||||
* California, Berkeley and its contributors.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#ifndef lint
|
||||
#if 0
|
||||
static char sccsid[] = "@(#)endgame.c 8.1 (Berkeley) 5/31/93";
|
||||
#else
|
||||
__RCSID("$NetBSD: endgame.c,v 1.4 1997/10/11 01:16:26 lukem Exp $");
|
||||
#endif
|
||||
#endif /* not lint */
|
||||
|
||||
#include "hangman.h"
|
||||
|
||||
/*
|
||||
* endgame:
|
||||
* Do what's necessary at the end of the game
|
||||
*/
|
||||
void
|
||||
endgame()
|
||||
{
|
||||
char ch;
|
||||
|
||||
prman();
|
||||
if (Errors >= MAXERRS)
|
||||
Errors = MAXERRS + 2;
|
||||
prword();
|
||||
prdata();
|
||||
move(MESGY, MESGX);
|
||||
if (Errors > MAXERRS)
|
||||
printw("Sorry, the word was \"%s\"\n", Word);
|
||||
else
|
||||
printw("You got it!\n");
|
||||
|
||||
for (;;) {
|
||||
mvaddstr(MESGY + 1, MESGX, "Another word? ");
|
||||
leaveok(stdscr, FALSE);
|
||||
refresh();
|
||||
if ((ch = readch()) == 'n')
|
||||
die(0);
|
||||
else
|
||||
if (ch == 'y')
|
||||
break;
|
||||
mvaddstr(MESGY + 2, MESGX, "Please type 'y' or 'n'");
|
||||
}
|
||||
|
||||
leaveok(stdscr, TRUE);
|
||||
move(MESGY, MESGX);
|
||||
deleteln();
|
||||
deleteln();
|
||||
deleteln();
|
||||
}
|
||||
79
hangman/extern.c
Normal file
79
hangman/extern.c
Normal file
@@ -0,0 +1,79 @@
|
||||
/* $NetBSD: extern.c,v 1.4 1997/10/11 01:16:27 lukem Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1983, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* This product includes software developed by the University of
|
||||
* California, Berkeley and its contributors.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#ifndef lint
|
||||
#if 0
|
||||
static char sccsid[] = "@(#)extern.c 8.1 (Berkeley) 5/31/93";
|
||||
#else
|
||||
__RCSID("$NetBSD: extern.c,v 1.4 1997/10/11 01:16:27 lukem Exp $");
|
||||
#endif
|
||||
#endif /* not lint */
|
||||
|
||||
#include "hangman.h"
|
||||
|
||||
bool Guessed[26];
|
||||
|
||||
char Word[BUFSIZ], Known[BUFSIZ];
|
||||
const char *const Noose_pict[] = {
|
||||
" ______",
|
||||
" | |",
|
||||
" |",
|
||||
" |",
|
||||
" |",
|
||||
" |",
|
||||
" __|_____",
|
||||
" | |___",
|
||||
" |_________|",
|
||||
NULL
|
||||
};
|
||||
|
||||
int Errors, Wordnum = 0;
|
||||
|
||||
double Average = 0.0;
|
||||
|
||||
const ERR_POS Err_pos[MAXERRS] = {
|
||||
{2, 10, 'O'},
|
||||
{3, 10, '|'},
|
||||
{4, 10, '|'},
|
||||
{5, 9, '/'},
|
||||
{3, 9, '/'},
|
||||
{3, 11, '\\'},
|
||||
{5, 11, '\\'}
|
||||
};
|
||||
|
||||
FILE *Dict = NULL;
|
||||
|
||||
off_t Dict_size;
|
||||
114
hangman/getguess.c
Normal file
114
hangman/getguess.c
Normal file
@@ -0,0 +1,114 @@
|
||||
/* $NetBSD: getguess.c,v 1.7 1997/10/11 01:16:29 lukem Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1983, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* This product includes software developed by the University of
|
||||
* California, Berkeley and its contributors.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#ifndef lint
|
||||
#if 0
|
||||
static char sccsid[] = "@(#)getguess.c 8.1 (Berkeley) 5/31/93";
|
||||
#else
|
||||
__RCSID("$NetBSD: getguess.c,v 1.7 1997/10/11 01:16:29 lukem Exp $");
|
||||
#endif
|
||||
#endif /* not lint */
|
||||
|
||||
#include <sys/ttydefaults.h>
|
||||
#include "hangman.h"
|
||||
|
||||
/*
|
||||
* getguess:
|
||||
* Get another guess
|
||||
*/
|
||||
void
|
||||
getguess()
|
||||
{
|
||||
int i;
|
||||
int ch;
|
||||
bool correct;
|
||||
|
||||
leaveok(stdscr, FALSE);
|
||||
for (;;) {
|
||||
move(PROMPTY, PROMPTX + sizeof "Guess: ");
|
||||
refresh();
|
||||
ch = readch();
|
||||
if (isalpha(ch)) {
|
||||
if (isupper(ch))
|
||||
ch = tolower(ch);
|
||||
if (Guessed[ch - 'a'])
|
||||
mvprintw(MESGY, MESGX, "Already guessed '%c'",
|
||||
ch);
|
||||
else
|
||||
break;
|
||||
} else
|
||||
if (ch == CTRL('D'))
|
||||
die(0);
|
||||
else
|
||||
mvprintw(MESGY, MESGX,
|
||||
"Not a valid guess: '%s'", unctrl(ch));
|
||||
}
|
||||
leaveok(stdscr, TRUE);
|
||||
move(MESGY, MESGX);
|
||||
clrtoeol();
|
||||
|
||||
Guessed[ch - 'a'] = TRUE;
|
||||
correct = FALSE;
|
||||
for (i = 0; Word[i] != '\0'; i++)
|
||||
if (Word[i] == ch) {
|
||||
Known[i] = ch;
|
||||
correct = TRUE;
|
||||
}
|
||||
if (!correct)
|
||||
Errors++;
|
||||
}
|
||||
/*
|
||||
* readch;
|
||||
* Read a character from the input
|
||||
*/
|
||||
int
|
||||
readch()
|
||||
{
|
||||
int cnt;
|
||||
char ch;
|
||||
|
||||
cnt = 0;
|
||||
for (;;) {
|
||||
if (read(0, &ch, sizeof ch) <= 0) {
|
||||
if (++cnt > 100)
|
||||
die(0);
|
||||
} else
|
||||
if (ch == CTRL('L')) {
|
||||
wrefresh(curscr);
|
||||
} else
|
||||
return ch;
|
||||
}
|
||||
}
|
||||
82
hangman/getword.c
Normal file
82
hangman/getword.c
Normal file
@@ -0,0 +1,82 @@
|
||||
/* $NetBSD: getword.c,v 1.5 1997/10/11 01:16:30 lukem Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1983, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* This product includes software developed by the University of
|
||||
* California, Berkeley and its contributors.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#ifndef lint
|
||||
#if 0
|
||||
static char sccsid[] = "@(#)getword.c 8.1 (Berkeley) 5/31/93";
|
||||
#else
|
||||
__RCSID("$NetBSD: getword.c,v 1.5 1997/10/11 01:16:30 lukem Exp $");
|
||||
#endif
|
||||
#endif /* not lint */
|
||||
|
||||
#include "hangman.h"
|
||||
|
||||
/*
|
||||
* getword:
|
||||
* Get a valid word out of the dictionary file
|
||||
*/
|
||||
void
|
||||
getword()
|
||||
{
|
||||
FILE *inf;
|
||||
char *wp, *gp;
|
||||
long pos;
|
||||
|
||||
inf = Dict;
|
||||
for (;;) {
|
||||
pos = (double) rand() / (RAND_MAX + 1.0) * (double) Dict_size;
|
||||
fseek(inf, pos, 0);
|
||||
if (fgets(Word, BUFSIZ, inf) == NULL)
|
||||
continue;
|
||||
if (fgets(Word, BUFSIZ, inf) == NULL)
|
||||
continue;
|
||||
Word[strlen(Word) - 1] = '\0';
|
||||
if (strlen(Word) < MINLEN)
|
||||
continue;
|
||||
for (wp = Word; *wp; wp++)
|
||||
if (!islower(*wp))
|
||||
goto cont;
|
||||
break;
|
||||
cont: ;
|
||||
}
|
||||
gp = Known;
|
||||
wp = Word;
|
||||
while (*wp) {
|
||||
*gp++ = '-';
|
||||
wp++;
|
||||
}
|
||||
*gp = '\0';
|
||||
}
|
||||
57
hangman/hangman.6.in
Normal file
57
hangman/hangman.6.in
Normal file
@@ -0,0 +1,57 @@
|
||||
.\" $NetBSD: hangman.6,v 1.6 1997/10/11 01:16:32 lukem Exp $
|
||||
.\"
|
||||
.\" Copyright (c) 1983, 1993
|
||||
.\" The Regents of the University of California. All rights reserved.
|
||||
.\"
|
||||
.\" Redistribution and use in source and binary forms, with or without
|
||||
.\" modification, are permitted provided that the following conditions
|
||||
.\" are met:
|
||||
.\" 1. Redistributions of source code must retain the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer.
|
||||
.\" 2. Redistributions in binary form must reproduce the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer in the
|
||||
.\" documentation and/or other materials provided with the distribution.
|
||||
.\" 3. All advertising materials mentioning features or use of this software
|
||||
.\" must display the following acknowledgement:
|
||||
.\" This product includes software developed by the University of
|
||||
.\" California, Berkeley and its contributors.
|
||||
.\" 4. Neither the name of the University nor the names of its contributors
|
||||
.\" may be used to endorse or promote products derived from this software
|
||||
.\" without specific prior written permission.
|
||||
.\"
|
||||
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" @(#)hangman.6 8.1 (Berkeley) 5/31/93
|
||||
.\"
|
||||
.Dd May 31, 1993
|
||||
.Dt HANGMAN 6
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm hangman
|
||||
.Nd Computer version of the game hangman
|
||||
.Sh SYNOPSIS
|
||||
.Nm
|
||||
.Sh DESCRIPTION
|
||||
In
|
||||
.Nm "" ,
|
||||
the computer picks a word from the on-line word list
|
||||
and you must try to guess it.
|
||||
The computer keeps track of which letters have been guessed
|
||||
and how many wrong guesses you have made on the screen in a graphic fashion.
|
||||
.Sh FILES
|
||||
.Bl -tag -width @hangman_wordsfile@ -compact
|
||||
.It Pa @hangman_wordsfile@
|
||||
On-line word list
|
||||
.El
|
||||
.Sh AUTHOR
|
||||
Ken Arnold
|
||||
95
hangman/hangman.h
Normal file
95
hangman/hangman.h
Normal file
@@ -0,0 +1,95 @@
|
||||
/* $NetBSD: hangman.h,v 1.7 1998/09/11 13:42:03 hubertf Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1983, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* This product includes software developed by the University of
|
||||
* California, Berkeley and its contributors.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)hangman.h 8.1 (Berkeley) 5/31/93
|
||||
*/
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <ctype.h>
|
||||
#include <curses.h>
|
||||
#include <signal.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
#include "pathnames.h"
|
||||
|
||||
#define MINLEN 6
|
||||
#define MAXERRS 7
|
||||
|
||||
#define MESGY 12
|
||||
#define MESGX 0
|
||||
#define PROMPTY 11
|
||||
#define PROMPTX 0
|
||||
#define KNOWNY 10
|
||||
#define KNOWNX 1
|
||||
#define NUMBERY 4
|
||||
#define NUMBERX (COLS - 1 - 26)
|
||||
#define AVGY 5
|
||||
#define AVGX (COLS - 1 - 26)
|
||||
#define GUESSY 2
|
||||
#define GUESSX (COLS - 1 - 26)
|
||||
|
||||
|
||||
typedef struct {
|
||||
short y, x;
|
||||
char ch;
|
||||
} ERR_POS;
|
||||
|
||||
extern bool Guessed[];
|
||||
|
||||
extern char Word[], Known[];
|
||||
extern const char *const Noose_pict[];
|
||||
|
||||
extern int Errors, Wordnum;
|
||||
|
||||
extern double Average;
|
||||
|
||||
extern const ERR_POS Err_pos[];
|
||||
|
||||
extern FILE *Dict;
|
||||
|
||||
extern off_t Dict_size;
|
||||
|
||||
void die __P((int));
|
||||
void endgame __P((void));
|
||||
int main __P((void));
|
||||
void getguess __P((void));
|
||||
void getword __P((void));
|
||||
void playgame __P((void));
|
||||
void prdata __P((void));
|
||||
void prman __P((void));
|
||||
void prword __P((void));
|
||||
int readch __P((void));
|
||||
void setup __P((void));
|
||||
83
hangman/main.c
Normal file
83
hangman/main.c
Normal file
@@ -0,0 +1,83 @@
|
||||
/* $NetBSD: main.c,v 1.5 1998/09/11 13:42:03 hubertf Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1983, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* This product includes software developed by the University of
|
||||
* California, Berkeley and its contributors.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#ifndef lint
|
||||
__COPYRIGHT("@(#) Copyright (c) 1983, 1993\n\
|
||||
The Regents of the University of California. All rights reserved.\n");
|
||||
#endif /* not lint */
|
||||
|
||||
#ifndef lint
|
||||
#if 0
|
||||
static char sccsid[] = "@(#)main.c 8.1 (Berkeley) 5/31/93";
|
||||
#else
|
||||
__RCSID("$NetBSD: main.c,v 1.5 1998/09/11 13:42:03 hubertf Exp $");
|
||||
#endif
|
||||
#endif /* not lint */
|
||||
|
||||
#include "hangman.h"
|
||||
|
||||
/*
|
||||
* This game written by Ken Arnold.
|
||||
*/
|
||||
int
|
||||
main(void)
|
||||
{
|
||||
/* Revoke setgid privileges */
|
||||
setregid(getgid(), getgid());
|
||||
|
||||
initscr();
|
||||
signal(SIGINT, die);
|
||||
setup();
|
||||
for (;;) {
|
||||
Wordnum++;
|
||||
playgame();
|
||||
Average = (Average * (Wordnum - 1) + Errors) / Wordnum;
|
||||
}
|
||||
/* NOTREACHED */
|
||||
}
|
||||
/*
|
||||
* die:
|
||||
* Die properly.
|
||||
*/
|
||||
void
|
||||
die(dummy)
|
||||
int dummy __attribute__((unused));
|
||||
{
|
||||
mvcur(0, COLS - 1, LINES - 1, 0);
|
||||
endwin();
|
||||
putchar('\n');
|
||||
exit(0);
|
||||
}
|
||||
38
hangman/pathnames.h.in
Normal file
38
hangman/pathnames.h.in
Normal file
@@ -0,0 +1,38 @@
|
||||
/* $NetBSD: pathnames.h,v 1.3 1995/03/23 08:32:51 cgd Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1990, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* This product includes software developed by the University of
|
||||
* California, Berkeley and its contributors.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)pathnames.h 8.1 (Berkeley) 5/31/93
|
||||
*/
|
||||
|
||||
#define _PATH_DICT "@hangman_wordsfile@"
|
||||
68
hangman/playgame.c
Normal file
68
hangman/playgame.c
Normal file
@@ -0,0 +1,68 @@
|
||||
/* $NetBSD: playgame.c,v 1.4 1997/10/11 01:16:36 lukem Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1983, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* This product includes software developed by the University of
|
||||
* California, Berkeley and its contributors.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#ifndef lint
|
||||
#if 0
|
||||
static char sccsid[] = "@(#)playgame.c 8.1 (Berkeley) 5/31/93";
|
||||
#else
|
||||
__RCSID("$NetBSD: playgame.c,v 1.4 1997/10/11 01:16:36 lukem Exp $");
|
||||
#endif
|
||||
#endif /* not lint */
|
||||
|
||||
#include "hangman.h"
|
||||
|
||||
/*
|
||||
* playgame:
|
||||
* play a game
|
||||
*/
|
||||
void
|
||||
playgame()
|
||||
{
|
||||
bool *bp;
|
||||
|
||||
getword();
|
||||
Errors = 0;
|
||||
bp = Guessed;
|
||||
while (bp < &Guessed[26])
|
||||
*bp++ = FALSE;
|
||||
while (Errors < MAXERRS && strchr(Known, '-') != NULL) {
|
||||
prword();
|
||||
prdata();
|
||||
prman();
|
||||
getguess();
|
||||
}
|
||||
endgame();
|
||||
}
|
||||
66
hangman/prdata.c
Normal file
66
hangman/prdata.c
Normal file
@@ -0,0 +1,66 @@
|
||||
/* $NetBSD: prdata.c,v 1.4 1997/10/11 01:16:37 lukem Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1983, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* This product includes software developed by the University of
|
||||
* California, Berkeley and its contributors.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#ifndef lint
|
||||
#if 0
|
||||
static char sccsid[] = "@(#)prdata.c 8.1 (Berkeley) 5/31/93";
|
||||
#else
|
||||
__RCSID("$NetBSD: prdata.c,v 1.4 1997/10/11 01:16:37 lukem Exp $");
|
||||
#endif
|
||||
#endif /* not lint */
|
||||
|
||||
#include "hangman.h"
|
||||
|
||||
/*
|
||||
* prdata:
|
||||
* Print out the current guesses
|
||||
*/
|
||||
void
|
||||
prdata()
|
||||
{
|
||||
bool *bp;
|
||||
|
||||
move(GUESSY, GUESSX + sizeof "Guessed: ");
|
||||
bp = Guessed;
|
||||
while (bp < &Guessed[26])
|
||||
if (*bp++)
|
||||
addch((bp - Guessed) + 'a' - 1);
|
||||
clrtoeol();
|
||||
mvprintw(NUMBERY, NUMBERX + sizeof "Word #: ", "%d", Wordnum);
|
||||
mvprintw(AVGY, AVGX + sizeof "Current Average: ", "%.3f",
|
||||
(Average * (Wordnum - 1) + Errors) / Wordnum);
|
||||
mvprintw(AVGY + 1, AVGX + sizeof "Overall Average: ", "%.3f", Average);
|
||||
}
|
||||
63
hangman/prman.c
Normal file
63
hangman/prman.c
Normal file
@@ -0,0 +1,63 @@
|
||||
/* $NetBSD: prman.c,v 1.4 1997/10/11 01:16:39 lukem Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1983, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* This product includes software developed by the University of
|
||||
* California, Berkeley and its contributors.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#ifndef lint
|
||||
#if 0
|
||||
static char sccsid[] = "@(#)prman.c 8.1 (Berkeley) 5/31/93";
|
||||
#else
|
||||
__RCSID("$NetBSD: prman.c,v 1.4 1997/10/11 01:16:39 lukem Exp $");
|
||||
#endif
|
||||
#endif /* not lint */
|
||||
|
||||
#include "hangman.h"
|
||||
|
||||
/*
|
||||
* prman:
|
||||
* Print out the man appropriately for the give number
|
||||
* of incorrect guesses.
|
||||
*/
|
||||
void
|
||||
prman()
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < Errors; i++)
|
||||
mvaddch(Err_pos[i].y, Err_pos[i].x, Err_pos[i].ch);
|
||||
while (i < MAXERRS) {
|
||||
mvaddch(Err_pos[i].y, Err_pos[i].x, ' ');
|
||||
i++;
|
||||
}
|
||||
}
|
||||
57
hangman/prword.c
Normal file
57
hangman/prword.c
Normal file
@@ -0,0 +1,57 @@
|
||||
/* $NetBSD: prword.c,v 1.4 1997/10/11 01:16:40 lukem Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1983, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* This product includes software developed by the University of
|
||||
* California, Berkeley and its contributors.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#ifndef lint
|
||||
#if 0
|
||||
static char sccsid[] = "@(#)prword.c 8.1 (Berkeley) 5/31/93";
|
||||
#else
|
||||
__RCSID("$NetBSD: prword.c,v 1.4 1997/10/11 01:16:40 lukem Exp $");
|
||||
#endif
|
||||
#endif /* not lint */
|
||||
|
||||
#include "hangman.h"
|
||||
|
||||
/*
|
||||
* prword:
|
||||
* Print out the current state of the word
|
||||
*/
|
||||
void
|
||||
prword()
|
||||
{
|
||||
move(KNOWNY, KNOWNX + sizeof "Word: ");
|
||||
addstr(Known);
|
||||
clrtoeol();
|
||||
}
|
||||
81
hangman/setup.c
Normal file
81
hangman/setup.c
Normal file
@@ -0,0 +1,81 @@
|
||||
/* $NetBSD: setup.c,v 1.5 1997/10/11 08:01:06 lukem Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1983, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* This product includes software developed by the University of
|
||||
* California, Berkeley and its contributors.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#ifndef lint
|
||||
#if 0
|
||||
static char sccsid[] = "@(#)setup.c 8.1 (Berkeley) 5/31/93";
|
||||
#else
|
||||
__RCSID("$NetBSD: setup.c,v 1.5 1997/10/11 08:01:06 lukem Exp $");
|
||||
#endif
|
||||
#endif /* not lint */
|
||||
|
||||
#include <err.h>
|
||||
#include <time.h>
|
||||
#include "hangman.h"
|
||||
|
||||
/*
|
||||
* setup:
|
||||
* Set up the strings on the screen.
|
||||
*/
|
||||
void
|
||||
setup()
|
||||
{
|
||||
const char *const *sp;
|
||||
static struct stat sbuf;
|
||||
|
||||
noecho();
|
||||
crmode();
|
||||
|
||||
mvaddstr(PROMPTY, PROMPTX, "Guess:");
|
||||
mvaddstr(GUESSY, GUESSX, "Guessed:");
|
||||
mvaddstr(NUMBERY, NUMBERX, "Word #:");
|
||||
mvaddstr(AVGY, AVGX, "Current Average:");
|
||||
mvaddstr(AVGY + 1, AVGX, "Overall Average:");
|
||||
mvaddstr(KNOWNY, KNOWNX, "Word: ");
|
||||
|
||||
for (sp = Noose_pict; *sp != NULL; sp++) {
|
||||
move(sp - Noose_pict, 0);
|
||||
addstr(*sp);
|
||||
}
|
||||
|
||||
srand(time(NULL) + getpid());
|
||||
if ((Dict = fopen(_PATH_DICT, "r")) == NULL) {
|
||||
endwin();
|
||||
err(1, "fopen %s", _PATH_DICT);
|
||||
}
|
||||
fstat(fileno(Dict), &sbuf);
|
||||
Dict_size = sbuf.st_size;
|
||||
}
|
||||
38619
hangman/words
Normal file
38619
hangman/words
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user