Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Welcome to the Java Programming Forums


The professional, friendly Java community. 21,500 members and growing!


The Java Programming Forums are a community of Java programmers from all around the World. Our members have a wide range of skills and they all have one thing in common: A passion to learn and code Java. We invite beginner Java programmers right through to Java professionals to post here and share your knowledge. Become a part of the community, help others, expand your knowledge of Java and enjoy talking with like minded people. Registration is quick and best of all free. We look forward to meeting you.


>> REGISTER NOW TO START POSTING


Members have full access to the forums. Advertisements are removed for registered users.

Results 1 to 16 of 16

Threaded View

  1. #1
    Junior Member
    Join Date
    Aug 2012
    Posts
    8
    Thanks
    1
    Thanked 0 Times in 0 Posts

    Default need help with a new way of source code

    Hello everybody! I recently started with programming in java! I learned from a dutch book written by David J. Barnes en Michael Kölling. The book is translated form the english version: Objects First With Java a parctical introduction using BlueJ. Now that I'm finally through the book i was looking for a task! That's when I stumbled upon a task which was from my brother in 2004! I first asked him but he couldn't answer me (he mostly is programming in LabView, like 9 years)
    First I want to apologize for my bad English typing I from Belgium and I am trying really hard!!

    the task: I need to create a maze in which a player is moving! He can only be moved by the air of a ventilator or by the attraction of a magnet. So by clicking with the mouse on those items, the ventilator or magnet need the become an active element. Whether it affects the player depends on the position of the player and ventilator/magnet! By performing those clicks you have to show the player to the exit of the maze.

    I first started with the development of an algorithm for generating a maze, after 8 hours I finally gave up. Now I've created a maze by defining a 2D-array in which I declared which position is a wall and which is a path, probably not the right way but good enough for the time being.
    Than I made one head Class 'Vak' from that class I extended 'a Path', 'a Wall', 'a Ventilator', 'a Magneet' and finally 'a player'. Those are all the items I guess I need for solving this problem. I created a play area 'Speelbord'. Here I Stored all of my logic (source code)! Here is also where my problem starts. Specifically in this piece of source code:
        public void beweeg([B]Speler s, Vak vk, Ventilator vr, Magneet mt[/B])
        {
     
            if (gameover == false && s.getX() == vk.getX())//we gaan nu VERTICAAL bewegen
            {
                //voor een Ventilator zien de bewegings mogelijkheden er als volgt uit:
                if (s.getY() > vk.getY() && vk.getKleur() == vr.getKleur())
                {
                    int dy = s.getY() + vr.getKracht();//de Ventilator ligt boven de speler -> hij moet dus naar onder bewegen (het aantal vakjes volgens de kracht) = optellen
                    y = y + dy;// is dy == kracht?
                }
                if (s.getY() < vk.getY() && vk.getKleur() == vr.getKleur())
                {
                    int dy = s.getY() - vr.getKracht();//de Ventilator ligt onder de speler -> hij moet dus naar boven bewegen (het aantal vakjes volgens de kracht) = aftrekken
                    y = y - dy;// is dy == kracht?
                }
     
                //voor een Magneet zien de bewegings mogelijkheden er als volgt uit:
                if (s.getY() > vk.getY() && vk.getKleur() == mt.getKleur())
                {
                    int dy = s.getY() - mt.getKracht();// de Magneet ligt boven de speler -> hij moet dus naar boven bewegen (het aantal vakjes volgens de kracht) = aftrekken
                    y = y - dy;// is dy == kracht?
                }
                if (s.getY() < vk.getY() && vk.getKleur() == mt.getKleur())
                {
                    int dy = s.getY() + mt.getKracht();// de Magneet ligt onder de speler -> hij moet dus naar onder bewegen (het aantal vakjes volgens de kracht) = optellen
                    y = y - dy;// is dy == kracht?
                }
            }
     
            if (gameover == false && s.getY() == vk.getY())// we gaan nu HORIZONTAAL bewegen
            {
                //voor een Ventilator zien de bewegings mogelijkheden er als volgt uit: 
                if (s.getX() > vk.getX() && vk.getKleur() ==  vr.getKleur())
                {
                    int dx = s.getX() + vr.getKracht();//de Ventilator ligt links van de speler -> hij moet dus naar rechts bewegen (het aantal vakjes volgens de kracht) = optellen
                    x = x + dx; //is dx == kracht?
                }
                if (s.getX() < vk.getX() && vk.getKleur() ==  vr.getKleur())
                {
                    int dx = s.getX() - vr.getKracht();//de Ventilator ligt rechts van de speler -> hij moet dus naar links bewegen (het aantal vakjes volgens de kracht) = aftrekken
                    x = x - dx; //is dx == kracht?
                }
     
                //voor een Magneet zien de bewegings mogelijkheden er als volgt uit:
                if (s.getX() > vk.getX() && vk.getKleur() ==  mt.getKleur())
                {
                    int dx = s.getX() - mt.getKracht();//de Magneet ligt rechts van de speler -> hij moet dus naar links bewegen (het aantal vakjes volgens de kracht) = aftrekken
                    x = x - dx;//is dx == kracht?
                }
                if (s.getX() < vk.getX() && vk.getKleur() == vr.getKleur())
                {
                    int dx = s.getX() + mt.getKracht();// de Magneet ligt links van de speler -> hij moet dus naar rechts bewegen (het aantal vakjes volgens de kracht) = optellen
                    x = x + dx;//is dx == kracht?
                }
     
            }
     
        }
    the piece in Bold is which I did to collect the positions and see whether the player can or cannot move. This will still compile in BlueJ. Now I've created an other class 'controller' Here I make a mouseListener and I am trying to declare it. There for I wrote the following source code:

        /**
         * MouseEvents vanaf hier. 
         */
        public void mouseEntered(MouseEvent e) {}
        public void mouseExited(MouseEvent e) {}
        public void mousePressed(MouseEvent e)  {}
        public void mouseReleased(MouseEvent e) {}
        public void mouseClicked(MouseEvent e, Magneet mt, Ventilator vr, Speler s) //deze heb ik nodig voor het permanent actief maken van Magneet/Ventilator
        {
            x = e.getX();//x-coördinaat van de click
            y = e.getY();//y-coördinaat van de click
            //Wanneer zowel x en y coördinaat hetzelfde zijn mag de beweging worden uitgevoerd zoals beschreven in speelbord
            if (e.getX() == mt.getX() && e.getY() == mt.getY() && s.getX() == e.getX())
            {
                bord.beweegVerticaal();//deze methode staat in speelbord bord
                view.repaint();
            }
            else if (e.getX() == vr.getX() && e.getY() == vr.getY() && s.getY() == e.getY())
            {
                bord.beweegHorizontaal();
                view.repaint();
            }
     
        }
    If I compile now I got the following error: cannot find symbol- method beweegVerticaal. Which is wired because I wrote it (prove above) Now after trying to solve it and reading on the internet I guess I know what the problem might be. My guess is he is expecting some class of those in bold (Speler, Vak, Ventilator, Magneet)
    But I cannot put that class there because when I perform a click there need to be a move... So my guess is I need to change my logic, I need the change the way I am thinking but how, how can I do it?

    I've also uploaded my program so far! So if my explanation is wrong and/or a little bit vague you can go and look!
    MagnetischDoolhof_theGame.rar download - 2shared

    thx in advance!!
    Last edited by Balger; August 23rd, 2012 at 10:34 AM.


Similar Threads

  1. Java Source Code to UML Diagrams in NetBeans
    By sarkuzi in forum Threads
    Replies: 3
    Last Post: February 7th, 2012, 11:34 AM
  2. Getting Value from Website source code.
    By Blackbird94 in forum Java Theory & Questions
    Replies: 2
    Last Post: August 26th, 2011, 07:16 AM
  3. How can i add an image into my source code?
    By joelmeler in forum Java Theory & Questions
    Replies: 14
    Last Post: August 1st, 2011, 06:15 PM
  4. source code for CD BURNER
    By zeerussia in forum Java Theory & Questions
    Replies: 0
    Last Post: October 23rd, 2010, 02:23 AM
  5. How can i add a new count to this source code ?
    By mm2236 in forum File I/O & Other I/O Streams
    Replies: 0
    Last Post: January 30th, 2010, 10:21 PM