Results 1 to 2 of 2
  1. #1
    Phobos0001 is offline Member
    Join Date
    Nov 2007
    Posts
    20
    Rep Power
    0

    Default creating a text based game

    howdy everyone,

    me and 2 other classmate) wish to try to create a simple text based RPG game, basicaly have a drop down box to choose from a couple of opponents and use a dialog box to allow them to attempt to hit the opponent or flee from them, the core idea is to use the math.random method and deduct the result from the opponent's health untill it reaches zero. extremely simple turn based fights, nothing too exciting but lots of work programming wise especialy for beginners such as myself, but theres no time limit on the project thankfully, heh heh.

    any suguestions on methods to read up on to save on coding such as other math.X are greatly apriciated by the way, or even sites that might have something similar for inspiriation

    ..now onto the problem at hand

    ive been searching around the net for examples of programs on how to customise dialog boxes, and i found How to Make Dialogs (The Java™ Tutorials > Creating a GUI with JFC/Swing > Using Swing Components)

    beying from the makers of the language, you assume that the programs they give you would work....mine doesnt, possibly on my end is where the problem lies but here is what i downloaded from sun....
    i had errors on lines 16 and 33 (not trying to sound cocky or pick apart sun, just a little concirned that my JDK is flawed)

    im hoping to get this one working, i find it easier to understand programs both through code and running them
    Java Code:
    package components;
    
    import javax.swing.JOptionPane;
    import javax.swing.JDialog;
    import javax.swing.JTextField;
    import java.beans.*; //property change stuff
    import java.awt.*;
    import java.awt.event.*;
    
    /* 1.4 example used by DialogDemo.java. */
    class CustomDialog extends JDialog
                       implements ActionListener,
                                  PropertyChangeListener {
        private String typedText = null;
        private JTextField textField;
        private DialogDemo dd;
    
        private String magicWord;
        private JOptionPane optionPane;
    
        private String btnString1 = "Enter";
        private String btnString2 = "Cancel";
    
        /**
         * Returns null if the typed string was invalid;
         * otherwise, returns the string as the user entered it.
         */
        public String getValidatedText() {
            return typedText;
        }
    
        /** Creates the reusable dialog. */
        public CustomDialog(Frame aFrame, String aWord, DialogDemo parent) {
            super(aFrame, true);
            dd = parent;
    
            magicWord = aWord.toUpperCase();
            setTitle("Quiz");
    
            textField = new JTextField(10);
    
            //Create an array of the text and components to be displayed.
            String msgString1 = "What was Dr. SEUSS's real last name?";
            String msgString2 = "(The answer is \"" + magicWord
                                  + "\".)";
            Object[] array = {msgString1, msgString2, textField};
    
            //Create an array specifying the number of dialog buttons
            //and their text.
            Object[] options = {btnString1, btnString2};
    
            //Create the JOptionPane.
            optionPane = new JOptionPane(array,
                                        JOptionPane.QUESTION_MESSAGE,
                                        JOptionPane.YES_NO_OPTION,
                                        null,
                                        options,
                                        options[0]);
    
            //Make this dialog display it.
            setContentPane(optionPane);
    
            //Handle window closing correctly.
            setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
            addWindowListener(new WindowAdapter() {
                    public void windowClosing(WindowEvent we) {
                    /*
                     * Instead of directly closing the window,
                     * we're going to change the JOptionPane's
                     * value property.
                     */
                        optionPane.setValue(new Integer(
                                            JOptionPane.CLOSED_OPTION));
                }
            });
    
            //Ensure the text field always gets the first focus.
            addComponentListener(new ComponentAdapter() {
                public void componentShown(ComponentEvent ce) {
                    textField.requestFocusInWindow();
                }
            });
    
            //Register an event handler that puts the text into the option pane.
            textField.addActionListener(this);
    
            //Register an event handler that reacts to option pane state changes.
            optionPane.addPropertyChangeListener(this);
        }
    
        /** This method handles events for the text field. */
        public void actionPerformed(ActionEvent e) {
            optionPane.setValue(btnString1);
        }
    
        /** This method reacts to state changes in the option pane. */
        public void propertyChange(PropertyChangeEvent e) {
            String prop = e.getPropertyName();
    
            if (isVisible()
             && (e.getSource() == optionPane)
             && (JOptionPane.VALUE_PROPERTY.equals(prop) ||
                 JOptionPane.INPUT_VALUE_PROPERTY.equals(prop))) {
                Object value = optionPane.getValue();
    
                if (value == JOptionPane.UNINITIALIZED_VALUE) {
                    //ignore reset
                    return;
                }
    
                //Reset the JOptionPane's value.
                //If you don't do this, then if the user
                //presses the same button next time, no
                //property change event will be fired.
                optionPane.setValue(
                        JOptionPane.UNINITIALIZED_VALUE);
    
                if (btnString1.equals(value)) {
                        typedText = textField.getText();
                    String ucText = typedText.toUpperCase();
                    if (magicWord.equals(ucText)) {
                        //we're done; clear and dismiss the dialog
                        clearAndHide();
                    } else {
                        //text was invalid
                        textField.selectAll();
                        JOptionPane.showMessageDialog(
                                        CustomDialog.this,
                                        "Sorry, \"" + typedText + "\" "
                                        + "isn't a valid response.\n"
                                        + "Please enter "
                                        + magicWord + ".",
                                        "Try again",
                                        JOptionPane.ERROR_MESSAGE);
                        typedText = null;
                        textField.requestFocusInWindow();
                    }
                } else { //user closed dialog or clicked cancel
                    dd.setLabel("It's OK.  "
                             + "We won't force you to type "
                             + magicWord + ".");
                    typedText = null;
                    clearAndHide();
                }
            }
        }
    
        /** This method clears the dialog and hides it. */
        public void clearAndHide() {
            textField.setText(null);
            setVisible(false);
        }
    }
    thanks in advance for any help.
    also is it possible to use "import javax.swing.*" rather then all those lines? mainly to keep the code clean, i have to explain all of my coding to my teacher, mainly to prove i understand it all and diddnt just copy paste into my program


    *edit*
    i forgot to mention what error i had, the compile error said "cannot resolve symbol class DialogDemo"
    Last edited by Phobos0001; 02-12-2008 at 04:42 PM. Reason: forgot to enter some information

  2. #2
    Phobos0001 is offline Member
    Join Date
    Nov 2007
    Posts
    20
    Rep Power
    0

    Default

    ive found quite a few good sites with plenty of info creating games and such, one particualarly good one even gives you the sourse code GameDev.net - How To Build a Game In A Week From Scratch With No Budget

    the only drawback is it is written in python, not java, but if you have some brains you can guess what he's coded up and use java syntax instead, my game will only be pure text and only deal in health and damage, no armor, magic or anything fancy....yet. gotta crawl before i can walk heh heh.

    just thought if anyone was keen on writing something similar that the website above may be helpful

Similar Threads

  1. i need an example of JSR179 ((Location based Ser)implementation for CDC based device
    By talk_to_vivekmishra in forum CDC and Personal Profile
    Replies: 3
    Last Post: 12-30-2010, 11:07 AM
  2. Replies: 2
    Last Post: 08-05-2010, 05:49 AM
  3. Help with java text game
    By silvia in forum New To Java
    Replies: 6
    Last Post: 07-27-2007, 07:58 PM
  4. Replies: 1
    Last Post: 07-24-2007, 12:59 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
  •