Skip to content

Commit 7af3552

Browse files
authored
✨ [feat]: add Hangman.java
1 parent b676c29 commit 7af3552

File tree

1 file changed

+77
-0
lines changed

1 file changed

+77
-0
lines changed

Hangman.java

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
public class Hangman implements GuessingGame{
2+
private String target;
3+
private int life ;
4+
private char[] answer ;
5+
6+
private boolean fact=false;
7+
public Hangman() {
8+
life = 6;
9+
}
10+
11+
12+
13+
14+
@Override
15+
public void setAnswer(String ans) {
16+
17+
target = ans.toLowerCase();
18+
answer = new char[target.length()];
19+
for (int i = 0; i <target.length() ; i++) {
20+
answer[i]='_';
21+
}
22+
23+
24+
25+
}
26+
27+
@Override
28+
public void guess(String s) {
29+
String tmp = s.toLowerCase();
30+
boolean isCorrect = false;
31+
if (s.length() > 1) {
32+
fact = true;
33+
} else {
34+
for (int i = 0; i < target.length(); i++) {
35+
36+
if (target.charAt(i) == tmp.charAt(0)) {
37+
answer[i] = tmp.charAt(0);
38+
isCorrect = true;
39+
}
40+
}
41+
if (isCorrect == false) life--;
42+
}
43+
}
44+
45+
@Override
46+
public String getOutput() {
47+
if(fact == true){
48+
fact = false;
49+
return "One character only";
50+
}
51+
String temp="";
52+
for (int i = 0; i <target.length() ; i++) {
53+
temp += answer[i]+" ";
54+
}
55+
return temp;
56+
57+
58+
}
59+
60+
@Override
61+
public boolean isWon() {
62+
for(int i =0;i<this.target.length();i++){
63+
if(this.target.charAt(i) != this.answer[i]){
64+
return false;
65+
}
66+
}
67+
return true;
68+
}
69+
70+
@Override
71+
public boolean isLost() {
72+
if(this.life <= 0){
73+
return true;
74+
}
75+
return false;
76+
}
77+
}

0 commit comments

Comments
 (0)