Advertisement
Guest User

Untitled

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