Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package puplets;
- import puplet.Puplet;
- public class woordrader extends Puplet {
- private String[] puplets;
- private byte[] frame = new byte[32];
- private String sender = null; // (de zender van ascii die je ontvangt)
- private String guessedLetter = null;
- private String previousResult;
- private String allGuessedLetters = "";
- private boolean challengeAgreed = false;
- private boolean expansion= false;
- private boolean wait = false;
- private int coins = 300;
- private int faults = 0;
- private int wordLength = 0;
- private int waitTime = 0;
- public woordrader() {
- super("Casper");
- makeMenu(new String[] {"Search puplets"});
- setImage("happy");
- }
- public void menuEvent(String s) {
- if(s.equals("Search puplets")) {
- puplets = discoverPuplets();
- if(puplets.length > 0) {
- setMessage(puplets.length + " puplet(s) found. \n Wait for a challenge.");
- clearMenu();
- wait = true;
- }
- else {
- setMessage("No puplets found.");
- }
- }
- else if(s.equals("Agree invite")) {
- AgreeChallenge();
- setMessage("The game started! \n You'll have to wait for the word.");
- clearMenu();
- }
- else if(s.equals("Guess a letter")) {
- guessLetter();
- }
- else if(s.equals("Bribe")) {
- if(coins > 0) {
- bribe();
- coins = coins - 100;
- setImage("lach_munt"+(coins/100));
- }
- else {
- setImage("sad");
- setMessage("You have no more coins!");
- }
- }
- }
- protected void frameEvent(byte[] receiveFrame) {
- String part1 = new String(receiveFrame, 0 , 7);
- String part2 = new String(receiveFrame, 7, 7);
- String possibleSender = part1.trim();
- String receiver = part2.trim();
- /*
- * Code die na het uitdaging aangaan de zender vast zet en dus niks doet met anderen woordbewaarders
- */
- if(!challengeAgreed) {
- sender = possibleSender;
- }
- else {
- if(sender == null) {
- sender = possibleSender;
- }
- else if(!sender.equals(possibleSender)) {
- return;
- }
- }
- /*
- * uitbreiding
- * ASCII: C & ontvanger: mezelf
- */
- if(receiveFrame[14] == 'C') {
- expansion = true;
- if(expansion == true) {
- setImage("lach_munt3");
- //leeg en zet allemaal nullen
- for(int i = 0; i< 32; i++) {
- frame[i] = 0;
- }
- frame = setSender(frame);
- frame = setReceiver(frame);
- frame[14] = 'C';
- sendFrame(frame);
- }
- }
- /*
- * Uitdaging aangaan
- * als ASCII: P en ontvanger: mezelf
- */
- else if(receiveFrame[14] == 'P' && receiver.equals(getName())) {
- challengeAgreed = true;
- setMessage("You're invited to play hangman");
- makeMenu(new String[] {"Agree invite"});
- wait = false;
- }
- /*
- * Startsignaal
- * ASCII: S & ontvanger: mezelf
- */
- else if(receiveFrame[14] == 'S' && receiver.equals(getName())) {
- if(expansion == true) {
- makeMenu(new String [] {"Guess a letter", "Bribe"});
- }
- else {
- makeMenu(new String [] {"Guess a letter"});
- }
- wordLength = receiveFrame[15];
- if(wordLength > 3) {
- //als int in byte 15
- //als string in byte 15
- //String stringLength = new String(frame, 15, 16).trim();
- //lengte = Integer.valueOf(stringLength).intValue();
- String woord = "";
- for(int i = 0; i < wordLength; i++) {
- woord = woord + ".";
- setMessage("The word is: " + woord +"\n The word length is: " + wordLength + "\n Guess a letter or bribe(if possible).");
- }
- previousResult = woord;
- }
- }
- /*
- * resultaat geraden letter
- * ASCII: R & ontvanger mezelf
- */
- else if(receiveFrame[14] == 'R' && receiver.equals(getName())) {
- String hexaString = new String(receiveFrame, 15, 32).trim();
- String result = "";
- boolean completedWord = true;
- for(int i = 0; i < wordLength; i++) {
- if(letterOK(hexaString, i)) {
- // zet de geraden letter neer
- result = result + guessedLetter;
- }
- else {
- char previousIndexValue = previousResult.charAt(i);
- if(previousIndexValue != '.')
- {
- result = result + previousIndexValue;
- }
- else
- {
- result = result+ ".";
- completedWord = false;
- }
- }
- }
- if(result.equals(previousResult)) {
- faults++;
- setImage("galg"+faults);
- }
- if(faults != 9) {
- previousResult = result;
- setMessage("Result: " + result + "\n The number of faults: " + faults);
- }
- if(faults == 9) {
- setMessage("You lost!");
- clearMenu();
- }
- if(completedWord == true) {
- setMessage("You have won \n The word was: " + result);
- clearMenu();
- setImage("happy");
- }
- }
- /*
- * Omkoop antwoord
- * ASCCI: E & ontvanger: mezelf
- */
- else if(receiveFrame[14] == 'E' && receiver.equals(getName())) {
- char letter = (char)receiveFrame[15];
- String bribeLetter = String.valueOf(letter);
- System.out.println("Letter: " + bribeLetter);
- if(bribeLetter.equals("0")) {
- setMessage("You are cheated!");
- }
- else {
- setMessage("The letter you have been bribed: " + bribeLetter);
- }
- }
- }
- public void AgreeChallenge() {
- byte[] frame = emptyFrame(new byte[32]);
- frame = setSender(frame);
- frame = setReceiver(frame);
- frame[14] = 'M';
- sendFrame(frame);
- }
- public void guessLetter() {
- String temp = "";
- byte[] frame = emptyFrame(new byte[32]);
- frame = setSender(frame);
- frame = setReceiver(frame);
- frame[14] = 'G';
- //Geraden letter van String naar byte & een check op de lengte
- String input = getMessage().toUpperCase();
- if(input.length() == 1) {
- if(allGuessedLetters.equals("")) {
- char letter = input.charAt(0);
- frame [15] = (byte)letter;
- guessedLetter = String.valueOf(letter);
- allGuessedLetters = temp + guessedLetter;
- temp = allGuessedLetters;
- sendFrame(frame);
- }
- for(int i = 0; i < allGuessedLetters.length(); i++) {
- if(input.equalsIgnoreCase(String.valueOf(allGuessedLetters.charAt(i)))) {
- setMessage("Je hebt deze letter al geraden");
- }
- else {
- char letter = input.charAt(0);
- frame [15] = (byte)letter;
- guessedLetter = String.valueOf(letter);
- allGuessedLetters = temp + guessedLetter;
- sendFrame(frame);
- }
- }
- }
- else if (input.length() == 0) {
- setMessage("You guess no character.");
- }
- else {
- setMessage("The character you quess contains \n more than 1 chacacter!");
- }
- }
- public void bribe() {
- byte[] frame = emptyFrame(new byte[32]);
- frame = setSender(frame);
- frame = setReceiver(frame);
- frame[14] = 'B';
- //bericht op byte 15 tot 35
- sendFrame(frame);
- }
- public void timeEvent() {
- if(wait == true) {
- waitTime++;
- if(waitTime == 30) {
- setMessage("You're not invited for a game!");
- wait = false;
- waitTime=0;
- }
- }
- }
- /*
- * Methode die het hele frame leeg maakt met nullen
- */
- public byte[] emptyFrame(byte[] frame) {
- for(int i = 0; i < 32; i++) {
- frame[i] = 0;
- }
- return frame;
- }
- /*
- * Methode die de zender(deze puplet) in het frame zet
- */
- public byte[] setSender(byte[] frame) {
- byte[] nameBytes = getName().getBytes();
- for(int i = 0; i < 8; i++) {
- if(i < nameBytes.length) {
- frame[i] = nameBytes[i];
- }
- }
- return frame;
- }
- /*
- * Methode die de ontvanger(de zender van de ontvangen ASCII) in het frame zet
- */
- public byte[] setReceiver(byte[] frame) {
- byte[]nameBytes = sender.getBytes();
- for(int i = 0; i < 7; i++) {
- if(i < nameBytes.length) {
- frame[i+7] = nameBytes[i];
- }
- }
- return frame;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement