PingPong-the Game by Developer-X

Wer glaubt mir dass ich dieses Spiel selbst geschrieben habe?

  • Ich glaube es

    Stimmen: 7 12,7%
  • Ich glaube es nicht

    Stimmen: 12 21,8%
  • Mir egal.

    Stimmen: 36 65,5%

  • Anzahl der Umfrageteilnehmer
    55
Status
Nicht offen für weitere Antworten.

Developer_X

Top Contributor
Hi, ich habe jetzt das Ping Pong Spiel fertig.
Bitte schauts euch an, und sagt mir eure meinung,
Developer_X
 
Zuletzt bearbeitet:

diggaa1984

Top Contributor
ne Möglichkeit das Spiel zu beenden wär gut .. hab aus Verzweiflung Alt+F4 genommen.
Dann eine sinvolle Eingrenzung des Radius vom Ball vornehmen. Ich wusste nich was die Zahl bedeuten würde .. und ich denke das man schon einen gewissen Bereich wahren sollte. Wird dieser unterschritte bei der Eingabe einfach aufs Minimum setzen, analog beim Maximum. Nen 1 Pixel grosser Ball macht kein Sinn. Die Linien sind eher irritierend.

Bei der Geschwindigkeitsangabe fehlt auch eine Art Hinweis oder ne Art Vorstellung wie schnell irgendwas ist .. ich habe 4 gewählt .. was passiert bei 40? :D

aso ist das 2-spieler oder Mensch vs. CPU?
 

Developer_X

Top Contributor
ne Möglichkeit das Spiel zu beenden wär gut .. hab aus Verzweiflung Alt+F4 genommen.
Dann eine sinvolle Eingrenzung des Radius vom Ball vornehmen. Ich wusste nich was die Zahl bedeuten würde .. und ich denke das man schon einen gewissen Bereich wahren sollte. Wird dieser unterschritte bei der Eingabe einfach aufs Minimum setzen, analog beim Maximum. Nen 1 Pixel grosser Ball macht kein Sinn. Die Linien sind eher irritierend.

Bei der Geschwindigkeitsangabe fehlt auch eine Art Hinweis oder ne Art Vorstellung wie schnell irgendwas ist .. ich habe 4 gewählt .. was passiert bei 40? :D

aso ist das 2-spieler oder Mensch vs. CPU?

das spiel endet mit der aufschrift "X hat gewonen."
dann nach 5 sekunden schließt sich das fenster.

hast du eigentlich schon bemerkt dass man das Spiel pausieren kann?

Ja Mensch vs KI

Aber ich finde die Linien sind nicht iritierend, ist ja halt ansichtssache.

Devloper_X

und was sagen die anderen so dazu?
 

ARadauer

Top Contributor
Willst du jetzt Lorberen für ein Spiel das 75% aller Programmierer in der Schule schon mal geschrieben haben?
 
S

Spacerat

Gast
... Was bitte ist an dem "Game" fertig? Ich würde das kaum als Spiel bezeichnen, sondern eher als Übung. Und doch, die Linien sind nicht nur irritierend, sie können auch ganz schön Aua tun. Da fehlt eindeutig 'ne Epilepsie-Warnung! Und auch wenn die Linien nicht da wären, die Warnung ist afaik bei kontrastreichen Spielen mit schnell bewegten Bildern immerhin Pflicht.
 

Developer_X

Top Contributor
ich habe eine modifiziertere Version geschrieben,
inder ihr mehr informationen bez. ges Spiel angeben müsst, viel Spaß,
Developer_X
 

Developer_X

Top Contributor
Geht bei mir nicht

entschuldige, aber weißt du wie man das startet?
Also:
1.Schritt: Extrahiere alle dateien im zip
2.Schritt: Wenn du die Umgebunsvariablen gesetzt hast,
dann gehe mit der eingabeaufforderung in den ordner ( mit cd und so)
3.Schritt: starte die klassdatei Ping.class mit der eingabe:
java Ping.class


so viel dazu developer_X
 

Opnox

Mitglied
Also das Spiel ist ja ziemlich unspielbar.

Die "KI" bewegt sich zu langsam und die Kollisionsabfragen funktionieren nicht richtig. Selbst wenn der Ball direkt an meinen Schläger kommt und abprallt, bekommt der Gegner häufig Punkte dafür. Ich bekomm hingegen manchmal keine Punkte, obwohl ich Punkte bekommen sollte.

Dann hat der Ball ein größeres Spielfeld indem er sich befinden kann, als der Schläger. Wenn der Ball ganz unten ist, komm ich mit dem Schläger ums verrecken nicht hin. Aber zum Glück gibts dafür auch keine Punkte...

Je nach Spielgeschwindigkeit macht die KI entweder nichts oder bewegt sich einfach leicht hoch und runter, ohne wirklich erkennbarem System.

Die Linien halte ich für extrem störend.

Edit:
Auch das Spielfeld ist immer verschieden groß und je nach Werten kann ich meinen Schläger sogar aus dem Bildschirm hinausbewegen.
 
Zuletzt bearbeitet:

Schandro

Top Contributor
1.Schritt: Extrahiere alle dateien im zip
2.Schritt: Wenn du die Umgebunsvariablen gesetzt hast,
dann gehe mit der eingabeaufforderung in den ordner ( mit cd und so)
3.Schritt: starte die klassdatei Ping.class mit der eingabe:
java Ping.class
Hast du keine .jar gemacht? :autsch:

Was für ne IDE/Editor benutzt du eigentlich?
 

Developer_X

Top Contributor
Also das Spiel ist ja ziemlich unspielbar.

Die "KI" bewegt sich zu langsam und die Kollisionsabfragen funktionieren nicht richtig. Selbst wenn der Ball direkt an meinen Schläger kommt und abprallt, bekommt der Gegner häufig Punkte dafür. Ich bekomm hingegen manchmal keine Punkte, obwohl ich Punkte bekommen sollte.

Dann hat der Ball ein größeres Spielfeld indem er sich befinden kann, als der Schläger. Wenn der Ball ganz unten ist, komm ich mit dem Schläger ums verrecken nicht hin. Aber zum Glück gibts dafür auch keine Punkte...

Je nach Spielgeschwindigkeit macht die KI entweder nichts oder bewegt sich einfach leicht hoch und runter, ohne wirklich erkennbarem System.

Die Linien halte ich für extrem störend.


teste die neuere Version, die ist im zweiten Anhang hier
 

experto2000

Aktives Mitglied
entschuldige, aber weißt du wie man das startet?
Also:
1.Schritt: Extrahiere alle dateien im zip
2.Schritt: Wenn du die Umgebunsvariablen gesetzt hast,
dann gehe mit der eingabeaufforderung in den ordner ( mit cd und so)
3.Schritt: starte die klassdatei Ping.class mit der eingabe:
java Ping.class


so viel dazu developer_X
Ja weiß ich aber geht immer noch nicht Fehler:
Code:
Exception in thread "main" java.lang.NoClassDefFoundError: Ping (wrong name: Pong/Ping)
        at java.lang.ClassLoader.defineClass1(Native Method)                           
        at java.lang.ClassLoader.defineClass(ClassLoader.java:637)                     
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)     
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)                
        at java.net.URLClassLoader.access$000(URLClassLoader.java:73)                  
        at java.net.URLClassLoader$1.run(URLClassLoader.java:212)                      
        at java.security.AccessController.doPrivileged(Native Method)                  
        at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:323)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:268)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:336)
Could not find the main class: Ping. Program will exit.
 

Developer_X

Top Contributor
Ja weiß ich aber geht immer noch nicht Fehler:
Code:
Exception in thread "main" java.lang.NoClassDefFoundError: Ping (wrong name: Pong/Ping)
        at java.lang.ClassLoader.defineClass1(Native Method)                           
        at java.lang.ClassLoader.defineClass(ClassLoader.java:637)                     
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)     
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)                
        at java.net.URLClassLoader.access$000(URLClassLoader.java:73)                  
        at java.net.URLClassLoader$1.run(URLClassLoader.java:212)                      
        at java.security.AccessController.doPrivileged(Native Method)                  
        at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:323)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:268)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:336)
Could not find the main class: Ping. Program will exit.


hey, warst du mit der cmd auch in dem ordner und allem drumund dran, ?
dann kann ich mris auch nicht erklären, bei den anderen hats funktioniert,
ich geb dir folgenden tipp:
geh in den ordner source
und tiefen, bis zur klasse "Ping.java"
die kompilirst du dann mit
javac Ping.java
und starte sie dann mit
java Ping

Developer-X
 

experto2000

Aktives Mitglied
hey, warst du mit der cmd auch in dem ordner und allem drumund dran, ?
dann kann ich mris auch nicht erklären, bei den anderen hats funktioniert,
ich geb dir folgenden tipp:
geh in den ordner source
und tiefen, bis zur klasse "Ping.java"
die kompilirst du dann mit
javac Ping.java
und starte sie dann mit
java Ping

Developer-X

mach ich doch
Vllt. haben die nicht Version 1.6.0
 

Zipp

Mitglied
Das liegt daran, dass er die Datei Ping im Package Pong nicht findet.
Alternativ kannst du die erste Zeile "package Pong;" aus der Datei Ping.java löschen. Dann kompilieren und starten.
 

Developer_X

Top Contributor
hey, ich habe das spiel weiter modifiziert, mit der kollisions erkennung, hier:

das einzige restliche Problem :
der KI kriegt ganz selten bis nie einen Punkt, das werde ich noch beheben,
 

Developer_X

Top Contributor
ich kriege die letzt kleine lösung nicht hin, das Problem liegt hier:
Java:
		if(left)
		{
			ball_x=ball_x+(move)/3;

			if((ball_x>=d.width-d.width/5-20)&&(ball_y<=player_height&&ball_y>=player_height+(d.height/5))==false)
			{
				Player_lost();
			}
			
			if((ball_x>=d.width-d.width/5-20))
			{				
				righ = true;
				left = false;
			}	
		}
oder genauer hier:
Java:
			if((ball_x>=d.width-d.width/5-20)&&(ball_y<=player_height&&ball_y>=player_height+(d.height/5))==false)
			{
				Player_lost();
			}
kann mir einer helfen sie zu korrigieren??
Nur Tipps, vorerst bitte.

Danke für eure Hilfe Developer_X
 

mr-gurke

Mitglied
Benutze doch mal ein paar Leerzeichen und bau ein paar Zeilenumbrüche ein.
Oft hilft es auch mehrere If Bedinungen zu schachteln um das Ganze übersichtlicher zu halten.
Wenn du dann deine Variablen, wie in Java üblich, nicht mit Unterstrichen benennst, sondern ballX, playerHeight schreibst, wird das Ganze viel übersichtlicher.
Aber das scheint dir ja zu einfach zu sein, ich bin ja nicht der Erste, der dir das sagt.

Java:
if((ballX >= d.width - d.width / 5-20)){
   if(!(ballY<= playerHeight && ballY >= playerHeight + (d.height/5)))
      {
         PlayerLost();
      }
}
Wo genau dein Fehler liegt keine Ahnung, aber
schau mal Zeile 1 an: Java beherrscht Punkt vor Strich, es wird also gerechnet:
d.width / 5
davon wird 20 abgezogen
das wird von d.width abgezogen
Willst du das so?

Den Vergleich auf == false, den du drin hattest kannst du dir auch sparen, ! ist ein Operator, der eine Bedingung verneint.
Java:
if(devXsollteMehrAPILesen == false)
ist das selbe wie:
Java:
if(!devXSollteMehrAPILesen)
nur dass das 2. besser lesbar ist.
 

Developer_X

Top Contributor
Benutze doch mal ein paar Leerzeichen und bau ein paar Zeilenumbrüche ein.
Oft hilft es auch mehrere If Bedinungen zu schachteln um das Ganze übersichtlicher zu halten.
Wenn du dann deine Variablen, wie in Java üblich, nicht mit Unterstrichen benennst, sondern ballX, playerHeight schreibst, wird das Ganze viel übersichtlicher.
Aber das scheint dir ja zu einfach zu sein, ich bin ja nicht der Erste, der dir das sagt.

Java:
if((ballX >= d.width - d.width / 5-20)){
   if(!(ballY<= playerHeight && ballY >= playerHeight + (d.height/5)))
      {
         PlayerLost();
      }
}
Wo genau dein Fehler liegt keine Ahnung, aber
schau mal Zeile 1 an: Java beherrscht Punkt vor Strich, es wird also gerechnet:
d.width / 5
davon wird 20 abgezogen
das wird von d.width abgezogen
Willst du das so?

Den Vergleich auf == false, den du drin hattest kannst du dir auch sparen, ! ist ein Operator, der eine Bedingung verneint.
Java:
if(devXsollteMehrAPILesen == false)
ist das selbe wie:
Java:
if(!devXSollteMehrAPILesen)
nur dass das 2. besser lesbar ist.

danke, ich probiers mal so, und ja das wollte ich so rechnen, danke ich meld mich später noch mal, Devleoper-X
 

mr-gurke

Mitglied
Stimmt, in diesem Fall macht das ! hinten dran mehr Sinn, vermutlich würde der Complier von DevX das inzwischen auch nicht mehr anmäkeln :D
 

Developer_X

Top Contributor
also schaut mal alle her, hier noch mal der knackpunkt mit seinem unter ihm liegenden, funktionierenden Nachbarn:
Java:
		if(left)
		{
			ball_x=ball_x+(move)/3;
			
			if((ball_x>=d.width-d.width/5-20))
			{				
				if(ball_y>=player_height&&ball_y<=player_height+(d.height/5))
				{
					Player_lost();
				}
				
				righ = true;
				left = false;
			}	
		}
		if(righ)
		{
			ball_x=ball_x-(move)/3;

			if(ball_x<=d.width/5+20)
			{				
				if(ball_y>=ki_height&&ball_y<=ki_height+(d.height/5))
				{
					KI_lost();
				}
				
				left = true;
				righ = false;		
			}
		}

Seht ihr?
oben und unten sind genau gleich es geht nur einmal um die höhe des KIs und einmal um die höhe des Players, ich sehe keinen erkenntlichen grund, was hierdran falsch läuft, trotzdem klappt es nicht, wieso?

Es geht darum:

man hat ja den balken der wird so gemalt:

Code:
ki_height/player_height
|
|
|
|
" " / " " + d.height/5

ich frage also folgendes ab:
Java:
ball_y>=ki_height&&ball_y<=ki_height+(d.height/5)

wenn die Y_Position des balles größer ist als die Y_Position des KI_s aber kleiner als die des KI_endpunktes
dann soll KI_verlieren,
funktioniert auch beim KI

aber beim player nicht, warum?


Developer_X
 

Developer_X

Top Contributor
okay also:
Java:
if(ball_y<=player_height&&ball_y>=player_height+(d.height/5))

würde niemals eintreffen.
Warum?:
Weil : der der Ball gleichzeitig über und unter dem Balken liegen müsste.


Ich hatte mal in der ganzen Zeit verschiedene Sachen ausprobiert, hat aber nie geklappt:
Java:
if(ball_y<=player_height||ball_y>=player_height+(d.height/5))

Da ist es nicht mehr und sondern oder.
Warum habe ich das gemacht: ganz einfach weil ein ball ja, wenn er unter dem balken ist, oder über dem balken niemals auf dem balken sein kann, die Technik wandte ich auch beim KI an.

Mal wieder wurden nur mir Punkte zugewiesen, wenn der KI Fehler machte, aber wenn ich Fehler machte, wurden dem KI nie Punkte gegebn.

Also, ich stehe am selben punkt wie über diesem Thread.

Ich weiß nicht mehr weiter, das ergibt alles keinen Sinn, kann mir bitte einer helfen?

Developer_X
 

Noctarius

Top Contributor
Wie wäre es an dieser Stelle abzubrechen und erstmal bei den Grundlagen weiterzumachen. Immerhin siehst du ja selbst, dass dir grad die Grundlagen fehlen.
 

diggaa1984

Top Contributor
wenn du schonmal dabei bist divese Fehler zu sucen und dergleichen würde ich dir gleich empfehlen konstrukte wie:
Java:
d.width-d.width/5-20

welche ständig in den Bedingungen auftauchen vorher einmal zu berechnen, ich nehme stark an das sich d über die zeit nie ändert, das heisst einmal berechnen sobald d feststeht und dann nur auf den berechneten wert verweisen. Klar ist das der CPU scheinbar egal, weil schnell genug, dennoch sollte man sowas immer berücksichtigen, spart massig CPU-Arbeit ein, die bei komplexen programmen mal schnell zu viel sein könnte!
 

Developer_X

Top Contributor
wenn du schonmal dabei bist divese Fehler zu sucen und dergleichen würde ich dir gleich empfehlen konstrukte wie:
Java:
d.width-d.width/5-20

welche ständig in den Bedingungen auftauchen vorher einmal zu berechnen, ich nehme stark an das sich d über die zeit nie ändert, das heisst einmal berechnen sobald d feststeht und dann nur auf den berechneten wert verweisen. Klar ist das der CPU scheinbar egal, weil schnell genug, dennoch sollte man sowas immer berücksichtigen, spart massig CPU-Arbeit ein, die bei komplexen programmen mal schnell zu viel sein könnte!

okay werd ich ändern, aber was ist jetzt mit dem problem, was ist da falsch, ich sehe keinen fehler, nur beim spielen,
 

Der Müde Joe

Top Contributor
so als kleiner ansporn...(lang ists her und nie über Alpha gekommen)
(unter 100KB gekürzt und Du kannst nicht gewinnen!)

EDIT:
grad rausgefunden..mit recht links kann man ans Netz angreifen
 
Zuletzt bearbeitet:

Developer_X

Top Contributor
hey ich hab die lösung auch allein bekommen, hier der Code:
Java:
package Pong;

import java.awt.*;
import java.awt.event.*;
import java.util.Scanner;

import javax.swing.*;

@SuppressWarnings("serial")
public class Ping extends JFrame implements Runnable, KeyListener
{
	//Attribute
		//Dimension
		  Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
		  
	//Ping Pong Attribute
		  //Player
		  int player_points = 0;
		  int player_height = d.height/3;
		 
		  //KI
		  int ki_height     = d.height/3;
		  int ki_points     = 0;
		  static int ki_goodness = 0;
		 
		  //Ball
		  static int ball_radius   = 20;	  
		  int ball_x        = d.height/2;
		  int ball_y        = d.height/2;	  
		  
		  //max
		  static int max_y  = 50;
		  static int max_points = 20;
		 
		  //move
		  static int move = 10;
		  int count_move = 0;
		 
		  //info
		  String infoString = "";	 
		  
		  //player
		  static String player = "";
		
		  //boolean
		  boolean left = false;
		  boolean righ = true;
		  boolean up = false;
		  boolean down = true;
		  boolean able = true;
		  static boolean lines = false;

		  //thread
		  Thread thread;
		  
	//Constructor	  
	public Ping()
	{
		super("Ping Pong");
		setUndecorated(true);
		setSize(d);
		addKeyListener(this);
	
		thread = new Thread(this);
		thread.start();
		
		JPanel mainpanel = new JPanel()
		{
		public void paintComponent(final Graphics g)
		{
			g.setColor(Color.black);
			g.fillRect(0,0,d.width,d.height);
		
		//Draw Information
			g.setColor(Color.green);
			g.setFont(new Font("Times New Roman",3,40));
			g.drawString("Player : "+player_points+"/"+max_points,d.width/5,d.height-d.height/45);
			g.drawString("KI     : "+ki_points+"/"+max_points,    d.width/2,d.height-d.height/45);

		//Draw Arena
			g.drawRect(d.width/5-d.width/36,(int) (d.height/22.5),d.width/3+d.width/3,d.height/3+d.height/3+max_y+d.height/18);
		
		//Draw Enemys
			g.fillRoundRect(d.width/5,player_height,d.width/72,d.height/5,90,90);
			
			g.fillRoundRect(d.width-d.width/5,ki_height-50,d.width/72,d.height/5,90,90);

			if(lines)
			{
			g.drawLine(0,player_height,d.width,player_height);
			g.drawLine(0,player_height+d.height/5,d.width,player_height+d.height/5);
			g.drawLine(0,ki_height-50,d.width,ki_height-50);
			g.drawLine(0,ki_height-50+d.height/5,d.width,ki_height-50+d.height/5);
			}

		//Draw Ball
			g.setColor(Color.white);
			g.fillOval(ball_x,ball_y,ball_radius,ball_radius);
			
			if(lines)
			{
			g.drawLine(ball_x-ball_radius/2,0,ball_x-ball_radius/2,d.height);
			g.drawLine(ball_x+ball_radius,0,ball_x+ball_radius,d.height);
			g.drawLine(0,ball_y-ball_radius/2,d.width,ball_y-ball_radius/2);
			g.drawLine(0,ball_y+ball_radius,d.width,ball_y+ball_radius);
			}
			
			g.drawString(infoString,d.width/5,d.height/2);
		}
		};
		setLayout(null);
		mainpanel.setBounds(0,0,d.width,d.height);
		add(mainpanel);
		
		setVisible(true);
	}

	//Implemented Methods	
	//KeyListener
	public void keyPressed(KeyEvent arg0) 
	{		
		if(arg0.getKeyCode()==KeyEvent.VK_UP)
		{
			if(count_move>=-max_y)
			{
				player_height=player_height-move;
				count_move--;
			}
		}
		if(arg0.getKeyCode()==KeyEvent.VK_DOWN)
		{
			if(count_move<=max_y)
			{
				player_height=player_height+move;
				count_move++;
			}
		}
		if(arg0.getKeyCode()==KeyEvent.VK_SPACE)
		{
			if(able)
			{
				able = false;
				infoString = "Please Press Space to continue.";
			}
			else
			{
				able = true;
				infoString = "";
			}
		}
		invalidate();
		repaint();
	}
	public void keyReleased(KeyEvent arg0) 
	{		
	}
	public void keyTyped(KeyEvent arg0)
	{		
	}
	
	//Runnable	
	@Override
	public void run() 
	{	
		try 
		{
			Thread.sleep(2000);
		}
		catch (InterruptedException e1) 
		{
			e1.printStackTrace();
		}
		while(true)
		{	
		if(able)
		{
		if(player_points==max_points)
		{
			infoString = player+" hat das Spiel gewonnen.";
			able = false;
			try 
			{
				Thread.sleep(3000);
			}
			catch (InterruptedException e1) 
			{
				e1.printStackTrace();
			}
			setVisible(false);
			System.exit(0);
		}
		if(ki_points==max_points)
		{
			infoString = "KI hat das Spiel gewonnen.";
			able = false;
			try 
			{
				Thread.sleep(3000);
			}
			catch (InterruptedException e1) 
			{
				e1.printStackTrace();
			}
			setVisible(false);
			System.exit(0);
		}
		if(left)
		{
			ball_x=ball_x+(move)/3;
			
			if((ball_x>=d.width-d.width/5-20)&&(ball_y>=player_height&&ball_y<=player_height+(d.height/5)))
			{		
				righ = true;
				left = false;
			}
			
			if(ball_x>=d.width)
			{
				KI_lost();				
				righ = true;
				left = false;
			}
			
		}
		if(righ)
		{
			ball_x=ball_x-(move)/3;

			if(ball_x<=d.width/5+20&&(ball_y>=ki_height&&ball_y<=ki_height+(d.height/5)))
			{				
				left = true;
				righ = false;	
			}
			
			if(ball_x<=0)
			{				
				Player_lost();
				left = true;
				righ = false;	
			}
		}
		if(up)
		{
			ball_y=ball_y-(move)/3;
			if(ball_y<=(int) (d.height/22.5))
			{
				up = false;
				down = true;
			}
		}
		if(down)
		{
			ball_y=ball_y+(move)/3;
			if(ball_y>=(int) (d.height/22.5)+(d.height/3+d.height/3+max_y+d.height/18))
			{
				down = false;
				up = true;
			}
		}
		try
		{
			Thread.sleep(10);
		}
		catch(Exception e)
		{
			e.printStackTrace();
		}
		
		invalidate();
		repaint();	
		Move_KI();
		}
		else
		{
		}
		}
	}
	
	//Methods	
	//lost Methods
	
	@SuppressWarnings("static-access")
	public void Player_lost()
	{
		ki_points++;		
		Toolkit.getDefaultToolkit().beep();	
		
		ball_x = d.width/2;
		try 
		{
			thread.sleep(2000);
		} 
		catch (InterruptedException e) 
		{
			e.printStackTrace();
		}
	}
	@SuppressWarnings("static-access")
	public void KI_lost()
	{
		player_points++;	
		Toolkit.getDefaultToolkit().beep();	
	
		ball_x = d.width/2;
		try 
		{
			thread.sleep(2000);
		} 
		catch (InterruptedException e) 
		{
			e.printStackTrace();
		}
	}
	
	//move Method
	public void Move_KI()
	{
		if(ball_y<=ki_height)
		{
			ki_height = ki_height-move/ki_goodness;
		}
		else if(ball_y>=ki_height)
		{
			ki_height = ki_height+move/ki_goodness;
		}
	}
	
	//start Method
	public static void start()
	{
		Scanner sc = new Scanner(System.in);
		// First Step
			System.out.println("Ping Pong");
			System.out.println(" Please Enter your name : ");
			player = sc.next();
		// Second Step	
			do
			{
				System.out.println(" Please Enter Radius of ball : ");
				sc = new Scanner(System.in);
			}
			while(!sc.hasNextInt());
			ball_radius = sc.nextInt();
		// Third Step
			do
			{
				System.out.println(" Please Enter Speed of the game : ");
				sc = new Scanner(System.in);
			}
			while(!sc.hasNextInt());
			move = sc.nextInt();
			max_y = move*5;
		// Fourth Step
			do
			{
				System.out.println(" Please Enter Max. Point of the game : ");
				sc = new Scanner(System.in);
			}
			while(!sc.hasNextInt());
			max_points = sc.nextInt();
		// Fourth Step
			do
			{
				System.out.println(" Please Enter the KI_Hardness (scala 1 is best) : ");
				sc = new Scanner(System.in);
			}
			while(!sc.hasNextInt());
			ki_goodness = sc.nextInt();
		// Fourth Step
			do
			{
				System.out.println(" Please Enter 'true' for stripes or 'false' against stripes : ");
				sc = new Scanner(System.in);
			}
			while(!sc.hasNextBoolean());
			lines = sc.nextBoolean();
		// Last Step
			System.out.println("To continue enter 'ENTER'");
			System.out.println("!Attention!: To break the Game, press Space");
			
			sc.next();
		//Fifth Step
			Ping p = new Ping();
			p.setVisible(true);
	}

	//main
	public static void main(String[]args)
	{
		start();
	}

}
 

Developer_X

Top Contributor
so als kleiner ansporn...(lang ists her und nie über Alpha gekommen)
(unter 100KB gekürzt und Du kannst nicht gewinnen!)

EDIT:
grad rausgefunden..mit recht links kann man ans Netz angreifen

heye Joe du musst mal überlegen, will der SPieler einen unbesiegbaren KI oder will er einen KI dessen schwierigkeits grad er einstellen kann?
das zweite will er bestimmt mehr, und das habe ich auch ohne Hilfe,
trotzdem danke für eure Beihilfen, und den Tipps,

Developer_X

PS:
YES! ich habs endlich geschafft ein PingPong Spiel zu programmiern-
 
S

Spacerat

Gast
@Der müde Joe: ... na da bin ich ja mal auf 'ne reaktion gespannt. Glaub' kaum das DX den noch kennt.
 

eRaaaa

Top Contributor
also ich finde ja deine menüführung geil =) ich musste das spiel ca. 3-4 mal neustarten bis ich einstellungen gefunden habe, die einigemraßen spielbar sind :D (solltest mal min, max-werte vereinbaren und diese vllt dme user anzeigen ^^)

und wieso MUSS ich wenn da steht: to continue ENTER vorher noch was anderes eingeben? :)
hat mich auch verwirrt, hätte ich direkt danach nicht hier im forum gelesne dass ich vorher noch nen anderes zeichen eintippsern muss, hätte ich direkt eclipse wieder geschloßen :D
 

Developer_X

Top Contributor
also ich finde ja deine menüführung geil =) ich musste das spiel ca. 3-4 mal neustarten bis ich einstellungen gefunden habe, die einigemraßen spielbar sind :D (solltest mal min, max-werte vereinbaren und diese vllt dme user anzeigen ^^)

und wieso MUSS ich wenn da steht: to continue ENTER vorher noch was anderes eingeben? :)
hat mich auch verwirrt, hätte ich direkt danach nicht hier im forum gelesne dass ich vorher noch nen anderes zeichen eintippsern muss, hätte ich direkt eclipse wieder geschloßen :D

gut, ich werde dem Benutzter dann immer die empfohlenen Max und Min Werte geben, okay,

GUI kommt auch noch rein,
 
Zuletzt bearbeitet:

andre111

Bekanntes Mitglied
Naja, es stand dran
Code:
to continue enter ENTER
also man soll ENTER eingeben :autsch:
 

Developer_X

Top Contributor
hört sich vielleicht seltsam an, aber funktioniert der KI noch bei euch, und das mit der Kollisionserkennung, gestern abend funktionierte alles perfekt,
heut morgen will ichs spielen, und die Kollisionserkennung funktioniert nicht mehr,
dann hab ich den Code den ich hier präsentierte genau angesehen, und mit meinem verglichen,

geht der bei euch noch?

Warum klappt er denn heute morgen nicht mehr bei mir?!":autsch:
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Space PingPong Game --> Performance ok? Spiele- und Multimedia-Programmierung 44
N Snake3D,Minesweeper,PingPong Spiele- und Multimedia-Programmierung 12
U2nt Pingpong: Richtung/Winkel Spiele- und Multimedia-Programmierung 3
P PingPong Spiel - Kollision Spiele- und Multimedia-Programmierung 2
H PingPong HILFE !!! Spiele- und Multimedia-Programmierung 3
T PingPong 3D Spiele- und Multimedia-Programmierung 31
R PingPong Java Spiele- und Multimedia-Programmierung 1
L Spider game, Ist es verloren? Spiele- und Multimedia-Programmierung 4
J SNAKE-GAME-LOOP / (Applet zu Application) Spiele- und Multimedia-Programmierung 4
P Snake Game Verbessern Spiele- und Multimedia-Programmierung 15
E Organisation für Game Spiele- und Multimedia-Programmierung 1
G [Game-Multiplayer] Welt vom Server zum Client senden. Spiele- und Multimedia-Programmierung 0
C 3d Game Engine : PERFORMANTE Räumliche Verdeckung Spiele- und Multimedia-Programmierung 5
R Durch String Platform Game erstellen Spiele- und Multimedia-Programmierung 8
G Component System Java 2D Game LibGDX Spiele- und Multimedia-Programmierung 6
G Collision Detection in einem 2D Sandbox Game. Spiele- und Multimedia-Programmierung 2
J Problem mit Game Of Life Spiele- und Multimedia-Programmierung 3
B "Snake"-Game Logikfehler Spiele- und Multimedia-Programmierung 1
R Game Loop verhält sich eigenartig Spiele- und Multimedia-Programmierung 1
H Game Crash Spiele- und Multimedia-Programmierung 7
B Game of Life: Was mache ich falsch? Spiele- und Multimedia-Programmierung 3
$ Einstieg in Java Game Development Spiele- und Multimedia-Programmierung 11
BraunBerry Java Game Pixel "einfärben" Spiele- und Multimedia-Programmierung 6
BraunBerry Java Game verbesserte Kollisionserkennung Spiele- und Multimedia-Programmierung 18
BraunBerry Java Game Waypoint System Spiele- und Multimedia-Programmierung 3
T Moddable Game Spiele- und Multimedia-Programmierung 6
P java lwjgl Game Spiele- und Multimedia-Programmierung 0
T Game-Rendering Spiele- und Multimedia-Programmierung 5
I 2D-Side-Scrolling-Game in Chunks splitten Spiele- und Multimedia-Programmierung 9
Z 2D Pixer art RPG Game - Alpha auf Indie DB spielbar Spiele- und Multimedia-Programmierung 0
F Game of Life Spiele- und Multimedia-Programmierung 1
S Game/Cheat Spiele- und Multimedia-Programmierung 20
wolfgang63 Mit JavaFX einfaches Game programmieren Spiele- und Multimedia-Programmierung 5
D Textfield im Game ,Problem: while-Schleife Spiele- und Multimedia-Programmierung 3
O Pause Menu im 2D Game, bitte um Rat! Spiele- und Multimedia-Programmierung 4
J Java Game performance Probleme Spiele- und Multimedia-Programmierung 7
K Online Game? Spiele- und Multimedia-Programmierung 1
R Game Loop scheitert.. Spiele- und Multimedia-Programmierung 2
Androbin Verschwindender Spieler in 2D-Game Spiele- und Multimedia-Programmierung 7
Sogomn Game Loop Spiele- und Multimedia-Programmierung 2
M Jump 'n' Run Game - Blöcke? Spiele- und Multimedia-Programmierung 7
J Verständnissfragen zur Game-Loop Spiele- und Multimedia-Programmierung 2
N Game GUI Programmieren Spiele- und Multimedia-Programmierung 16
Black_ixx ManaWar Action Game Spiele- und Multimedia-Programmierung 5
M Multiplayer-Game auf Website Spiele- und Multimedia-Programmierung 2
M Multiplayer Game mit Frontend auf HTML5 - ohne ständigen Client Request - Möglich?! Spiele- und Multimedia-Programmierung 12
P Mein Android Game Spiele- und Multimedia-Programmierung 3
N Animationen für ein 2D game Spiele- und Multimedia-Programmierung 6
S Problem mit Zeitsteuerung der Game Loop Spiele- und Multimedia-Programmierung 4
Kenan89 Kleines Game Spiele- und Multimedia-Programmierung 26
M Vektor Game Spiele- und Multimedia-Programmierung 13
F Bot updaten von einem Browser game Spiele- und Multimedia-Programmierung 7
Samake03 [Game]"Plumbo - Lost in Depth" Preview und Fragen Spiele- und Multimedia-Programmierung 18
K Game Engine für selbstprogrammiertes Spiel Spiele- und Multimedia-Programmierung 27
A Music für Android game Spiele- und Multimedia-Programmierung 3
A Wie wird die Person im Game animiert, dass sie ihre Körperteile bewegen? Spiele- und Multimedia-Programmierung 3
K 3D Game wie Minecraft Spiele- und Multimedia-Programmierung 3
T Torquemada´s erstes Game (Pong) Spiele- und Multimedia-Programmierung 5
X Möglichst komplette 2D Game Engine? Spiele- und Multimedia-Programmierung 12
Kr0e Red Dwarf Game Server Spiele- und Multimedia-Programmierung 5
M Euer erstes Game Spiele- und Multimedia-Programmierung 16
M Netzwerk-Game mit UDP Spiele- und Multimedia-Programmierung 8
ruerob Eure Meinung über Applet-game Spiele- und Multimedia-Programmierung 12
J das erste Game Spiele- und Multimedia-Programmierung 2
M Einen Hobby Game - / Grafik Designer zu finden (Screenshot vom Spiel) Spiele- und Multimedia-Programmierung 7
S Game Client für kleine Competition Spiele- und Multimedia-Programmierung 3
J 2D-Game-Engine? Spiele- und Multimedia-Programmierung 2
F Game mit LWJGL/JOGL in executable JAR packen, wie? Spiele- und Multimedia-Programmierung 6
P 2D Game - Alternative zur TileMap? Spiele- und Multimedia-Programmierung 2
W Memory Game Spiele- und Multimedia-Programmierung 4
Steev EGE - Easy Game Engine Spiele- und Multimedia-Programmierung 2
Developer_X X-Shooter Game Spiele- und Multimedia-Programmierung 21
C 2D Multiplayer Game Spiele- und Multimedia-Programmierung 5
O Mein erstes Game Spiele- und Multimedia-Programmierung 10
K My First Game "ORB" vielen Dank Quaxli Spiele- und Multimedia-Programmierung 23
hdi Das java-forum.org 2D-Game Projekt/Tutorial Spiele- und Multimedia-Programmierung 6
hdi Quiclix : Game download Spiele- und Multimedia-Programmierung 5
A Java 2D Game Spiele- und Multimedia-Programmierung 4
K Game-Tutorial von Quaxli Fragen Spiele- und Multimedia-Programmierung 18
G Suche passende Game api Spiele- und Multimedia-Programmierung 9
K Java Game Programming Buch Spiele- und Multimedia-Programmierung 3
C Hilfe bei einfachen Game Spiele- und Multimedia-Programmierung 15
L Kleines RTS Game -> Netzwerkproblem Spiele- und Multimedia-Programmierung 5
P Suche Leute für ein Hobby-Projekt (Browser Game) Spiele- und Multimedia-Programmierung 4
Q online game programieren Spiele- und Multimedia-Programmierung 8
G Welche Game Api Spiele- und Multimedia-Programmierung 9
S 3d applet - online game Spiele- und Multimedia-Programmierung 4
C Open-Source Game Spiele- und Multimedia-Programmierung 2
sparrow 3D-Game-Engine Spiele- und Multimedia-Programmierung 20
J Isometric Tile Game (x,y) inklusive Z cordinaten? Spiele- und Multimedia-Programmierung 2
M Java online multiplayer game Spiele- und Multimedia-Programmierung 2
J java netzwerk strategie game programmiert Spiele- und Multimedia-Programmierung 4
D Jump and Run Game -- Kollisionsabfrage Spiele- und Multimedia-Programmierung 30
B Snake-Game fürs Handy Spiele- und Multimedia-Programmierung 3
F Online Game mit Java? Spiele- und Multimedia-Programmierung 11
R 2D Game Oberfläche. Wie am besten? Spiele- und Multimedia-Programmierung 2
H LWJGL - Lightweight Java Game Library! Ist Java3D jetzt out? Spiele- und Multimedia-Programmierung 4
I Minecraft Suche Plugin Developer für Minecraft Netzwerk! Spiele- und Multimedia-Programmierung 2

Ähnliche Java Themen

Neue Themen


Oben