Skip to content

Commit ca35182

Browse files
authored
Merge pull request #74 from krittin1/main
✨ [feat]: add GuessingGame program
2 parents 980a238 + 7af3552 commit ca35182

File tree

3 files changed

+142
-0
lines changed

3 files changed

+142
-0
lines changed

GuessingGame.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
public interface GuessingGame {
2+
3+
void setAnswer(String ans);
4+
void guess(String s);
5+
String getOutput();
6+
boolean isWon();
7+
boolean isLost();
8+
}

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+
}

WordMatch.java

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
public class WordMatch implements GuessingGame {
2+
private String answer ;
3+
private int match;
4+
private boolean fact = false;
5+
6+
public WordMatch() {
7+
this.match = 0;
8+
}
9+
10+
@Override
11+
public void setAnswer(String ans) {
12+
answer = ans.toLowerCase();
13+
}
14+
15+
@Override
16+
public void guess(String s) {
17+
String tmp = s.toLowerCase();
18+
match =0;
19+
if(s.length()!= answer.length()){
20+
fact = true;
21+
}
22+
else {
23+
for (int i = 0; i < answer.length(); i++) {
24+
if (answer.charAt(i) == tmp.charAt(i)) {
25+
match++;
26+
}
27+
}
28+
}
29+
}
30+
31+
@Override
32+
public String getOutput() {
33+
if(fact == true){
34+
fact =false;
35+
return "Length not match";
36+
}
37+
else if(match == answer.length()){
38+
return "";
39+
}
40+
else {
41+
return "Match " + match;
42+
}
43+
}
44+
45+
@Override
46+
public boolean isWon() {
47+
if(match == answer.length()){
48+
return true;
49+
}
50+
return false;
51+
}
52+
53+
@Override
54+
public boolean isLost() {
55+
return false;
56+
}
57+
}

0 commit comments

Comments
 (0)