Page 3 of 4 FirstFirst 1234 LastLast
Results 41 to 60 of 76
Like Tree1Likes

Thread: Applet Game

  1. #41
    shodai is offline Senior Member
    Join Date
    Apr 2012
    Posts
    106
    Rep Power
    0

    Default Re: Applet Game

    Java Code:
    import java.applet.*;  
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
      
    public class MartianGame extends JApplet implements ActionListener
    {
      //DrawMartian aMartian = new DrawMartian();
      //DrawJupiterian aJupiterian = new DrawJupiterian();
      
      private JPanel contentPanel;
      Button topLeft;
      Button topMid;
      Button topRight;
      Button midLeft;
      Button midRight;
      Button botLeft;
      Button botMid;
      Button botRight;
      
      private void add(Container con, Component widget, int left, int top, int width, int height)
      {
        widget.setBounds(left, top, width, height);
        con.add(widget);
      }
      
      public void init() 
      {
        contentPanel = (JPanel)getContentPane();
        contentPanel.setLayout(null);
        
        //this instantiates the command buttons
        topLeft = new Button("1");
        topMid = new Button("2");
        topRight = new Button("3");
        midLeft = new Button("4");
        midRight = new Button("5");
        botLeft = new Button("6");
        botMid = new Button("7");
        botRight = new Button("8");
        
        //this adds the command buttons to the applet screen
        //left, top, width, height
        add(contentPanel,topLeft,75,130,100,100);
        add(contentPanel,topMid,225,130,100,100);
        add(contentPanel,topRight,375,130,100,100);
        add(contentPanel,midLeft,75,280,100,100);
        add(contentPanel,midRight,375,280,100,100);
        add(contentPanel,botLeft,75,430,100,100);
        add(contentPanel,botMid,225,430,100,100);
        add(contentPanel,botRight,375,430,100,100);
        
        topLeft.addActionListener(this);
        topMid.addActionListener(this);
        topRight.addActionListener(this);
        midLeft.addActionListener(this);
        midRight.addActionListener(this);
        botLeft.addActionListener(this);
        botMid.addActionListener(this);
        botRight.addActionListener(this);
      } 
    
    
      
      public void stop()
      {  
      } 
    
      public void paint(Graphics g) 
      {
        //this draws a grid in the applet window
        g.drawRect(50,100,450,450);
        g.drawLine(200,100,200,550);
        g.drawLine(350,100,350,550);
        g.drawLine(50,250,500,250);
        g.drawLine(50,400,500,400);
        g.fillRect(200,250,150,150);
      }
      
      public void actionPerformed(ActionEvent e)
      {
        String command = e.getActionCommand();
        System.out.println(command);
        // if Button was pressed, 
        if ((command) == "1")
        {
          topLeft.setVisible(false);
          //aMartian.JShapes2D();
        }
        else if ((command) == "2")
        {
          topMid.setVisible(false);
        }
        else if ((command) == "3")
        {
          topRight.setVisible(false);
        }
        else if ((command) == "4")
        {
          midLeft.setVisible(false);
        }
        else if ((command) == "5")
        {
          midRight.setVisible(false);
        }
        else if ((command) == "6")
        {
          botLeft.setVisible(false);
        } 
        else if ((command) == "7")
        {
          botMid.setVisible(false);
        }
        else if ((command) == "8")
        {
          botRight.setVisible(false);
        }    
      }
    
    }
    Java Code:
    import javax.swing.*;
    import java.awt.*;
    import java.awt.geom.*;
    
    
    //this class creates the frame for the drawing of the alien
    public class DrawMartian extends MartianGame
    {
      //this method sets the properties for the frame
      public void JShapes2D()
      {
        /*setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        DrawMartian frame = new DrawMartian();
        frame.setSize(500, 400);
        frame.setVisible(true);*/
      }
    
      //this method draws the shapes that make up the picture of the alien
      public void paint(Graphics gr)
      { 
        super.paint(gr);
        Graphics2D gr2D = (Graphics2D)gr;
        
        Rectangle2D.Float rectBody = new Rectangle2D.Float(100F, 150F, 100F, 100F);
        Rectangle2D.Float rectEye1 = new Rectangle2D.Float(120F, 165F, 10F, 10F);
        Rectangle2D.Float rectEye2 = new Rectangle2D.Float(170F, 165F, 10F, 10F); 
        Rectangle2D.Float rectNose = new Rectangle2D.Float(145F, 190F, 10F, 20F);
        QuadCurve2D curveSmile = new QuadCurve2D.Float(120, 220, 150, 250, 170, 220);
        Line2D lineLeg1 = new Line2D.Float(120, 250, 120, 300);
        Line2D lineLeg2 = new Line2D.Float(145, 250, 145, 300);
        Line2D lineLeg3 = new Line2D.Float(170, 250, 170, 300);
        Line2D lineArm1 = new Line2D.Float(100, 200, 70, 250);    
        
        gr2D.draw(curveSmile);
        gr2D.draw(rectBody);
        gr2D.fill(rectEye1);
        gr2D.fill(rectEye2);
        gr2D.fill(rectNose);
        gr2D.draw(lineLeg1);
        gr2D.draw(lineLeg2);
        gr2D.draw(lineLeg3);
        gr2D.draw(lineArm1);
        gr2D.drawString("I'm Marvin the Martian", 80, 330);
      }
    }

  2. #42
    Norm's Avatar
    Norm is offline Moderator
    Join Date
    Jun 2008
    Location
    SW Missouri
    Posts
    17,403
    Rep Power
    25

    Default Re: Applet Game

    The code is still using == to compare Strings instead of the equals() method.

    What is supposed to happen when the code is executed? I get a rectangle drawn with 8 numbered rectangles and a black square. Then what?


    One problem I have on my small screen is that there is no way to center the shapes in the size of the screen.
    All the locations are hardcoded instead of begin controlled by variables.
    Last edited by Norm; 04-09-2014 at 02:06 AM.
    If you don't understand my response, don't ignore it, ask a question.

  3. #43
    shodai is offline Senior Member
    Join Date
    Apr 2012
    Posts
    106
    Rep Power
    0

    Default Re: Applet Game

    The grid with the numbered JButtons is correct. I then want to click on a command button (let's say #1 which is coded as topRight) and have that little martian drawing appear there. I know that I will need to change the specifics of the drawing so that it can be placed properly, but I just do not know how to get the chain of events to happen.

  4. #44
    Norm's Avatar
    Norm is offline Moderator
    Join Date
    Jun 2008
    Location
    SW Missouri
    Posts
    17,403
    Rep Power
    25

    Default Re: Applet Game

    have that little martian drawing appear there
    The drawing method would need the Graphics object that is passed to paint and the location of where to draw.

    I don't see how the paint() method in DrawMartian can be used to draw a shape at a location that is passed to the method. It needs to be rewritten so that the location where the drawing is to be done can be passed to the method.

    Also if there are more than one drawing to be done by the paint() method in the applet, then there needs to be a list that the paint() method can use to do all of the drawings.
    Last edited by Norm; 04-09-2014 at 04:11 PM.
    If you don't understand my response, don't ignore it, ask a question.

  5. #45
    shodai is offline Senior Member
    Join Date
    Apr 2012
    Posts
    106
    Rep Power
    0

    Default Re: Applet Game

    Ok, so I have made some progress. I am now able to click JButton 1 and the image appears. However, it only appears at the position that I have hard coded into the drawing. Can you provide any specifics on how I can go about changing this?

    Java Code:
    import java.applet.*;  
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
      
    public class MartianGame extends JApplet implements ActionListener
    {
      DrawMartian aMartian = new DrawMartian();
      //DrawJupiterian aJupiterian = new DrawJupiterian();
      
      private boolean shouldDrawMartian = false;
      private JPanel contentPanel;
      Button topLeft;
      Button topMid;
      Button topRight;
      Button midLeft;
      Button midRight;
      Button botLeft;
      Button botMid;
      Button botRight;
      
      private void add(Container con, Component widget, int left, int top, int width, int height)
      {
        widget.setBounds(left, top, width, height);
        con.add(widget);
      }
      
      public void init() 
      {
        contentPanel = (JPanel)getContentPane();
        contentPanel.setLayout(null);
        
        //this instantiates the command buttons
        topLeft = new Button("1");
        topMid = new Button("2");
        topRight = new Button("3");
        midLeft = new Button("4");
        midRight = new Button("5");
        botLeft = new Button("6");
        botMid = new Button("7");
        botRight = new Button("8");
        
        //this adds the command buttons to the applet screen
        //left, top, width, height
        add(contentPanel,topLeft,75,130,100,100);
        add(contentPanel,topMid,225,130,100,100);
        add(contentPanel,topRight,375,130,100,100);
        add(contentPanel,midLeft,75,280,100,100);
        add(contentPanel,midRight,375,280,100,100);
        add(contentPanel,botLeft,75,430,100,100);
        add(contentPanel,botMid,225,430,100,100);
        add(contentPanel,botRight,375,430,100,100);
        
        topLeft.addActionListener(this);
        topMid.addActionListener(this);
        topRight.addActionListener(this);
        midLeft.addActionListener(this);
        midRight.addActionListener(this);
        botLeft.addActionListener(this);
        botMid.addActionListener(this);
        botRight.addActionListener(this);
      } 
      
      public void stop()
      {  
      } 
    
      public void paint(Graphics g) 
      {
        //this draws a grid in the applet window
        g.drawRect(50,100,450,450);
        g.drawLine(200,100,200,550);
        g.drawLine(350,100,350,550);
        g.drawLine(50,250,500,250);
        g.drawLine(50,400,500,400);
        g.fillRect(200,250,150,150);
        
        if (shouldDrawMartian)
        {
          aMartian.paintMartian(g);
        }
      }
      
      public void actionPerformed(ActionEvent e)
      {
        
        String command = e.getActionCommand();
        System.out.println(command);
        // if Button was pressed, 
        if ((command).equals("1"))
        {
          topLeft.setVisible(false);
          shouldDrawMartian = true;
        }
        else if ((command).equals("2"))
        {
          topMid.setVisible(false);
          topMid.setVisible(false);
          shouldDrawMartian = true;
        }
        else if ((command).equals("3"))
        {
          topRight.setVisible(false);
        }
        else if ((command).equals("4"))
        {
          midLeft.setVisible(false);
        }
        else if ((command).equals("5"))
        {
          midRight.setVisible(false);
        }
        else if ((command).equals("6"))
        {
          botLeft.setVisible(false);
        } 
        else if ((command).equals("7"))
        {
          botMid.setVisible(false);
        }
        else if ((command).equals("8"))
        {
          botRight.setVisible(false);
        }    
      }
    
    }
    Java Code:
    import javax.swing.*;
    import java.awt.*;
    import java.awt.geom.*;
    
    /**
     * Alien class
     * This class sets out the variables that will be used by the Martian and Jupiterian classes.
     * @author Brad Strassburger
     * @version March 5, 2014
     */
    
    //this class creates the frame for the drawing of the alien
    public class DrawMartian
    {
      //this method draws the shapes that make up the picture of the alien
      public void paintMartian(Graphics gr)
      { 
        Graphics2D gr2D = (Graphics2D)gr;
        
        Rectangle2D.Float rectBody = new Rectangle2D.Float(100F, 150F, 100F, 100F);
        Rectangle2D.Float rectEye1 = new Rectangle2D.Float(120F, 165F, 10F, 10F);
        Rectangle2D.Float rectEye2 = new Rectangle2D.Float(170F, 165F, 10F, 10F); 
        Rectangle2D.Float rectNose = new Rectangle2D.Float(145F, 190F, 10F, 20F);
        QuadCurve2D curveSmile = new QuadCurve2D.Float(120, 220, 150, 250, 170, 220);
        Line2D lineLeg1 = new Line2D.Float(120, 250, 120, 300);
        Line2D lineLeg2 = new Line2D.Float(145, 250, 145, 300);
        Line2D lineLeg3 = new Line2D.Float(170, 250, 170, 300);
        Line2D lineArm1 = new Line2D.Float(100, 200, 70, 250);    
        
        gr2D.draw(curveSmile);
        gr2D.draw(rectBody);
        gr2D.fill(rectEye1);
        gr2D.fill(rectEye2);
        gr2D.fill(rectNose);
        gr2D.draw(lineLeg1);
        gr2D.draw(lineLeg2);
        gr2D.draw(lineLeg3);
        gr2D.draw(lineArm1);
        gr2D.drawString("I'm Marvin the Martian", 80, 330);
      }
    }

  6. #46
    Norm's Avatar
    Norm is offline Moderator
    Join Date
    Jun 2008
    Location
    SW Missouri
    Posts
    17,403
    Rep Power
    25

    Default Re: Applet Game

    how I can go about changing this?
    Use the value in a variable and pass that value as an arg to the drawing method.
    If you don't understand my response, don't ignore it, ask a question.

  7. #47
    shodai is offline Senior Member
    Join Date
    Apr 2012
    Posts
    106
    Rep Power
    0

    Default Re: Applet Game

    I seem to have run into a bit of a problem. I had to take away the "extends" command from the DrawMartian class which means that I cannot pass values between the two classes???

  8. #48
    Norm's Avatar
    Norm is offline Moderator
    Join Date
    Jun 2008
    Location
    SW Missouri
    Posts
    17,403
    Rep Power
    25

    Default Re: Applet Game

    pass values between the two classes
    Not sure what values you need to pass.
    You can pass values to a method as args.
    If you don't understand my response, don't ignore it, ask a question.

  9. #49
    shodai is offline Senior Member
    Join Date
    Apr 2012
    Posts
    106
    Rep Power
    0

    Default Re: Applet Game

    What does that mean "as args"?

  10. #50
    Norm's Avatar
    Norm is offline Moderator
    Join Date
    Jun 2008
    Location
    SW Missouri
    Posts
    17,403
    Rep Power
    25

    Default Re: Applet Game

    args is short for arguments.
    For example:
    theMethod(1, 2, 3);
    1 and 2 and 3 are the args passed to theMethod()
    If you don't understand my response, don't ignore it, ask a question.

  11. #51
    shodai is offline Senior Member
    Join Date
    Apr 2012
    Posts
    106
    Rep Power
    0

    Default Re: Applet Game

    Does that mean that I would need to pass 38 arguments; one for each piece of the drawing?

  12. #52
    Norm's Avatar
    Norm is offline Moderator
    Join Date
    Jun 2008
    Location
    SW Missouri
    Posts
    17,403
    Rep Power
    25

    Default Re: Applet Game

    No. The minimum to pass would be the x,y of the upper left and possibily the width and height of the area where the drawing is to be done.
    The code that does the drawing would then add an offset to the x and y values to get the locations where to draw.
    I imagine the code is now assuming 0 as the values of x and y so it may be possible to just add the passed x and y values to the existing code's x and y usages. Maybe something like this:
    Java Code:
     Line2D lineLeg1 = new Line2D.Float(x+120, y+250, x+120, y+300);
    If you don't understand my response, don't ignore it, ask a question.

  13. #53
    shodai is offline Senior Member
    Join Date
    Apr 2012
    Posts
    106
    Rep Power
    0

    Default Re: Applet Game

    So I am working through the process and I think that I am on the right track but right now I am getting an error that I do not fully understand.


    1 error found:
    File: /Users/brad/Documents/Courses/Mobile App Development/Java Intermediate/Assignments/Assign Final/MartianGame.java [line: 28]
    Error: /Users/brad/Documents/Courses/Mobile App Development/Java Intermediate/Assignments/Assign Final/MartianGame.java:28: cannot find symbol
    symbol : method setStartY(int)
    location: class MartianGame

    Java Code:
    import java.applet.*;  
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
      
    public class MartianGame extends JApplet implements ActionListener
    {
      DrawMartian aMartian = new DrawMartian();
      DrawJupiterian aJupiterian = new DrawJupiterian();
      
      private boolean shouldDrawMartian = false;
      private boolean shouldDrawJupiterian = false;
      private JPanel contentPanel;
      Button topLeft;
      Button topMid;
      Button topRight;
      Button midLeft;
      Button midRight;
      Button botLeft;
      Button botMid;
      Button botRight;
      protected int startX;
      protected int startY;
      
      public MartianGame(int startX, int startY)
      {
        setStartX(startX);
        setStartY(startY);
      }
      
      public int getStartX()
      {
        return startX;
      }
      
      public void setStartX(int x)
      {
        startX = x;
      }
      
      private void add(Container con, Component widget, int left, int top, int width, int height)
      {
        widget.setBounds(left, top, width, height);
        con.add(widget);
      }
      
      public void init() 
      {
        contentPanel = (JPanel)getContentPane();
        contentPanel.setLayout(null);
        
        //this instantiates the command buttons
        topLeft = new Button("1");
        topMid = new Button("2");
        topRight = new Button("3");
        midLeft = new Button("4");
        midRight = new Button("5");
        botLeft = new Button("6");
        botMid = new Button("7");
        botRight = new Button("8");
        
        //this adds the command buttons to the applet screen
        //left, top, width, height
        add(contentPanel,topLeft,75,130,100,100);
        add(contentPanel,topMid,225,130,100,100);
        add(contentPanel,topRight,375,130,100,100);
        add(contentPanel,midLeft,75,280,100,100);
        add(contentPanel,midRight,375,280,100,100);
        add(contentPanel,botLeft,75,430,100,100);
        add(contentPanel,botMid,225,430,100,100);
        add(contentPanel,botRight,375,430,100,100);
        
        topLeft.addActionListener(this);
        topMid.addActionListener(this);
        topRight.addActionListener(this);
        midLeft.addActionListener(this);
        midRight.addActionListener(this);
        botLeft.addActionListener(this);
        botMid.addActionListener(this);
        botRight.addActionListener(this);
      } 
      
      public void stop()
      {  
      } 
    
      public void paint(Graphics g) 
      {
        //this draws a grid in the applet window
        g.drawRect(50,100,450,450);
        g.drawLine(200,100,200,550);
        g.drawLine(350,100,350,550);
        g.drawLine(50,250,500,250);
        g.drawLine(50,400,500,400);
        g.fillRect(200,250,150,150);
        
        if (shouldDrawMartian)
        {
          aMartian.paintMartian(g);
        }
        
        if (shouldDrawJupiterian)
        {
          aJupiterian.paintJupiterian(g);
        }
      }
      
      public void actionPerformed(ActionEvent e)
      {
        
        String command = e.getActionCommand();
        System.out.println(command);
        // if Button was pressed, 
        if ((command).equals("1"))
        {
          topLeft.setVisible(false);
          shouldDrawMartian = true;
        }
        else if ((command).equals("2"))
        {
          topMid.setVisible(false);
          shouldDrawJupiterian = true;
        }
        else if ((command).equals("3"))
        {
          topRight.setVisible(false);
        }
        else if ((command).equals("4"))
        {
          midLeft.setVisible(false);
        }
        else if ((command).equals("5"))
        {
          midRight.setVisible(false);
        }
        else if ((command).equals("6"))
        {
          botLeft.setVisible(false);
        } 
        else if ((command).equals("7"))
        {
          botMid.setVisible(false);
        }
        else if ((command).equals("8"))
        {
          botRight.setVisible(false);
        }    
      }
    
    }
    Java Code:
    import javax.swing.*;
    import java.awt.*;
    import java.awt.geom.*;
    
    /**
     * Alien class
     * This class sets out the variables that will be used by the Martian and Jupiterian classes.
     * @author Brad Strassburger
     * @version March 5, 2014
     */
    
    //this class creates the frame for the drawing of the alien
    public class DrawMartian
    {
      public int x;
      public int y;
      //this method draws the shapes that make up the picture of the alien
      public void paintMartian(Graphics gr)
      { 
        Graphics2D gr2D = (Graphics2D)gr;
        
        Rectangle2D.Float rectBody = new Rectangle2D.Float(x+100, y+150, 100F, 100F);
        Rectangle2D.Float rectEye1 = new Rectangle2D.Float(x+120, y+165, 10F, 10F);
        Rectangle2D.Float rectEye2 = new Rectangle2D.Float(x+170, y+165, 10F, 10F); 
        Rectangle2D.Float rectNose = new Rectangle2D.Float(x+145, y+190, 10F, 20F);
        QuadCurve2D curveSmile = new QuadCurve2D.Float(120, 220, 150, 250, 170, 220);
        Line2D lineLeg1 = new Line2D.Float(x+120, y+250, x+120, y+300);
        Line2D lineLeg2 = new Line2D.Float(x+145, y+250, x+145, y+300);
        Line2D lineLeg3 = new Line2D.Float(x+170, y+250, x+170, y+300);
        Line2D lineArm1 = new Line2D.Float(x+100, y+200, x+70, y+250);    
        
        gr2D.draw(curveSmile);
        gr2D.draw(rectBody);
        gr2D.fill(rectEye1);
        gr2D.fill(rectEye2);
        gr2D.fill(rectNose);
        gr2D.draw(lineLeg1);
        gr2D.draw(lineLeg2);
        gr2D.draw(lineLeg3);
        gr2D.draw(lineArm1);
        gr2D.drawString("I'm Marvin the Martian", 80, 330);
      }
    }

  14. #54
    shodai is offline Senior Member
    Join Date
    Apr 2012
    Posts
    106
    Rep Power
    0

    Default Re: Applet Game

    ok, ignore the last post, that was dumb. But I do seem to still have a problem. Now when I try to run the program I get the following error: Static Error: This applet does not have a default constructor or a constructor accepting String[].

  15. #55
    Norm's Avatar
    Norm is offline Moderator
    Join Date
    Jun 2008
    Location
    SW Missouri
    Posts
    17,403
    Rep Power
    25

    Default Re: Applet Game

    when I try to run the program I get the following error:
    Did the applet used to run? What has changed about the way you are executing it?
    If you don't understand my response, don't ignore it, ask a question.

  16. #56
    shodai is offline Senior Member
    Join Date
    Apr 2012
    Posts
    106
    Rep Power
    0

    Default Re: Applet Game

    The applet was running but I have added in the following code to carry over the x and y values for the drawings.

    Java Code:
      public MartianGame(int startX, int startY)
      {
        setStartX(startX);
        setStartY(startY);
      }
      
      public int getStartX()
      {
        return startX;
      }
      
      public void setStartX(int x)
      {
        startX = x;
      }
      
      public int getStartY()
      {
        return startY;
      }
      
      public void setStartY(int y)
      {
        startY = y;
      }

  17. #57
    Norm's Avatar
    Norm is offline Moderator
    Join Date
    Jun 2008
    Location
    SW Missouri
    Posts
    17,403
    Rep Power
    25

    Default Re: Applet Game

    Whoops. I see: that code is defining a Constructor that is never used. Why? Applets do NOT use constructors.
    Last edited by Norm; 04-10-2014 at 02:22 PM.
    If you don't understand my response, don't ignore it, ask a question.

  18. #58
    shodai is offline Senior Member
    Join Date
    Apr 2012
    Posts
    106
    Rep Power
    0

    Default Re: Applet Game

    ok, so how do I get the variables for x and y to be used in the pictures?

  19. #59
    Norm's Avatar
    Norm is offline Moderator
    Join Date
    Jun 2008
    Location
    SW Missouri
    Posts
    17,403
    Rep Power
    25

    Default Re: Applet Game

    Where do you want to draw the images?

    You would pass the x,y values to the draw method, not to the constructor, unless there is one instance of the class for each place you want to draw the image. Normally there would only be one instance of the class and that would be used to do the drawing at all the different places you want the image drawn.
    Last edited by Norm; 04-10-2014 at 03:01 PM.
    If you don't understand my response, don't ignore it, ask a question.

  20. #60
    shodai is offline Senior Member
    Join Date
    Apr 2012
    Posts
    106
    Rep Power
    0

    Default Re: Applet Game

    alright, I have been playing with things but I am not sure that I fully understand. Can you provide an example?

Page 3 of 4 FirstFirst 1234 LastLast

Similar Threads

  1. game applet example
    By hasan2222 in forum New To Java
    Replies: 5
    Last Post: 05-29-2013, 03:47 PM
  2. Snake Game Applet
    By Growler in forum Java Applets
    Replies: 6
    Last Post: 07-11-2010, 02:47 PM
  3. Applet to Application (Game)
    By AndrewM16921 in forum Java Applets
    Replies: 3
    Last Post: 04-12-2009, 12:24 PM
  4. An Applet Game
    By T3000 in forum New To Java
    Replies: 1
    Last Post: 11-18-2008, 04:18 PM
  5. Battery 1.02 (Applet Game)
    By M77 in forum Java Software
    Replies: 3
    Last Post: 05-30-2008, 12:54 AM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •