collapse collapse

* PayPal

* Benutzer Info

 
 
Willkommen Gast. Bitte einloggen oder registrieren.

* Wer ist Online

  • Dot Gäste: 9
  • Dot Versteckte: 0
  • Dot Mitglieder: 0

There aren't any users online.

* Forum Statistiken

  • stats Mitglieder insgesamt: 518
  • stats Beiträge insgesamt: 6651
  • stats Themen insgesamt: 1118
  • stats Kategorien insgesamt: 6
  • stats Boards insgesamt: 18
  • stats Am meisten online: 42
01. März 2017, 16:05:04 von Reggie | Views: 302 | Comments: 1

Hi Leute,
ich versuche mir gerade Java beizubringen und möchte mit einem Kartenspiel beginnen. Dazu habe ich mir zum Aufbau ein paar Gedanken gemacht und würde gerne wissen, ob ich damit grundsätzlich richtig liege, denn ich komme aus der Ecke des "prozeduales Programmieren" und mir ist das "objektorientierte Programmieren" noch nicht so ganz verständlich.

here we go:

Ich kann die Spielkarten sehr gut in 3 Kategorien einteile, die alle etwas völlig unterschiedliches machen und darstellen (Personenkarten, Aktionskarten, Sonderkarten).
Also dachte ich mir, dass ich eine Mutterklasse Karte erstelle (abstract?) und jede der Kartenkategorien wird eine eigene Unter-Klasse. Der Grund dafür ist, weil ich die Orte, an denen sich die Karten im Spielverlauf nur befinden können (Ziehstapel, Ablagestapel, HandSpieler[n], AuslagejeweiligerSpieler[n]) als Arraylist des Typs Karte verwalte. Karten-Objekte erstelle ich ja keine, aber alle gehören (erben) ja zum Typ Karte.

Ist das zu kompliziert gedacht? ich könnte natürlich auch nur 1 Klasse Karte haben, und die Kategorie ist einfach ein Attribut der Klasse Karte.

Bin offen für Vorschläge, Erklärungen, Tipps und hoffe ich verstehe es.
08. Januar 2017, 12:51:53 von Rayo | Views: 361 | Comments: 0

Ich war wieder am Internetsurfen und hab einen interessanter Blogpost mit Demo zum Thema Weltgenerierung gefunden. Dieser benutzt aber - anders als viele andere solche Algorithmen - keine Noise Algorithmen im Vordergrund, sondern basiert grundlegend auf einem Voronoi Diagramm.

Blogpost: http://www-cs-students.stanford.edu/~amitp/game-programming/polygon-map-generation/
Demo: http://www-cs-students.stanford.edu/~amitp/game-programming/polygon-map-generation/demo.html

Spielt zumindest mal ein bisschen mit der Demo herum, macht echt Spaß und es kommen tolle Ergebnisse dabei raus :D
03. Januar 2017, 23:23:00 von Bobo | Views: 623 | Comments: 5

Hi, ich muss dieses Spiel bis Montag fertig bekommen und hab keine Ahnung wie ich umgehe, dass die While-Schleife, die ich brauche damit die Karten-Werte geschickt werden, mein Programm nicht zum Abstürzen bringt. Könnt ihr mal drüber schauen und mir helfen?

import java.awt.*;
import javax.swing.*;
public class StartSpiel { 
  public static void main(String[] args) {
    Menue m = new Menue();
    m.setVisible(true);
    m.setSize(800, 600);
    m.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    m.setLocationRelativeTo(null);
    m.setTitle("FightCard");
    m.setResizable(false);
    m.add(new Menue());
   
    //SpielText st = new SpielText();
  } // end of main
} // end of class StartSpiel

import java.awt.*;
//import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.awt.event.*;
import javax.swing.*;
public class Menue extends JFrame{
  //JLabel
  JLabel titel;
 
  //JButton
  JButton start;
  JButton credits;
  JButton anleitung;
 
 
  //JTextField
  JTextField ip;
  JTextField port;
  JTextField username;
 
  //int
  private int portnummer;
 
  //String
  private String ipAddresse;
  private String user;
 
 
  //Bilder
  //private BufferedImage background;
 
  public Menue() {
    //Fensteroptionen
    super("FightCard");
    setLayout(null);
   
    //Titel (JLabel)
    titel = new JLabel("Anime Fight Card Battle");
    Font schriftTitel = (titel.getFont().deriveFont(Font.BOLD, 50));
    titel.setFont(schriftTitel);
    titel.setBounds(0,0,600,100);
    add(titel);
   
    //Titelbild
    //background = Bilder.background;
   
    //Start (Button) --> neues JFrame aufrufen
    start = new JButton("Start");
    start.addActionListener(new StartListener());
    start.setBounds(0,100,100,50);
    add(start);
   
    //Anleitung (Button)
    anleitung = new JButton("Anleitung");
    anleitung.addActionListener(new StartListener());
    anleitung.setBounds(100,100,100,50);
    add(anleitung);
   
    //Credits (Button)
    credits = new JButton("Credits");
    credits.addActionListener(new StartListener());
    credits.setBounds(200,100,100,50);
    add(credits);
   
    //ip TextFeld
    ip = new JTextField();
    ip.setBounds(300,100,150,50);
    add(ip);
    ip.setText("127.0.0.1");
   
    //port TextFeld
    port = new JTextField();
    port.setBounds(450,100,150,50);
    add(port);
    port.setText("10000");
   
    //username TextFeld
    username = new JTextField();
    username.setBounds(600,100,150,50);
    add(username);
    username.setText("Username");
   
   
  }

  private class StartListener implements ActionListener{
    private int portnummer;
    private String ipAddresse;
    private String user;
   
    public void actionPerformed (ActionEvent e){
      if (e.getSource() == start) {
        JFrame sf = new SpielFrame();
       
        sf.setVisible(true);
        sf.setSize(1000, 1000);
        sf.setLocationRelativeTo(null);
        sf.setTitle("FightCard start");
        sf.setResizable(false);
       
        SpielFrame spiel = new SpielFrame();
       
        this.portnummer = Integer.parseInt(port.getText());       //Umwandlung von String in int!!!!!!
        this.ipAddresse = ip.getText();
       
        MultithreadedClient client = new MultithreadedClient(ipAddresse, portnummer, user, spiel.getKartenwert(), spiel.getGeklickt());
        //ClientTest client = new ClientTest();
       
       
        this.user = username.getText();
       
        client.start();
        //client.warte();
       
       
        //        System.out.println("Menü: "+ipAddresse);
        //        System.out.println("Menü: "+portnummer);
        //        System.out.println("Menü: "+User);
       
       
       
      } // end of if
     
      if (e.getSource() == credits) {
        JFrame cr = new Credits();
       
        cr.setVisible(true);
        cr.setSize(800, 600);
        cr.setLocationRelativeTo(null);
        cr.setTitle("FightCard Credits");
        cr.setResizable(false);
      } // end of if
    }
  }
 
  public int getPortnummer() {
   
    return this.portnummer;
  }
 
  public String getIpAddresse() {
   
    return this.ipAddresse;
  }
 
  public String getUsername() {
   
    return this.user;
  }
} // end of class Menue

import java.awt.*;
import javax.swing.*;
import java.util.*;
import java.awt.image.BufferedImage;
import java.awt.event.*;
import java.awt.Graphics;

public class SpielFrame extends JFrame{
  //Icon
  Icon bild1;
  Icon bild2;
  Icon bild3;
  Icon bild4;
  Icon bild5;
  Icon bild6;
  Icon bild7;
  Icon bild8;
  Icon bild9;
  Icon bild10;
  Icon bild11;
 
  //JButton
  JButton [] card = new JButton[10];
 
  //JLabel
  JLabel [] hinten = new JLabel[10];
 
  //String
  String wert = "";
 
  //int
  int gegnerWert;
 
  //Boolean
  boolean geklickt = false;

  public SpielFrame() {
    //SpielFrame
    super("FightCard start");
    setLayout(new GridLayout(4,0));
   
    //Bilder
    bild1 = new ImageIcon(getClass().getResource("Naruto.png"));   //1   
    bild2 = new ImageIcon(getClass().getResource("Ruffy.png"));    //5
    bild3 = new ImageIcon(getClass().getResource("Kirito.png"));   //9
    bild4 = new ImageIcon(getClass().getResource("Rias.png"));     //6
    bild5 = new ImageIcon(getClass().getResource("Son Goku.png")); //3
    bild6 = new ImageIcon(getClass().getResource("Akame.png"));    //2
    bild7 = new ImageIcon(getClass().getResource("Natsu.png"));    //7
    bild8 = new ImageIcon(getClass().getResource("Medaka.png"));   //4
    bild9 = new ImageIcon(getClass().getResource("Lucy.png"));     //8
    bild10 = new ImageIcon(getClass().getResource("Yuno.png"));    //10
    bild11 = new ImageIcon(getClass().getResource("Karte Hintergrund.png"));
   
    //Buttons
    card[0] = new  JButton("", bild1);
    card[1] = new  JButton("", bild2);
    card[2] = new  JButton("", bild3);
    card[3] = new  JButton("", bild4);
    card[4] = new  JButton("", bild5);
    card[5] = new  JButton("", bild6);
    card[6] = new  JButton("", bild7);
    card[7] = new  JButton("", bild8);
    card[8] = new  JButton("", bild9);
    card[9] = new  JButton("", bild10);
    for (int j=0; j<card.length; j++) {
      card[j].addActionListener(new CardListener());
      add(card[j]);
    } // end of for   
   
    //Bilder Karten des Gegners
    for (int i=0; i<hinten.length; i++) {
      hinten[i] = new JLabel(bild11);
      add(hinten[i]);
    } // end of for
   
    //Karte auswählen können
   
    //mit Client1 dem Server auswahl mitteilen --> server muss Client2 auswahl anzeigen
   
    //Client1 muss gegnerauswahl anzeigen
   
    //    gegnerWert = Integer.parseInt(client.getMessage());
    //vergleiche Schaden
   
    //größeres gewinnt, bei unentschieden werden karten auf seite gelegt und warten auf nächste Runde gewinner
    //} while (); // end of do-while
   

  }

  public String getKartenwert() {
    return this.wert;
  }
 
  public boolean getGeklickt() {
    return this.geklickt;
  }

  public class CardListener implements ActionListener{
    Menue m = new Menue();
   
    String wert = "100";
    boolean geklickt = false;
   
    public void actionPerformed (ActionEvent e){
      if (e.getSource() == card[0]) {
        System.out.println("Spiel: " + geklickt + ", " + wert);
       
        this.wert = "1";
        geklickt = true;
       
       
        System.out.println("Spiel: " + geklickt + ", " + wert);
      }  //end of if
      if (e.getSource() == card[1]) {
        this.wert = "5";
        geklickt = true;
      }  //end of if
      if (e.getSource() == card[2]) {
        this.wert = "9";
        geklickt = true;
      }  //end of if
      if (e.getSource() == card[3]) {
        this.wert = "6";
        geklickt = true;
      }  //end of if
      if (e.getSource() == card[4]) {
        this.wert = "3";
        geklickt = true;
      }  //end of if
      if (e.getSource() == card[5]) {
        this.wert= "2";
        geklickt = true;
      }  //end of if
      if (e.getSource() == card[6]) {
        this.wert = "7";
        geklickt = true;
      }  //end of if
      if (e.getSource() == card[7]) {
        this.wert = "4";
        geklickt = true;
      }  //end of if
      if (e.getSource() == card[8]) {
        this.wert = "8";
        geklickt = true;
      }  //end of if
      if (e.getSource() == card[9]) {
        this.wert = "10";
        geklickt = true;
      }  //end of if     
    }   
    MultithreadedClient mtc = new MultithreadedClient(m.getIpAddresse(), m.getPortnummer(), m.getUsername(), wert, geklickt);
    //mtc.start();
  } // end of class SpielFrame 


import java.io.*;
import java.net.*;
import java.util.*;
public class MultithreadedClient {
  Menue menue = new Menue();
  //SpielFrame sf = new SpielFrame();
  boolean aktiv = false;
 
 
  private String IP_ADRESS;
  private int PORT;
  private ArrayList<String> messageBuffer = new ArrayList<String>();
  //private final Scanner SC = new Scanner(System.in);
  private String username;
  private String line;
  //  int zähler = 1;
  //  long t = System.currentTimeMillis();
  //  long end = t+10000;
 
 
 
  public MultithreadedClient(String ipAddresse, int portnummer, String user, String wert, boolean geklickt) {
   
    this.IP_ADRESS = ipAddresse;
    this.PORT = portnummer;
    this.username = user;
    this.line = wert;
    this.aktiv = geklickt;
  }
 
  public void start(){
    try {
      Socket s = new Socket(IP_ADRESS,PORT);
     
      Thread t = new Thread(new Reader(s));
      t.start();
     
      OutputStream os = s.getOutputStream();
      OutputStreamWriter osw = new OutputStreamWriter(os);
      PrintWriter writer = new PrintWriter(osw);
     
      System.out.println("Dies ist ein Multithreading Client");
      System.out.println("----------------------------------");
      while (true) {
        System.out.println("haloo");
        if(!line.isEmpty()){
          writer.println(username+" : "+line);
          writer.flush();
          System.out.println("Client start if");
          warte();
        }else{
          System.out.println("Client start else");
          printMessages();
        }   
       
      } // end of while
     
     
     
     
     
     
    } catch(Exception e) {
     
    }// end of try
  }
 
  public void warte() {
    System.out.println("Client warte: " + aktiv);
    while (!aktiv) {
     
    } // end of while
    start();
  }
 
 
  private void printMessages(){
    if(messageBuffer.isEmpty()){
      System.out.println("Keine Neue Nachrichten");
    }
    for (String message : messageBuffer ) {
      //Wenn eigene Nachrichten nicht ausgegeben werden sollen
      if (!message.startsWith(username+" : ")) {
        System.out.println(message);
      } // end of if
      //Wenn jede Nachricht ausgegeben werden soll
      //System.out.println(message);
    } // end of for
    messageBuffer.clear(); 
    System.out.println("----------------------------------");
    warte();
  }
 
  private class Reader implements Runnable{
    Socket s;
    public Reader(Socket s){
      this.s=s;
    }
   
    public void run(){
      try {
        InputStream is = s.getInputStream();
        InputStreamReader isr = new InputStreamReader(is);
        BufferedReader reader = new BufferedReader(isr);
        String line;
        while (true) {
          line = reader.readLine();
          if (!line.isEmpty()) {
            messageBuffer.add(line);
          } // end of if
        } // end of while
      } catch(Exception e) {
       
      }
    }
  } // end of class MultithreadedServer
} // end of class MultithreadedClient

import java.net.*;
import java.util.*;
import java.io.*;

public class Server {
  ArrayList<Socket> sockets = new ArrayList<Socket>();
  int port = 10000;
 
 
 
 
  public static void main(String[] args) {
    Server server = new Server();
    server.start();
   
   
  } // end of main
 
  private void start() {
    try {
      System.out.println("multithreaded Server:");
      ServerSocket sServer = new ServerSocket(port);
      while (true) {
        System.out.println("Warte auf Client-Anfrage");
        Socket s = sServer.accept();
        sockets.add(s);
       
        Thread t = new Thread(new Reader(s));
        t.start();
      } // end of while
    } catch(Exception e) {
      System.out.println("1. Fehler: " + e);
    } // end of try
  }
 
 
 
  private class Reader implements Runnable {
    Socket s;
    public Reader(Socket s) {
      this.s = s;
    }
   
    public void run() {
      try {
        InputStream is = s.getInputStream();
        InputStreamReader isr = new InputStreamReader(is);
        BufferedReader br = new BufferedReader(isr);
        String line;
        while (true) {
          line = br.readLine();
          if (!line.isEmpty()) {
            System.out.println(line);
            writeToAll(line);
          } // end of if
        } // end of while
      } catch(Exception e) {
       
      } // end of try
    }
  }
 
 
  private void writeToAll (String line) {
    for (Socket s : sockets) {
      try {
        OutputStream os = s.getOutputStream();
        OutputStreamWriter osw = new OutputStreamWriter(os);
        PrintWriter writer = new PrintWriter(osw);
        writer.println(line);
        writer.flush();
      } catch(Exception ex) {
        System.out.println("2. Fehler: " + ex);
      } // end of try
    } // end of for
  }
 
 
} // end of class Sever
17. Dezember 2016, 19:22:29 von Quentio | Views: 379 | Comments: 0

Hey Leute,
Ich habe ein Programm basierend auf Brotcrunshers Spiele-Programmierungs-Playlist geschrieben und habe kleine Ruckler bei der Bewegung des Spielers. Selbst mit dem original Quellcode von Brotcrunsher sind diese zu sehen. Sie werden besser wenn ich die fps höher und die Spielerbewegung niedriger einstelle.
Weiß jemand woran das Problem liegen könnte bzw. treten diese Ruckler bei allen auf ?

Vielen Dank schonmal für eventuelle Antworten.

MfG Quentio
29. November 2016, 22:37:37 von Bryan_Kro | Views: 603 | Comments: 3

Hallo ich habe da mal eine Frage und zwar wie kann ich die Eingabe von Dingen verhindern z.B. das der user des Programms später keine Buchstaben eintippen kann und wie schaffe ich es das wenn das Ergebnis angezeigt wird das dann der Vorgang von vorne anfängt oder gehen diese Sachen nicht mit Java?°°
Vielen Dank im Voraus

import java.util.Scanner;

public class Scanversuche {
   public static void main(String args[]){
      long z,g,k,l,a,b,c,d;
      double v;
      Scanner s= new Scanner (System.in);
      System.out.println("Wilkommen!\nDies ist ein Taschenrechner!\nGebe bitte eine Zahl(max. 11 Ziffern!) ein:");
      z=s.nextInt();
      System.out.println("Geben Sie nun bitte Ihre zweite Zahl ein:");
      g=s.nextInt();
      System.out.println("Gebe bitte einen Rechenoperator ein (+)=1||-)=2||(*)=3||(/)=4");
      k=s.nextInt();
      if (k==1){
         l=plus(z,g);
         System.out.println("Was denkst du ist die Lösung tippe es ein:");
         a=s.nextInt();
         if (a==l)
            System.out.println("Richtig die Antwort ist: "+l);
         else
            System.out.println("Schade, leider falsch, denn die Antwort ist: "+l);
      }else if (k==2){
         l=minus(z,g);
         System.out.println("Was denkst du ist die Lösung tippe es ein:");
         a=s.nextInt();
         if (a==l)
            System.out.println("Richtig die Antwort ist: "+l);
         else
            System.out.println("Schade, leider falsch, denn die Antwort ist: "+l);
      }else if (k==3){
         l=mal(z,g);
         System.out.println("Was denkst du ist die Lösung tippe es ein:");
         a=s.nextInt();
         if (a==l)
            System.out.println("Richtig die Antwort ist: "+l);
         else
            System.out.println("Schade, leider falsch, denn die Antwort ist: "+l);
      }else if (k==4){
         double h=geteilt(z,g);
         System.out.println("Was denkst du ist die Lösung tippe es ein:");
         v=s.nextDouble();
         if (v==h)
            System.out.println("Richtig die Antwort ist: "+h);
         else
            System.out.println("Schade, leider falsch, denn die Antwort ist: "+h);
      }else{
         System.out.println("Error!!\nBitte starten sie das Programm neu.\nSchönen Tag!");
      }}   
      private static long plus(long a,long b){
         long l;
         l=a+b;
         return l;
      }private static long mal(long a,long b){
         long l;
         l=a*b;
         return l;
      }private static long minus(long a,long b){
         long l;
         l=a-b;
         return l;
      }private static double geteilt(double a,double b){
         double k;
         k=a/b;
         return k;}
}
Pages: [1]

* Neue Beiträge

* Java Shoutbox

Sorry, this shoutbox does not exist.

* Links

* Neue Beiträge

Re: kein, oder nur manchmal Text im Fenster von MaMa0909
[Gestern um 16:13:31]


Re: [MAP] Grand City - Moandco von Conans
[Gestern um 08:48:49]


Re: Rückgängig von Conans
[Gestern um 08:48:06]


Re: kein, oder nur manchmal Text im Fenster von MaMa0909
[21. Mai 2017, 20:57:42]


Re: kein, oder nur manchmal Text im Fenster von TheFail
[21. Mai 2017, 03:10:29]

* Kalender

Mai 2017
So Mo Di Mi Do Fr Sa
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 [23] 24 25 26 27
28 29 30 31

No calendar events were found.

* Forensuche