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 3 of 3

Thread: Hangman

  1. #1
    Junior Member
    Join Date
    Mar 2010
    Posts
    2
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Default Hangman

    Hi,

    I'm making a Hangman program for school, the console version worked great, but now I have to put it in a GUI version. I can do all the side things (looking up highscores etc) myself, but getting the actual game in the gui version won"t work. Can anyone make this work?
    It is in Dutch, but I think everything is quite clear.

    Thanks,
    Tycho91


        import java.util.Comparator;
     
     
        public class Comp implements Comparator<Deelnemer> {                  //om de highscores te vergelijken, zodat ze gesorterd kunnen worden op score
            public int compare(Deelnemer d1, Deelnemer d2) {
                if (d2.getScore() == d1.getScore()) {
                    return 0;
                } else {
                    return d2.getScore() > d1.getScore() ? 1 : -1;
                }
            }
    }

    public class Deelnemer {            // alles over de deelnemer
     
        private long score;
        private String naam;
     
        public String getDeelnemer() {
            return String.format("%10s%10d", naam, score);
        }
     
        public Deelnemer(String naam, long score) {
            this.naam = naam;
            this.score = score;
        }
     
        public String getNaam() {
            return naam;
        }
     
        public long getScore() {
            return score;
        }
     
        public void setNaam(String naam) {
            this.naam = naam;
        }
     
        public void setScore(long score) {
            this.score = score;
        }
    }

    public class GalgTekenen {
        public void MaakGalg(int fouten) {                  // dit maakt de galg aan de hand van het aantal fouten
            switch (fouten) {
                case 1:
                    System.out.println("");
                    System.out.println("|");
                    System.out.println("|");
                    System.out.println("|");
                    System.out.println("|_ _");
                    break;
                case 2:
                    System.out.println("____");
                    System.out.println("|");
                    System.out.println("|");
                    System.out.println("|");
                    System.out.println("|_ _");
                    break;
                case 3:
                    System.out.println("____");
                    System.out.println("|/");
                    System.out.println("|");
                    System.out.println("|");
                    System.out.println("|_ _");
                    break;
                case 4:
                    System.out.println("____");
                    System.out.println("|/ |");
                    System.out.println("|");
                    System.out.println("|");
                    System.out.println("|_ _");
                    break;
                case 5:
                    System.out.println("____");
                    System.out.println("|/ |");
                    System.out.println("|  O");
                    System.out.println("|");
                    System.out.println("|_ _");
                    break;
                case 6:
                    System.out.println("____");
                    System.out.println("|/ |");
                    System.out.println("|  O");
                    System.out.println("|  |");
                    System.out.println("|_ _");
                    break;
                case 7:
                    System.out.println("____");
                    System.out.println("|/ |");
                    System.out.println("|  O");
                    System.out.println("| /|");
                    System.out.println("|_ _");
                    break;
                case 8:
                    System.out.println("____");
                    System.out.println("|/ |");
                    System.out.println("|  O");
                    System.out.println("| /|\\");
                    System.out.println("|_ _");
                    break;
                case 9:
                    System.out.println("____");
                    System.out.println("|/ |");
                    System.out.println("|  O");
                    System.out.println("| /|\\");
                    System.out.println("|_/_");
                    break;
                case 10:
                    System.out.println("____");
                    System.out.println("|/ |");
                    System.out.println("|  O");
                    System.out.println("| /|\\");
                    System.out.println("|_/_\\");
                    break;
            }
        }
    }

    import javax.swing.*;
     
     
    public class GUI {
        public static void main(String[] args) {
            MyFrame kaderke = new MyFrame();
            kaderke.setSize(500,500);
            kaderke.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            kaderke.setVisible(true);
        }
    }

    import java.io.BufferedWriter;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.Collections;
     
     
    public class HighScores {
        private static ArrayList<Deelnemer> highscores = new ArrayList<Deelnemer>();
     
     
        private long score;
        private String naam;
     
     
        public HighScores(Spel spel) {
            naam = spel.getNaam();
            score = spel.getScore();
        }
     
        public static void printHighscores() {     //print highscores in spel
            int i = 1;
            for (Deelnemer d : highscores) {
                System.out.println(i);
                System.out.println(d.getDeelnemer());
                i++;
            }
        }
     
        public static void addDeelnemerToe(String naam, long score) {        //voegt een deelnemer toe aan de highscore lijst
            if (!highscores.contains(new Deelnemer(naam, score))) {
                highscores.add(new Deelnemer(naam, score));
                Collections.sort(highscores, new Comp());
            }
        }
     
        public void schrijfHighscores() {       //schrijft de highscores naar het tekst bestand
            try {
     
                FileWriter schrijver = new FileWriter("highscores.txt");
                BufferedWriter out = new BufferedWriter(schrijver);
                out.write(score + "<////>" + naam);
                out.close();
            } catch (Exception e) {
                System.err.println("Error: " + e.getMessage());
            }
        }
     
        public static void wissen() {     //wist de highscores
    	highscores.clear();
    }
     
     
     
        public String getNaam() {
            return naam;
        }
     
        public long getScore() {
            return score;
        }
     
        public void setNaam(String naam) {
            this.naam = naam;
        }
     
        public void setScore(long score) {
            this.score = score;
        }
    }

    import java.io.*;
    import java.util.Scanner;
    import java.util.ArrayList;
    import java.util.List;
     
    public class LeesHighscores {
        BufferedReader in;
        String read;
        File file;
     
     
        public void LeesFile() {          //lest de highscore file
            try {
                in = new BufferedReader(new FileReader(file));
                read = in.readLine();
                System.out.println(read);
                in.close();
            } catch (IOException e) {
                System.out.println("Error" + e);
     
            }
        }
     
        public ArrayList<String> LeesHighscores() {                 //leest de highscore file
            file = new File("highscores.txt");
            ArrayList<String> lijst = new ArrayList<String>();
     
            try {
                Scanner scan = new Scanner(new BufferedReader(new FileReader(new File("highscores.txt"))));
                while(scan.hasNextLine()){
                    String deelnemer = scan.nextLine();
                    lijst.add(deelnemer);
     
    }
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            }
     
       return lijst; }
    }

    import java.util.Scanner;
     
     
    public class Menu {
        public void maakKeuze() {                          //de keuzelijst van het menu
            Scanner input = new Scanner(System.in);
            //Woordenlijst.maakLijst();
            System.out.println("Kies één van de volgende opties");
            System.out.println("1. Speel");
            System.out.println("2. Highscores");
            System.out.println("3. Highscores wissen");
            System.out.println("4. Woorden bekijken");
            System.out.println("5. Woorden toevoegen");
            System.out.println("6. Woorden verwijderen");
            System.out.println("7. Alle woorden verwijderen");
     
            System.out.printf("Geef de nummer van u keuze in: ");
     
            int keuze = input.nextInt();
            switch (keuze) {
                case 1:
                    Spelen();
                    break;
                case 2:
                    Highscores();
                    break;
                case 3:
                    HighscoresWissen();
                    break;
                case 4:
                    WoordenBekijken();
                    break;
                case 5:
                    System.out.println("Welk woord wilt u toevoegen?(Maximum 16letters)");
                    input.nextLine();
                    WoordenToevoegen(input.nextLine());
                    break;
                case 6:
                    System.out.println("Welk woord wilt u verwijderen?");
                    input.nextLine();
                    WoordenVerwijderen(input.nextLine());
                    break;
                case 7:
                    AlleWoordenVerwijderen();
                    break;
                default:
                    System.out.println("Dit is geen geldige optie");
                    maakKeuze();
            }
        }
     
     
        public void Spelen() {          //voor het spel te spelen
            Spel spel = new Spel();
            spel.start();
            HighScores scores = new HighScores(spel);
            scores.schrijfHighscores();
        }
     
        public void Highscores() {          //voor de highscores te bekijken
             HighScores.printHighscores();
        }
     
        public void HighscoresWissen() {             //voor de highscores te wisen
           HighScores.wissen();
        }
     
     
        public void WoordenBekijken() {                       //voor de woordenlijst te bekijken
           /*
            for (String woord : Woordenlijst.lijst) {
                System.out.println(woord);
            }*/
     
        }
     
        public void WoordenToevoegen(String woord) {      //om een woord toe te voegen aan de woordenlijst
           // Woordenlijst.voegToe(woord);
        }
     
     
        public void WoordenVerwijderen(String woord) {                  //om een woord in de woordenlijst te verwijderen
            //Woordenlijst.lijst.remove(woord);
     
        }
     
     
        public void AlleWoordenVerwijderen() {                    //om alle woorden in de woordenlijst te verwijderen
           // Woordenlijst.lijst.clear();
        }
     
    }

    /**
     * Created by IntelliJ IDEA.
     * User: Christof
     * Date: 17-mrt-2010
     * Time: 16:15:12
     * To change this template use File | Settings | File Templates.
     */
     
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.util.ArrayList;
     
     
    public class MyFrame extends JFrame {
     
        private JMenuBar bar;
        private JMenu spel;
        private JMenu admin;
        private JMenu help;
        private JMenuItem info;
        private JMenuItem spelregels;
        private JMenuItem galgje;
        private JMenuItem highscores;
        private JMenuItem Exit;
        private JMenuItem highscoresWissen;
        private JMenuItem woordenBekijken;
        private JMenuItem woordenToevoegen;
        private JMenuItem woordenWissen;
        private JMenuItem alleWoordenWissen;
        String cancel = "";
     
     
        public MyFrame() throws HeadlessException {
            super("Tycho & Christof Productions - Galgje");
     
            maakComponenten();
            maakLayout();
            voegListenersToe();
            toonFrame();
            maakEventHandlers();
        }
     
        private void maakComponenten() {
     
            bar = new JMenuBar();
            spel = new JMenu("spel");
            galgje = new JMenuItem("Galgje");
            highscores = new JMenuItem("Highscores");
            woordenBekijken = new JMenuItem("Woorden bekijken");
            Exit = new JMenuItem("Spel beëindigen");
     
            admin = new JMenu("Administrator");
            highscoresWissen = new JMenuItem("Highscores Wissen");
            woordenToevoegen = new JMenuItem("Woorden Toevoegen");
            woordenWissen = new JMenuItem("Woorden Wissen");
            alleWoordenWissen = new JMenuItem("Alle woorden wissen!");
     
            help = new JMenu("Help");
            info = new JMenuItem("Info");
            spelregels = new JMenuItem("Spelregels");
     
     
            // Voeg items toe aan hun menu
            spel.add(galgje);
            spel.add(highscores);
            spel.add(woordenBekijken);
            spel.add(Exit);
     
            admin.add(highscoresWissen);
            admin.add(woordenToevoegen);
            admin.add(woordenWissen);
            admin.add(alleWoordenWissen);
     
            help.add(info);
            help.add(spelregels);
     
     
            // Voeg menu's toe aan de bar
            bar.add(spel);
            bar.add(admin);
            bar.add(help);
     
        }
     
        private void maakLayout() {
     
            setJMenuBar(bar);
     
        }
     
        private void voegListenersToe() {
            // Zorg ervoor dat bij het klikken op een button, er iets gebeurt
            galgje.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
     
                    Spel spel = new Spel();
                    spel.start();
                    HighScores scores = new HighScores(spel);
                    scores.schrijfHighscores();
                }
            });
     
            highscores.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    JPanel panel = new JPanel(new GridLayout(0, 1, 5, 5));
                    ArrayList<String> lijst = new LeesHighscores().LeesHighscores();
     
                    for (String s : lijst) {
                        System.out.print(s);
                    }
     
                }
     
     
            });
     
            woordenBekijken.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
     
                }
     
            });
     
     
            highscoresWissen.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
     
                }
     
            });
     
            woordenToevoegen.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
     
                }
     
            });
     
            woordenWissen.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
     
                }
     
            });
     
            alleWoordenWissen.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
     
                }
     
            });
     
     
            info.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    JOptionPane.showMessageDialog(null, "Hier komt de info, verzin maar iets");
                }
     
            });
     
            spelregels.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    JOptionPane.showMessageDialog(null, "Hier komen de spelregels, ow yeah, spelregels voor galgje");
                }
     
            });
     
     
        }
     
        private void toonFrame() {
            setSize(300, 300);
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            setVisible(true);
        }
     
        private class ButtonListener implements ActionListener {
            public void actionPerformed(ActionEvent e) {
                String s = e.getActionCommand();
                if (s.equals("Speel")) {
                    System.out.println("Begin met het spel!");
                }
            }
        }
     
     
        private void maakEventHandlers() {
            Exit.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    System.exit(0);
     
                }
            });
     
     
        }
    }

    public class SpeelSpel {
        public static void main(String[] args) {                         //dit runnen om het spel te spelen
            Menu menu = new Menu();
            menu.maakKeuze();
        }
    }

    import javax.swing.*;
    import java.util.Scanner;
     
     
    public class Spel {
        private String naam;
        private long score;
     
        private WoordControle control;             //laad de woordcontrole klasse
     
        public Spel() {
            GalgTekenen galg = new GalgTekenen();
            control = new WoordControle(galg);
        }
     
        public void start() {
            Scanner input = new Scanner(System.in);
            control.kiesWoord();                                     //kiest een woord
     
            long time = System.currentTimeMillis();             //begint de timer
                          //naam ingeven
            naam = JOptionPane.showInputDialog("Geef uw naam.");
     
            do {
                char letter = '_';                                //tekend de streepjes
                String inp;
                do {
                    inp= JOptionPane.showInputDialog(null,"Welke letter kies je?");
     
     
                    inp = inp.toUpperCase();
     
                    if (inp.length() > 0) {
                        letter = inp.charAt(0);
                         JOptionPane.showMessageDialog(null,"Je koos de letter" + letter);
                        if (!control.isLetter(letter)) {
                             JOptionPane.showMessageDialog(null,"Foutieve invoer");
                        }
                    } else {
                        JOptionPane.showMessageDialog(null,"Foutieve invoer");
                    }
                }
                while (!control.isLetter(letter) || inp.length() == 0);
     
                control.checkLetter(letter);
            }
            while (!control.isGedaan());
     
            if (control.geraden()) {
                JOptionPane.showMessageDialog(null,"Je hebt het woord geraden!");
            } else {
                JOptionPane.showMessageDialog(null,"Het woord was:"+ control.getWoord());
            }
            control.getFouten();
     
            long tijd = System.currentTimeMillis() - time;                   // berekend de gespeelde tijd
     
            score = 10000 - (tijd / 100) - (500 * control.getFouten());
            HighScores.addDeelnemerToe(naam, score);
        }
     
        public String getNaam() {
            return naam;
        }
     
        public long getScore() {
            return score;
        }
     
    }

    import java.util.Random;
     
     
    public class WoordControle {
     
        private String woord;
        private String raad;
        private int fouten = 0;
        private GalgTekenen galg;
        private String geradenChars = "";
     
        public WoordControle(GalgTekenen galg) {
            this.galg = galg;
        }
     
        public void kiesWoord() {                         //kiest een woord
            Random random = new Random();
            Woordenlijst woorden = new Woordenlijst();
     
     
            woord = woorden.getWoord(2 /*random.nextInt(woorden.getSize())*/);
            woord = woord.toUpperCase();
            raad = "";
     
            do {
                raad += "_";
            }
            while (raad.length() != woord.length());
     
        }
     
        public boolean isLetter(char letter) {
            return ((int) letter > 64 && (int) letter < 91);
        }
     
        public void checkLetter(char letter) {             //controleerd de ingegeven letters
            boolean reedsGeraden = false;
            if (geradenChars.length() > 0) {
                if (geradenChars.indexOf(letter) >= 0) {
                    reedsGeraden = true;
                }
            }
     
            if (reedsGeraden) {                                   //controleerd of de letter al niet gekozen is
                System.out.println("Je hebt deze letters reeds gekozen: ");
                System.out.println(geradenChars);
            } else {
                geradenChars += letter;
     
                String vorige = raad;
     
                char[] geraden = raad.toCharArray();
                for (int i = 0; i < woord.length(); i += 1) {
                    if (woord.charAt(i) == letter) {
                        geraden[i] = letter;
                    }
                }
     
                raad = new String(geraden);
                if (raad.equals(vorige)) {
                    fouten += 1;
                }
                galg.MaakGalg(fouten);
     
                System.out.println(raad);
            }
        }
     
        public boolean geraden() {                 //of het geraden is
            return raad.equals(woord);
        }
     
        public boolean isGedaan() {
            return ((raad.equals(woord)) || (fouten == 10));
        }
     
        public String getWoord() {
            return woord;
        }
     
        public int getFouten() {
            return fouten;
        }
     
    }

    import java.util.ArrayList;
    import java.util.Scanner;
    import java.io.FileReader;
    import java.io.BufferedReader;
    import java.io.IOException;
     
     
    public class Woordenlijst {
        ArrayList<String> lijst;
     
        public Woordenlijst() {
            maakLijst();
        }
     
        public void maakLijst() {                                     // dit leest de lijst in voor het spelen
            lijst = new ArrayList<String>();
            try {
                String bestandsnaam = "woordenlijst\\woordenlijst_2009.txt";
                FileReader file = new FileReader(bestandsnaam);
                Scanner scanner = new Scanner(new BufferedReader(file));
     
                while (scanner.hasNextLine()) {
                    lijst.add(scanner.nextLine());
                }
            }
            catch (IOException e) {
                System.out.println("Probleem bij het lezen van de woordenlijst.");               //voor als er een probleem is
            }
        }
     
        public ArrayList<String> getLijst(){
            return lijst;
        }
     
        public int getSize() {                                           //kijkt hoeveel letters het woord is
            return lijst.size();
        }
     
        public void voegToe(String woord) {                             //voor een woord toe te voegen aan de lijst
            lijst.add(woord);
        }
     
     
        public String getWoord(int index) {                            //voor een woord te zoeken
            return lijst.get(index);
        }
    }
    Attached Files Attached Files
    Last edited by Tycho91; March 19th, 2010 at 06:13 AM.


  2. #2
    mmm.. coffee JavaPF's Avatar
    Join Date
    May 2008
    Location
    United Kingdom
    Posts
    3,336
    My Mood
    Mellow
    Thanks
    258
    Thanked 287 Times in 225 Posts
    Blog Entries
    4

    Default Re: Hangman

    Hello Tycho91, welcome to the forums.

    Is there much code?

    Please paste the code within code tags here. Your more likely to get a reply..
    Please use [highlight=Java] code [/highlight] tags when posting your code.
    Forum Tip: Add to peoples reputation by clicking the button on their useful posts.

    Looking for a Java job? Visit - Java Programming Careers

  3. #3
    Junior Member
    Join Date
    Mar 2010
    Posts
    2
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Default Re: Hangman

    Yes it is, its about 10 classes, but I'll post it in code tags

Similar Threads

  1. Java hangman game help...
    By AnotherNoob in forum AWT / Java Swing
    Replies: 16
    Last Post: December 4th, 2009, 10:17 PM