Advertisement
Guest User

Untitled

a guest
Jun 22nd, 2017
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.38 KB | None | 0 0
  1. package puplets;
  2.  
  3. import puplet.Puplet;
  4.  
  5. public class woordrader extends Puplet {
  6.  
  7. private String[] puplets;
  8.  
  9. private String sender = null; // (de zender van ascii die je ontvangt)
  10. private String guessedLetter = null;
  11. private String currentResult;
  12.  
  13. private boolean challengeAgreed = false;
  14. private boolean expansion= false;
  15.  
  16. private int coins = 300;
  17. private int faults = 0;
  18. private int wordLength = 0;
  19.  
  20.  
  21. public woordrader() {
  22. super("Casper");
  23. makeMenu(new String[] {"Search puplets"});
  24. setImage("lach_munt3");
  25. }
  26.  
  27. public void menuEvent(String s) {
  28. if(s.equals("Search puplets")) {
  29. puplets = discoverPuplets();
  30. if(puplets.length > 0) {
  31. setMessage(puplets.length + " puplet(s) found. \n Wait for a challenge.");
  32. clearMenu();
  33. }
  34. else {
  35. setMessage("No puplets found.");
  36. }
  37. }
  38. else if(s.equals("Agree invite")) {
  39. challengeAgreed = true;
  40. AgreeChallenge();
  41. setMessage("The game started! \n You'll have to wait for the word.");
  42. clearMenu();
  43.  
  44. }
  45. else if(s.equals("Guess a letter")) {
  46. guessLetter();
  47. }
  48. else if(s.equals("Bribe")) {
  49. if(coins > 0) {
  50. bribe();
  51. coins = coins - 100;
  52. setImage("lach_munt"+(coins/100));
  53. }
  54. else {
  55. setImage("sad");
  56. setMessage("You have no more coins!");
  57. }
  58. }
  59. }
  60.  
  61.  
  62. protected void frameEvent(byte[] frame) {
  63. String part1 = new String(frame, 0 , 7);
  64. String part2 = new String(frame, 7, 7);
  65. String possibleSender = part1.trim();
  66. String receiver = part2.trim();
  67.  
  68. /*
  69. * Code die na het uitdaging aangaan de zender vast zet en dus niks doet met anderen
  70. */
  71. if(!challengeAgreed) {
  72. sender = possibleSender;
  73. }
  74. else {
  75. if(sender == null) {
  76. sender = possibleSender;
  77. }
  78. else if(!sender.equals(possibleSender)) {
  79. return;
  80. }
  81. }
  82.  
  83. /*
  84. * uitbreiding
  85. * ASCII: C & ontvanger: mezelf
  86. */
  87. if(frame[14] == 'C') {
  88. expansion = true;
  89. if(expansion == true) {
  90. //leeg en zet allemaal nullen
  91. for(int i = 0; i< 32; i++) {
  92. frame[i] = 0;
  93. }
  94. frame = setSender(frame);
  95. frame = setReceiver(frame);
  96. frame[14] = 'C';
  97. sendFrame(frame);
  98. }
  99. }
  100.  
  101. /*
  102. * Uitdaging aangaan
  103. * als ASCII: P en ontvanger: mezelf
  104. */
  105. else if(frame[14] == 'P' && receiver.equals(getName())) {
  106. setMessage("You're invited to play hangman");
  107. makeMenu(new String[] {"Agree invite"});
  108. }
  109.  
  110. /*
  111. * Startsignaal
  112. * ASCII: S & ontvanger: mezelf
  113. */
  114. else if(frame[14] == 'S' && receiver.equals(getName())) {
  115. if(expansion == true) {
  116. makeMenu(new String [] {"Guess a letter", "Bribe"});
  117. }
  118. else {
  119. makeMenu(new String [] {"Guess a letter"});
  120. }
  121. wordLength = frame[15];
  122. if(wordLength > 3) {
  123. //als int in byte 15
  124. //als string in byte 15
  125. //String stringLength = new String(frame, 15, 16).trim();
  126. //lengte = Integer.valueOf(stringLength).intValue();
  127. String woord = "";
  128. for(int i = 0; i < wordLength; i++) {
  129. woord = woord + ".";
  130. setMessage("Het woord is: " + woord +"\n Het woord is " + wordLength + " letters lang. \n Raad een letter of koop om(indien mogelijk).");
  131. }
  132. currentResult = woord;
  133. }
  134.  
  135. }
  136.  
  137. /*
  138. * resultaat geraden letter
  139. * ASCII: R & ontvanger mezelf
  140. */
  141. else if(frame[14] == 'R' && receiver.equals(getName())) {
  142. String hexaString = new String(frame, 15, 32).trim();
  143. String result = "";
  144. boolean completedWord = true;
  145. for(int i = 0; i < wordLength; i++) {
  146. if(letterOK(hexaString, i)) {
  147. // zet de geraden letter neer
  148. result = result + guessedLetter;
  149. }
  150. else {
  151. char oldguessedLetter = currentResult.charAt(i);
  152. if(oldguessedLetter != '.')
  153. {
  154. result = result + oldguessedLetter;
  155. }
  156. else
  157. {
  158. result = result+ ".";
  159. completedWord = false;
  160. }
  161. }
  162. }
  163. if(result.equals(currentResult)) {
  164. faults++;
  165. setImage("galg"+faults);
  166. }
  167. if(faults != 9) {
  168. currentResult = result;
  169. setMessage("Result: " + result + "\n The number of faults: " + faults);
  170. }
  171. if(faults == 9) {
  172. setMessage("You lost!");
  173. clearMenu();
  174. }
  175. if(completedWord == true) {
  176. setMessage("You have won \n The word was: " + result);
  177. clearMenu();
  178. setImage("happy");
  179. }
  180. }
  181.  
  182. /*
  183. * Omkoop antwoord
  184. * ASCCI: E & ontvanger: mezelf
  185. */
  186. else if(frame[14] == 'B'&& receiver.equals(getName())) {
  187. char letter = (char)frame[15];
  188. String bribeLetter = String.valueOf(letter);
  189. if(bribeLetter.equals("0")) {
  190. setMessage("You are cheated!");
  191. }
  192. else {
  193. setMessage("The letter you have been bribed: " + bribeLetter);
  194. }
  195. }
  196. }
  197.  
  198.  
  199. public void AgreeChallenge() {
  200. byte[] frame = emptyFrame(new byte[32]);
  201. frame = setSender(frame);
  202. frame = setReceiver(frame);
  203. frame[14] = 'M';
  204. sendFrame(frame);
  205. }
  206.  
  207. public void guessLetter() {
  208. byte[] frame = emptyFrame(new byte[32]);
  209. frame = setSender(frame);
  210. frame = setReceiver(frame);
  211. frame[14] = 'G';
  212. //Geraden letter van String naar byte
  213. String input = getMessage();
  214. char letter = input.charAt(0);
  215. frame [15] = (byte)letter;
  216. //String maken van byte
  217. guessedLetter = String.valueOf(letter);
  218. sendFrame(frame);
  219. }
  220.  
  221. public void bribe() {
  222. byte[] frame = emptyFrame(new byte[32]);
  223. frame = setSender(frame);
  224. frame = setReceiver(frame);
  225. frame[14] = 'B';
  226.  
  227. //bericht op byte 15 tot 35
  228.  
  229. sendFrame(frame);
  230. System.out.println("Check");
  231. }
  232.  
  233. /*
  234. * Methode die het hele frame leeg maakt met nullen
  235. */
  236. public byte[] emptyFrame(byte[] frame) {
  237. for(int i = 0; i < 32; i++) {
  238. frame[i] = 0;
  239. }
  240. return frame;
  241. }
  242. /*
  243. * Methode die de zender(deze puplet) in het frame zet
  244. */
  245. public byte[] setSender(byte[] frame) {
  246. byte[] nameBytes = getName().getBytes();
  247. for(int i = 0; i < 8; i++) {
  248. if(i < nameBytes.length) {
  249. frame[i] = nameBytes[i];
  250. }
  251. }
  252. return frame;
  253. }
  254. /*
  255. * Methode die de ontvanger(de zender van de ontvangen ASCII) in het frame zet
  256. */
  257. public byte[] setReceiver(byte[] frame) {
  258. byte[]nameBytes = sender.getBytes();
  259. for(int i = 0; i < 7; i++) {
  260. if(i < nameBytes.length) {
  261. frame[i+7] = nameBytes[i];
  262. }
  263. }
  264. return frame;
  265. }
  266. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement