Sponsored Content
Full Discussion: whats wrong with this?
Top Forums UNIX for Dummies Questions & Answers whats wrong with this? Post 302304483 by ferrycorsten73 on Monday 6th of April 2009 02:53:23 PM
Old 04-06-2009
whats wrong with this?

can anyone tell me why this code doesn't work how its supposed to, its the hangman game but it doesn't play how its supposed to

#!/bin/bash
NoAttempts="0"
livesgiven="5"
LivesRemain=$livesgiven
LettersAttempted=""
wordfile=words
numwords=0
function menu()
{
clear
cat << menu
~~~~~~~~~~~~~~~~~~~ WELCOME ~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~ THE HANGMAN GAME ~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~ DO YOU WANT TO PLAY? ~~~~~~~~~~~~

Enter your selection (Y/N):
menu
read selection
case $selection in
[Yy]) randomwords clear ;;
[Nn]) echo "Goodbye!"
clear ;;
*) menu;;

esac
}
function randomwords()
{
while read line
do
wordline[$numwords]=$(echo -n "$line")
numwords=$(($numwords +1))
done < $wordfile
numwords=$(($numwords -1))
selection=$(($RANDOM%$numwords+1))
wordpuzzle=$(echo -n ${wordline[$selection]}|tr [a-z] "-")
letter_entry
}
function letter_entry()
{
24,1 Top
lettercount=$(echo -n $wordpuzzle | wc -c )
liveslost=$(($livesgiven-$LivesRemain))
clear
echo "This is a $lettercount letter word."
echo "You have made $NoAttempts attempts, with $LivesRemain lives remaining and have attempted the following letters: $LettersAttempted"
echo "Please enter a letter to guess the puzzle:"
echo "$wordpuzzle"
read letter_new
puzzle=$(echo $wordpuzzle | grep -c "-")
while [ $puzzle -gt 0 ]
do
case $letter_new in
[A-Za-z]) LettersAttempted=$letter_new$LettersAttempted
NoAttempts=$(($NoAttempts + 1))
lettercheck=$(echo ${wordline[$selection]} | grep -c $letter_new)
if [ $lettercheck -eq 0 ]
then
LivesRemain=$(($LivesRemain-1))
if [[ $LiveRemain == 0 ]]
then
clear
echo "Sorry you have no more lives left. You lost! Thank you for playing Hangman."
lostmessage
else
letter_entry
fi
else
wordpuzzle=$(echo ${wordline[$selection]} | tr -c [$LettersAttempted] "-")
letter_entry
fi ;;
*) echo " Please only enter an alphabet"
letter_entry ;;
esac
done
clear
echo "Congratulations!
The word was $(echo $selection). You have successfully completed the word puzzle with $NoAttempts attempts and the lost of $liveslost lives"
echo "Thank you for playing Hangman!"
while true
do
echo "Do you want to play again? (Y/N)?"
read prompt
case "$prompt" in
[Yy]) menu ;;
[Nn]) return 1 ;;
*) echo "Answer Y or N" ;;
esac
done
}
menu
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

tell me whats wrong in this?

#! /bin/bash head -5 $1 echo "remove $1 ?" read answer if then echo invalid answer elif rm $1 echo "$1 is deleted" elif then echo file is not deleted else echo "invalid answer" fi What i really want this to do is to ask to delete the file or not..it says something wrong... (1 Reply)
Discussion started by: nadman123
1 Replies

2. Shell Programming and Scripting

tell me whats wrong with this

#! /bin/bash USAGE=" | ] if then echo "$USAGE" exit 1 fi while getopts lb: OPTION do case $(OPTION)in a) echo Hi there! exit 2;; b) echo hello o) OARG=$OPTARG;; \?)echo "$USAGE" ;; exit 2;; esac done shift `expr... (1 Reply)
Discussion started by: nadman123
1 Replies

3. Shell Programming and Scripting

whats wrong with this code

ls -ld | grep $1 /etc/passwd | cut -d: -f6 i need see the content... (4 Replies)
Discussion started by: nadman123
4 Replies

4. UNIX for Dummies Questions & Answers

Whats wrong in the script?

if then if then echo "fst argument is $1 " else if then "fst argument is $1" fi fi fi Can anyone tell me. My requirement is tht pass a string .. Check whether it contains "-". If yes then check if it... (1 Reply)
Discussion started by: nehagupta2008
1 Replies

5. Shell Programming and Scripting

Whats wrong with this line?

I have a file $I_FILE that I need to filter and store the 1st and the 9th columns in another file $O_FILE. With this in Perl, system ("awk -F, '{print \$1, \$9}' \$I_FILE | sed '\/^\$\/d' > O_FILE"); I get: 4096045055 The first line in I_FILE is:... (5 Replies)
Discussion started by: looza
5 Replies

6. Shell Programming and Scripting

whats wrong in my code

Code: #!/usr/bin/perl -w use strict; use warnings; #Clears Screen $CLEAR=`clear`; print $CLEAR; i get the below error: Global symbol "$CLEAR" requires explicit package name at ./mutmg.pl line 6. Global symbol "$CLEAR" requires explicit package name at ./mutmg.pl line 7. (1 Reply)
Discussion started by: sophos
1 Replies

7. Shell Programming and Scripting

Whats wrong in the Function ?

Need your assistance, to find the bug in the function. Function usage erroring out even after passing parameters. usage() { if || ; then echo "************************************************************" echo " CHECK USAGE FOR CORRECT PARAMETERS ... (26 Replies)
Discussion started by: raghunsi
26 Replies

8. Homework & Coursework Questions

Whats wrong with the following

Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted! 1. The problem statement, all variables and given/known data: ls -ld htdocs drwxr-x--- 3 root root 8192 2006-11-19 10:41 htdocs How would a host administrator... (1 Reply)
Discussion started by: Larry_1
1 Replies

9. UNIX for Dummies Questions & Answers

Whats wrong with this if-else

hi whats wrong in below?? CHECK=M10; if ; then echo "hello hi"; else echo "how are u hello hi"; fi I am getting error as ./test.sh: line 2: ' ./test.sh: line 2: M10: command not found ./test.sh: line 2: M10: command not found ./test.sh: line 2: M10: command not found (8 Replies)
Discussion started by: skyineyes
8 Replies

10. Shell Programming and Scripting

Sh Script whats wrong?

Hi there, i have a problem i have created followning sh files some years ago but now it dosen`t work anymore i never used it a long time. Can anyone find the Error? Its always runs the stop() block and trying to Killing the Server also if i try to start or creat a new one. #!/bin/sh stop()... (6 Replies)
Discussion started by: NewCannon
6 Replies
BOGGLE(6)							 BSD Games Manual							 BOGGLE(6)

NAME
boggle -- word search game SYNOPSIS
boggle [-bd] [-s seed] [-t time] [-w length] [+ [+]] [boardspec] DESCRIPTION
The object of boggle is to find as many words as possible on the Boggle board within the three minute time limit. A Boggle board is a four by four arrangement of Boggle cubes, each side of each cube displaying a letter of the alphabet or `qu'. Words are formed by finding a sequence of cubes (letters) that are in the game's dictionary. The (N+1)th cube in the word must be horizontally, vertically, or diagonally adjacent to the Nth cube. Cubes cannot be reused. Words consist solely of lower case letters and must be at least 3 letters long. Command line flags can be given to change the rules of the game. -b Run boggle in batch mode. A boardspec must also be given. The dictionary is read from stdin and a list of words appearing in boardspec is printed to stdout. -d Enable debugging output. -s seed Specify a seed seed other than the time of day. -t time Set the time limit for each game from the default 3 minutes to time seconds. -w length Change the minimum word length from 3 letters to length. + This flag allows a cube to be used multiple times, but not in succession. ++ This flag allows the same cubes to be considered adjacent to itself. boardspec A starting board position can be specified on the command line by listing the board left to right and top to bottom. Help is available during play by typing '?'. More detailed information on the game is given there. BUGS
If there are a great many words in the cube the final display of the words may scroll off of the screen. (On a 25 line screen about 130 words can be displayed.) No word can contain a 'q' that is not immediately followed by a 'u'. When using the + or ++ options the display of words found in the board doesn't indicate reused cubes. AUTHOR
Boggle is a trademark of Parker Brothers. Barry Brachman Dept. of Computer Science University of British Columbia BSD
April 1, 2001 BSD
All times are GMT -4. The time now is 06:54 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy