Advertisement
Guest User

Untitled

a guest
Mar 26th, 2017
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.42 KB | None | 0 0
  1. package bieg.po.lesie;
  2.  
  3. import java.io.PrintStream;
  4.  
  5. /**
  6. *
  7. * @author TB
  8. */
  9. class Komentator {
  10.  
  11. private final PrintStream mikrofon;
  12.  
  13. public Komentator(PrintStream mikrofon) {
  14. this.mikrofon = mikrofon;
  15. }
  16.  
  17. private void mow(String tresc) {
  18. mikrofon.print("KOMENTATOR: ");
  19. mikrofon.println(tresc);
  20. }
  21.  
  22. public void inaugurujBieg(String nazwa, Iterable<Uczestnik> uczestnicy) {
  23. mow("Witam Państwa na leśnym biegu \"" + nazwa + "\"");
  24. mow("Przedstawie teraz uczestników.");
  25.  
  26. przedstawUczestnikow(uczestnicy);
  27. }
  28.  
  29. private void przedstawUczestnikow(Iterable<Uczestnik> uczestnicy) {
  30. boolean pierwszy = true;
  31.  
  32. for (Uczestnik u : uczestnicy) {
  33. String slowo_uczestnik = odmienUczestnik(u);
  34.  
  35. StringBuilder buff = new StringBuilder();
  36. if (pierwszy) {
  37. buff.append("Oto ");
  38. buff.append(odmienPierwszy(u));
  39. buff.append(" ");
  40. } else {
  41. buff.append("A oto ");
  42. buff.append(odmienKolejny(u));
  43. buff.append(" ");
  44. }
  45.  
  46. buff.append(slowo_uczestnik);
  47. buff.append(". ");
  48.  
  49. if (u instanceof Czlowiek) {
  50. Czlowiek czlowiek = (Czlowiek) u;
  51. switch (czlowiek.getPlec()) {
  52. case KOBIETA:
  53. buff.append("Czy mogłaby Pani powiedzieć kilka słów do mikrofonu?");
  54. break;
  55. case MEZCZYZNA:
  56. buff.append("Czy mógłby Pan powiedzieć kilka słów do mikrofonu?");
  57. break;
  58. default: //Tak na wszelki wypadek ;)
  59. buff.append("Poproszę o kilka słów do mikrofonu.");
  60. break;
  61. }
  62. mow(buff.toString());
  63. czlowiek.mowDo(mikrofon);
  64. czlowiek.przedstawSie();
  65. } else if (u instanceof Robot) {
  66. Robot robot = (Robot) u;
  67. buff.append("Jest to robot ").append(robot.identyfikuj()).append(".");
  68. mow(buff.toString());
  69. } else {
  70. buff.append("Hmmm ... dziwne.");
  71. mow(buff.toString());
  72. }
  73.  
  74. pierwszy = false;
  75. }
  76. }
  77.  
  78. public void oznajmijStartUczestnikow(int liczbaUczestnikow, int dlugoscTrasy) {
  79. mow("Wystartowali!!!");
  80. mow("Jest ich " + liczbaUczestnikow + ", zaś trasa ma długość " + dlugoscTrasy + ".");
  81. mow("Jak sobie poradzą na tej trasie? Oto jest pytanie!");
  82. }
  83.  
  84. void powiadomONowejTurze(int licznikTur) {
  85. mow("Mamy teraz turę nr: " + licznikTur);
  86. }
  87.  
  88. public void relacjonuj(int nrElementu, Uczestnik u, RodzajTerenu rt) {
  89. String slowo_uczestnik = odmienUczestnik(u);
  90. slowo_uczestnik = slowo_uczestnik.substring(0, 1).toUpperCase() + slowo_uczestnik.substring(1);
  91. mow(slowo_uczestnik + " " + u + " przemierza teraz " + rt + ". Element nr " + nrElementu + " trasy.");
  92. }
  93.  
  94. public void relacjonujZadanie(int nrElementu, Uczestnik u, boolean zadanie) {
  95. String slowo_uczestnik = odmienUczestnik(u);
  96. slowo_uczestnik = slowo_uczestnik.substring(0, 1).toUpperCase() + slowo_uczestnik.substring(1);
  97. if (zadanie) {
  98. mow(slowo_uczestnik + " " + u + " rozwiazal wlasnie zadanie");
  99. } else {
  100. mow(slowo_uczestnik + " " + u + " nie rozwiazal wlasnie zadania");
  101. }
  102.  
  103. }
  104.  
  105. private String odmienUczestnik(Uczestnik u) {
  106. String slowo_uczestnik = "uczestnik";
  107. if (u instanceof Czlowiek && Czlowiek.Plec.KOBIETA.equals(((Czlowiek) u).getPlec())) {
  108. slowo_uczestnik = "uczestniczka";
  109. }
  110. return slowo_uczestnik;
  111. }
  112.  
  113. private String odmienKolejny(Uczestnik u) {
  114. String slowo_kolejny = "kolejny";
  115. if (u instanceof Czlowiek && Czlowiek.Plec.KOBIETA.equals(((Czlowiek) u).getPlec())) {
  116. slowo_kolejny = "kolejna";
  117. }
  118. return slowo_kolejny;
  119. }
  120.  
  121. private String odmienPierwszy(Uczestnik u) {
  122. String slowo_pierwszy = "pierwszy";
  123. if (u instanceof Czlowiek && Czlowiek.Plec.KOBIETA.equals(((Czlowiek) u).getPlec())) {
  124. slowo_pierwszy = "pierwszy";
  125. }
  126. return slowo_pierwszy;
  127. }
  128.  
  129. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement