CoderZ.cc

Zurück   CoderZ.cc > Programmierung > Java > Sources


 
Themen-Optionen Ansicht
27.05.2013, 02:15   #1
td_armor (Offline)
Coderz Mitglied
 
Registriert seit: 27.09.2024
Beiträge: 153
Thanks: 1
Thanked 6 Times in 5 Posts
Standard [Java Source] [Spiel] Namenraten

Im Rahmen meiner Schulischen Ausbildung lernen wir Java, so war es hier die Aufgabe ein Spiel "zu entwickeln" das sich Namenraten Schimpft

Die Aufgabe :

5 Versuche, Übergabe per Argumente , Bei Sieg wird eine Sequenz per Midi gespielt.

Anregungen, Verbesserungen sind gerne gesehen.

// Midi Import um ein Sound auszugeben!
import javax.sound.midi.*;
// JOption für das Input
import javax.swing.JOptionPane; 
public class main
{
    public static void main(String[] args)
    {
        // Übergebenes Argument als String Deklarieren
        String suchwort = args[0];
        // Formartieren des Stringes auf "Uppercase" damit nicht auf Groß & Kleinschreibung geachtet werden muss.
        suchwort = suchwort.toUpperCase();
        // Maximale Versuche
        int maxtry =5;
        // Versuchs Nr
        int trynr=1;
        // Eingabe
        String name = "";
        // Schleife für die Versuche
        while(trynr <= maxtry){
            // Übergabe des Input Dialogs
            name= JOptionPane.showInputDialog("Raten Sie den Namen"); 
            // Name auf das Formart bringen
            name = name.toUpperCase();
            // Stimmt das Eingebene Wort mit der Eingabe überein?
            if(name.equals(suchwort))
            {
                // Sieg Sequenz
                beep(60,280);
                beep(60,400);
                beep(60,280);
                // Ausgabe das man gewonnen hat.
                JOptionPane.showMessageDialog(null, "Du hast gewonnen!" );
                break;
            }
            // Ausgabe des Falschen Begriffes
            System.out.println(name);
            // Counter Erhöhen
            trynr++;
            if(trynr > maxtry)
            {
                // Verloren Ausgabe des Wortes sowie der Nahricht das man verloren hat.
                JOptionPane.showMessageDialog(null,"Du hast verloren! " + suchwort + " wäre der richtige Name gewesen" );
            }
        }
    }
    // Funktion für den Beep ( Aus den Generator )
    public static void beep (int note, int dur)
    { 
        try
        { 
            Synthesizer synth=MidiSystem.getSynthesizer();
            synth.open();
            MidiChannel[] channels=synth.getChannels();
            MidiChannel channel=channels[0];
            channel.programChange(0);
            channel.noteOn(note,50);
            Thread.sleep(dur);
            channel.noteOff(50);
            synth.close();
        }
        catch (Exception e)
        {
            System.out.println(e);
        }
    }
}
__________________

  Mit Zitat antworten
27.05.2013, 23:51   #2
The Blubb (Offline)
Coderz Mitglied
 
Registriert seit: 18.12.2024
Ort: Schweiz
Beiträge: 105
Thanks: 27
Thanked 28 Times in 20 Posts
Standard

leider habe ich gerade nicht allzu viel zeit, aber was mir auf den ersten blick aufgefallen ist, ist dass du folgendes geschrieben hast:
catch (Exception e)
{
    System.out.println(e);
}
statdessen solltest du
e.printStackTrace();
oder
System.err.println(e);
schreiben.

printStackTrace() gibt genauere informationen welche methoden in welcher reihenfolge vor dem fehler aufgerufen wurden.
System.err.println(e); schreibt auf den standard error stream (err) anstelle vom standard output stream (out).
Normalerweise wird beides auf der konsole angezeigt, bei einem komplexeren programm willst du dann aber vielleicht nur die fehlermeldungen sehen und nicht noch tausende andere ausgaben. Wenn man jetzt die fehlermeldungen auf den err stream ond die normalen ausgaben auf den out stream schreibt, kann man den err stream in eine datei umleiten und schon hat man alle fehlermedungen.
  Mit Zitat antworten
The Following User Says Thank You to The Blubb For This Useful Post:
td_armor (31.05.2024)


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 05:36 Uhr.

Powered by vBulletin®
Copyright ©2008 - 2013
Template-Modifikationen durch TMS