I have come up with some errors and I can\'t seem to get the program to work cor
ID: 672257 • Letter: I
Question
I have come up with some errors and I can't seem to get the program to work correctly ( it won't finish spelling out the name even though it is correct and keeps putting two s's in the answer even though it should only have 1). This is a hangman program that the answer is "stinson" but it is not working correctly and won't finish right.
{
class Program
{
static void Main(string[] args)
{
Char guessedletter1 = 's';
Char guessedletter2 = 't';
Char guessedletter3 = 'i';
Char guessedletter4 = 'n';
Char guessedletter5 = 's';
Char guessedletter6 = 'o';
Char guessedletter7 = 'n';
Char[] guessed = new char[26];
int guessedIndex = 10;
Char Input;
int InvalidCount;
bool IsGuessed = false;
InvalidCount = 0;
WelcomeMessage();
InitializeGuessedArray(guessed, guessedIndex);
for(int i = 0 ; i < 10; i++){
Input = GetInput();
if (!CheckInput(guessed, Input, guessedletter1, guessedletter2, guessedletter3, guessedletter4, guessedletter5, guessedletter6, guessedletter7) == true) {
InvalidCount = InvalidCount + 1;
}
DisplayGuessedArray(guessed, guessedIndex);
if (CheckifGuessed(guessed, guessedIndex)) {
IsGuessed = true;
break;
}
}
DisplayFinalMessage(IsGuessed, InvalidCount);
Console.Write("Press any key to continue...");
Console.ReadKey();
}
private static void DisplayFinalMessage(bool IsGuessed, int InvalidCount)
{
Console.WriteLine("");
if (IsGuessed)
Console.WriteLine("Congratulations! You have figured out the word! Your score is: " + InvalidCount.ToString());
else
Console.WriteLine("Your score is: " + InvalidCount.ToString());
}
private static bool CheckifGuessed(char[] guessed, int guessedIndex)
{
bool IsCompleted = true;
for(int i = 0; i <= guessedIndex - 1 ; i++)
{
if (guessed[i] == '*') {
IsCompleted = false;
}
}
return IsCompleted;
}
private static void DisplayGuessedArray(char[] guessed, int guessedIndex)
{
for (int i = 0; i <= guessedIndex - 1; i++)
{
Console.Write(guessed[i]);
}
Console.WriteLine("");
Console.WriteLine("");
}
private static bool CheckInput(char[] guessed, char Input, char guessedletter1, char guessedletter2, char guessedletter3, char guessedletter4, char guessedletter5, char guessedletter6, char guessedletter7)
{
bool IsValid = false;
if (Input == guessedletter1)
{
guessed[0] = Input;
IsValid = true;
}
if (Input == guessedletter2)
{
guessed[1] = Input;
IsValid = true;
}
if (Input == guessedletter3)
{
guessed[2] = Input;
IsValid = true;
}
if (Input == guessedletter4)
{
guessed[3] = Input;
IsValid = true;
}
if (Input == guessedletter5)
{
guessed[4] = Input;
IsValid = true;
}
if (Input == guessedletter6)
{
guessed[5] = Input;
IsValid = true;
}
}
if (Input == guessedletter7)
{
guessed[5] = Input;
IsValid = true;
}
if (IsValid == false)
{
Console.WriteLine("You guessed incorrectly!");
return false;
}
else
{
Console.WriteLine("You guessed a letter correctly!");
return true;
}
}
private static char GetInput()
{
Console.Write("Enter a letter please: ");
ConsoleKeyInfo ckInfo = Console.ReadKey();
Console.WriteLine("");
return ckInfo.KeyChar;
}
private static void InitializeGuessedArray(char[] guessed, int guessedIndex)
{
for(int i = 0 ; i <= guessedIndex - 1; i++ )
{
guessed[i] = '*';
}
}
private static void WelcomeMessage()
{
Console.WriteLine("************************************************************");
Console.WriteLine("*********************** WEEK 6 *****************************");
Console.WriteLine("************************************************************");
Console.WriteLine("");
}
}
}
Explanation / Answer
import java.io.IOException;
import java.util.Scanner;
import javax.sound.midi.SysexMessage;
public class Hangman {
public static void main(String[] args) throws IOException {
String str = "stinson";
int len = str.length();
StringBuffer outputBuffer = new StringBuffer(len);
for (int i = 0; i < len; i++){
outputBuffer.append("_");
}
StringBuilder guessedWord = new StringBuilder(outputBuffer.toString());
Scanner s = new Scanner(System.in);
for(int i=0; i<10; i++) {
System.out.println(" Enter your "+(i+1)+" guess: ");
char c = s.nextLine().charAt(0);
for(int j=0; j<len; j++) {
if(c == str.charAt(j)) {
StringBuilder temp = new StringBuilder(guessedWord);
temp.setCharAt(j, str.charAt(j));
guessedWord = temp;
}
}
System.out.println(guessedWord);
if(str.equals(guessedWord.toString())){
System.out.println("You have solved this hangman");
return;
}
}
System.out.println("Sorry, you have exhausted your 10 chances !!!");
}
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.