kokusz19

Shell_Hangman

Jan 2nd, 2018
155
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.34 KB | None | 0 0
  1. package shell;
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.FileNotFoundException;
  5. import java.io.FileReader;
  6. import java.io.IOException;
  7. import java.util.ArrayList;
  8. import java.util.Collections;
  9. import java.util.List;
  10. import java.util.Random;
  11. import java.util.Set;
  12. import java.util.TreeSet;
  13. import java.util.logging.Level;
  14. import java.util.logging.Logger;
  15.  
  16. public class NextGame extends Shell {
  17.  
  18. public List<String> lista = new ArrayList<>();
  19. public int hiba = 0;
  20. public String veletlen = null;
  21. public Set<Character> set = new TreeSet<>();
  22. public NextGame(){
  23.  
  24. addCommand(new Command("load"){
  25. @Override
  26. public boolean execute(String... args){
  27. if(args.length != 1)
  28. return false;
  29. else{
  30. try {
  31. lista.clear();
  32. veletlen = null;
  33. String sor;
  34. BufferedReader br = new BufferedReader(new FileReader(args[0]));
  35. while((sor = br.readLine()) != null){
  36. lista.add(sor);
  37. }
  38. } catch (FileNotFoundException ex) {
  39. Logger.getLogger(NextGame.class.getName()).log(Level.SEVERE, null, ex);
  40. } catch (IOException ex) {
  41. Logger.getLogger(NextGame.class.getName()).log(Level.SEVERE, null, ex);
  42. }
  43.  
  44. return true;
  45. }
  46. }
  47. });
  48.  
  49. addCommand(new Command("new"){
  50. @Override
  51. public boolean execute(String... args){
  52. if(lista.size() == 0)
  53. return false;
  54.  
  55. else{
  56. Random rand = new Random();
  57. int sorszam = rand.nextInt(lista.size());
  58. veletlen = lista.get(sorszam);
  59. hiba = 0;
  60. set.clear();
  61. return true;
  62. }
  63. }
  64. });
  65.  
  66. addCommand(new Command("print"){
  67. @Override
  68. public boolean execute(String... args){
  69. int nemtalalt = 0;
  70. if(lista.size() == 0 || veletlen == null)
  71. return false;
  72. else{
  73. try {
  74. System.out.println(getHangman(hiba));
  75. for (int i = 0; i < veletlen.length(); i++) {
  76. if(set.contains(veletlen.charAt(i)))
  77. format("%c", veletlen.charAt(i));
  78. else{
  79. format("_ ");
  80. nemtalalt++;
  81. }
  82. }
  83. //format("%n(%s)%n", veletlen);
  84. format("%nA probalt karakterek: %s%n", set.toString());
  85. if(nemtalalt == 0)
  86. format("Nyertel!%nKitalaltad a keresett szot!%n");
  87.  
  88. } catch (PhaseNumberOutOfBoundsException ex) {
  89. Logger.getLogger(NextGame.class.getName()).log(Level.SEVERE, null, ex);
  90. }
  91.  
  92.  
  93. return true;
  94. }
  95. }
  96. });
  97.  
  98. addCommand(new Command("letter"){
  99. @Override
  100. public boolean execute(String... args){
  101. if(args.length == 0 || args[0].length() != 1 || lista.isEmpty() || veletlen == null || !Character.isAlphabetic(args[0].charAt(0)) || set.contains(args[0].toUpperCase().charAt(0)) || hiba == 5)
  102. return false;
  103. else{
  104.  
  105. if(!veletlen.contains(args[0].toUpperCase())){
  106. hiba++;
  107. }
  108. if(hiba == 5)
  109. format("Vesztettel, elerted az 5 hibalehetőseget!%nA keresett szo %s volt%n", veletlen.toUpperCase() );
  110. set.add(args[0].toUpperCase().charAt(0));
  111.  
  112. return true;
  113. }
  114.  
  115. }
  116. });
  117. }
  118.  
  119. }
Add Comment
Please, Sign In to add comment