# Was ist gute Grafikprogrammierung?



## NiXPhoE (30. Dez 2013)

Hallo zusammen.

Ich habe als ich Abitur gemacht habe bei der Programmierung eines Spieles mitgearbeitet. Ich habe für die Grafik 15 Punkte bekommen. Vor einem Jahr habe ich auf die gleiche Weise die Oberfläche eines Programmes geschrieben. Nun hat hier einer im Forum gemeint das wäre gar keine gute Grafikprogrammierung! Ich will also fragen, was ist daran verbesserungswürdig? Oder was ist gute Grafikprogrammierung?
Hier der Anfang der Oberfläche:


```
public class RickenbackerMainDEView extends JPanel
{
	private static final long serialVersionUID = 1L;
	private int x = 30; 
    private int y = 30;
    private Double xx = 30.0;
    private Double yy = 30.0;
    private SetRes setres;
    private ReadCfg readcfg;
    private boolean joystick;
    private boolean roger;
    private boolean intel;
    private ReadUserCfg readusercfg;
    private ReadShockCfg readshockcfg;
    private boolean savename;
    private ReadCamCfg readcamcfg;
    private boolean softhard;
    private boolean menschveracht;
    private ReadInstallCfg readinstallcfg;
    private String language;
    private boolean languageclicked;
    
    private GeneralPath gp;
    
    public RickenbackerMainDEView(SetRes setres, ReadCfg readcfg)
    {
    	this.setSetres(setres);
    	this.setReadcfg(readcfg);
    	readusercfg = new ReadUserCfg(setres, getReadcfg().getreadpath());
    	joystick = readusercfg.isJoystick();
    	roger = readusercfg.isRogerwilco();
    	intel = readusercfg.isOldintel();
    	setReadshockcfg(new ReadShockCfg(setres, getReadcfg().getreadpath()));
    	setSavename(readshockcfg.isSavenameauto());
    	readcamcfg = new ReadCamCfg(setres, getReadcfg().getreadpath());
    	softhard = readcamcfg.isSofthardwaremode();
    	menschveracht = readshockcfg.isMenschveracht();
    	setReadinstallcfg(new ReadInstallCfg(setres, getReadcfg().getreadpath()));
    	language = readinstallcfg.getLanguage();
    	setLanguageclicked(false);
    	addMouseListener(new MouseAdapter() 
    	{
    		public void mouseClicked(MouseEvent e)
    		{
    			if(e.getX()>=x && e.getX()<=x+109 && e.getY()>=y+11 && e.getY()<=y+20)
    			{
    				if(joystick)
    				{
    					joystick = false;
    				}
    				else
    				{
    					joystick = true;
    				}
    				repaint();
    			}
    			if(e.getX()>=x+139 && e.getX()<=x+223 && e.getY()>=y+11 && e.getY()<=y+20)
    			{
    				if(roger)
    				{
    					roger = false;
    				}
    				else
    				{
    					roger = true;
    				}
    				repaint();
    			}
    			if(e.getX()>=x+254 && e.getX()<=x+338 && e.getY()>=y+11 && e.getY()<=y+20)
    			{
    				if(intel)
    				{
    					intel = false;
    				}
    				else
    				{
    					intel = true;
    				}
    				repaint();
    			}
    			if(e.getX()>=x+149 && e.getX()<=x+212 && e.getY()>=y+73 && e.getY()<=y+82)
    			{
    				if(savename)
    				{
    					savename = false;
    				}
    				else
    				{
    					savename = true;
    				}
    				repaint();
    			}
    			if(e.getX()>=x+243 && e.getX()<=x+348 && e.getY()>=y+73 && e.getY()<=y+82)
    			{
    				if(softhard)
    				{
    					softhard = false;
    				}
    				else
    				{
    					softhard = true;
    				}
    				repaint();
    			}
    			if(e.getX()>=x+2 && e.getX()<=x+149 && e.getY()>=y+134 && e.getY()<=y+143)
    			{
    				if(menschveracht)
    				{
    					menschveracht = false;
    				}
    				else
    				{
    					menschveracht = true;
    				}
    				repaint();
    			}
    			if(e.getX()>=x+2 && e.getX()<=x+75 && e.getY()>=y+70 && e.getY()<=y+90)
    			{
    				if(isLanguageclicked())
    				{
    					setLanguageclicked(false);
    				}
    				else
    				{
    					setLanguageclicked(true);
    				}
    				repaint();
    			}
    			if(e.getX()>=x+2 && e.getX()<=x+75 && e.getY()>=y+92 && e.getY()<=y+112 && isLanguageclicked())
    			{
    				language = "de";
    				setLanguageclicked(false);
    				repaint();
    			}
    			if(e.getX()>=x+2 && e.getX()<=x+75 && e.getY()>=y+112 && e.getY()<=y+132 && isLanguageclicked())
    			{
    				language = "en";
    				setLanguageclicked(false);
    				repaint();
    			}
    		}
    	});
    }
    
    public void paintComponent(Graphics g) 
    {
    	super.paintComponent(g);
    	
    	// Füllen des Hintergrundes mit der default color
        g.setColor(Color.BLACK);
        g.fillRect(0, 0, this.getWidth(), this.getHeight());
        SetRes setres = new SetRes();
        
    	final Graphics2D g2 = (Graphics2D)g; 
    	g2.setColor(Color.GREEN);
    	g2.setFont(new Font("Luicidan", Font.PLAIN, 11));
    	g2.drawString(setres.getTxt().getString("MainPaneJoystick"), x, y);
    	gp = new GeneralPath();
    	
    	gp.moveTo(x-5, y-5);
    	gp.lineTo(x-10, y-5);
    	gp.lineTo(x-10, y+35);
    	gp.lineTo(x+119, y+35);
    	gp.lineTo(x+119, y-5);
    	gp.lineTo(x+42, y-5);
    	g2.draw(gp);
    	g2.drawRect(x, y+11, 8, 8);
    	g2.drawString(setres.getTxt().getString("MainJoystick"), x+13, y+20);
    	if(joystick)
    	{
    		g.setColor(Color.GREEN);
	        g2.fillOval(x+1, y+12, 6, 6);
    	}
    	else
    	{
    		g.setColor(Color.BLACK);
	        g2.fillOval(x+1, y+12, 6, 6);
    	}
    	g.setColor(Color.GREEN);
        
    	g2.drawString(setres.getTxt().getString("MainPaneRog"), x+140, y);
    	gp.moveTo(x+134, y-5);
    	gp.lineTo(x+129, y-5);
        gp.lineTo(x+129, y+35);
        gp.lineTo(x+233, y+35);
        gp.lineTo(x+233, y-5);
        gp.lineTo(x+202, y-5);
        g2.draw(gp);
        g2.drawRect(x+139, y+12, 8, 8);
        if(roger)
    	{
    		g.setColor(Color.GREEN);
	        g2.fillOval(x+140, y+13, 6, 6);
    	}
    	else
    	{
    		g.setColor(Color.BLACK);
	        g2.fillOval(x+140, y+13, 6, 6);
    	}
        g.setColor(Color.GREEN);
        g2.drawString(setres.getTxt().getString("MainRog"), x+152, y+20);
       
       g2.drawString(setres.getTxt().getString("MainPaneIntel"), x+253, y);
       gp.moveTo(x+248, y-5);
       gp.lineTo(x+243, y-5);
       gp.lineTo(x+243, y+35);
       gp.lineTo(x+348, y+35);
       gp.lineTo(x+348, y-5);
       gp.lineTo(x+338, y-5);
       g2.draw(gp);
       g2.drawRect(x+253, y+12, 8, 8);
       if(intel)
   		{
   			g.setColor(Color.GREEN);
	        g2.fillOval(x+254, y+13, 6, 6);
   		}
   		else
   		{
   			g.setColor(Color.BLACK);
	        g2.fillOval(x+254, y+13, 6, 6);
   		}
       g.setColor(Color.GREEN);
       g2.drawString(setres.getTxt().getString("MainIntel"), x+266, y+20);
       
       g2.drawString(setres.getTxt().getString("MainPaneLanguage"), x, y+58);
       gp.moveTo(x-5, y+53);
       gp.lineTo(x-10, y+53);
       gp.lineTo(x-10, y+100);
       gp.lineTo(x+128, y+100);
       gp.lineTo(x+128, y+53);
       gp.lineTo(x+122, y+53);
       if(language=="de")
    	   g2.drawString(setres.getTxt().getString("MainDeuLanguage"), x+10, y+83);
       else
    	   g2.drawString(setres.getTxt().getString("MainEngLanguage"), x+10, y+83);
       gp.moveTo(x+2, y+70);
       gp.lineTo(x+2, y+90);
       gp.lineTo(x+75, y+90);
       gp.lineTo(x+75, y+70);
       gp.lineTo(x+2, y+70);
       gp.moveTo(x+55, y+70);
       gp.lineTo(x+55, y+90);
       gp.moveTo(x+60, y+78);
       gp.lineTo(x+69, y+78);
       gp.moveTo(x+61, y+79);
       gp.lineTo(x+68, y+79);
       gp.moveTo(x+62, y+80);
       gp.lineTo(x+67, y+80);
       gp.moveTo(x+63, y+81);
       gp.lineTo(x+66, y+81);
       gp.moveTo(x+64, y+82);
       gp.lineTo(x+65, y+82);
       g2.draw(gp);
       
       g2.drawString(setres.getTxt().getString("MainPaneSave"), x+148, y+58);
       gp.moveTo(x+143, y+53);
       gp.lineTo(x+138, y+53);
       gp.lineTo(x+138, y+100);
       gp.lineTo(x+222, y+100);
       gp.lineTo(x+222, y+53);
       gp.lineTo(x+214, y+53);
       g2.draw(gp);
       g2.drawRect(x+149, y+73, 8, 8);
       if(savename)
  		{
  			g.setColor(Color.GREEN);
	        g2.fillOval(x+150, y+74, 6, 6);
  		}
  		else
  		{
  			g.setColor(Color.BLACK);
	        g2.fillOval(x+150, y+74, 6, 6);
  		}
      g.setColor(Color.GREEN);
      g2.drawString(setres.getTxt().getString("MainSave"), x+162, y+81);
       
       g2.drawString(setres.getTxt().getString("MainPaneMode"), x+242, y+58);
       gp.moveTo(x+237, y+53);
       gp.lineTo(x+232, y+53);
       gp.lineTo(x+232, y+100);
       gp.lineTo(x+358, y+100);
       gp.lineTo(x+358, y+53);
       gp.lineTo(x+348, y+53);
       g2.draw(gp);
       g2.drawRect(x+242, y+73, 8, 8);
       if(softhard)
 		{
 			g.setColor(Color.GREEN);
	        g2.fillOval(x+243, y+74, 6, 6);
 		}
 		else
 		{
 			g.setColor(Color.BLACK);
	        g2.fillOval(x+243, y+74, 6, 6);
 		}
     g.setColor(Color.GREEN);
     g2.drawString(setres.getTxt().getString("MainMode"), x+255, y+81);
       
       g2.drawString(setres.getTxt().getString("MainPaneBlut"), x, y+121);
       gp.moveTo(x-5, y+116);
       gp.lineTo(x-10, y+116);
       gp.lineTo(x-10, y+159);
       gp.lineTo(x+79, y+159);
       gp.lineTo(x+79, y+116);
       gp.lineTo(x+23, y+116);
       g2.draw(gp);
       g2.drawRect(x+2, y+134, 8, 8);
       if(menschveracht)
   		{
   			g.setColor(Color.GREEN);
	        g2.fillOval(x+3, y+135, 6, 6);
   		}
   		else
   		{
   			g.setColor(Color.BLACK);
	        g2.fillOval(x+3, y+135, 6, 6);
   		}
   		g.setColor(Color.GREEN);
       g2.drawString(setres.getTxt().getString("MainBlut"), x+15, y+142);
       
       g2.drawString(setres.getTxt().getString("MainPaneShots"), x+99, y+121);
       gp.moveTo(x+94, y+116);
       gp.lineTo(x+89, y+116);
       gp.lineTo(x+89, y+159);
       gp.lineTo(x+193, y+159);
       gp.lineTo(x+193, y+116);
       gp.lineTo(x+165 , y+116);
       g2.drawString(setres.getTxt().getString("MainLableShots"), x+100, y+142);
       g2.drawRect(x+136, y+129, 47, 19);
       gp.moveTo(x+163, y+129);
       gp.lineTo(x+163, y+148);
       gp.moveTo(x+168, y+138);
       gp.lineTo(x+178, y+138);
       gp.moveTo(x+169, y+139);
       gp.lineTo(x+177, y+139);
       gp.moveTo(x+170, y+140);
       gp.lineTo(x+176, y+140);
       gp.moveTo(x+171, y+141);
       gp.lineTo(x+175, y+141);
       gp.moveTo(x+172, y+142);
       gp.lineTo(x+174, y+142);
       gp.moveTo(x+173, y+143);
       gp.lineTo(x+173, y+143);
       g2.draw(gp);
       g2.drawString("001", x+142, y+142);
      
       g2.drawString(setres.getTxt().getString("MainPanRes"), x+212, y+121);
       gp.moveTo(x+207, y+116);
       gp.lineTo(x+202, y+116);
       gp.lineTo(x+202, y+159);
       gp.lineTo(x+294, y+159);
       gp.lineTo(x+294, y+116);
       gp.lineTo(x+272, y+116);
       String res = setres.getTxt().getString("Main640480");
       g2.drawString(res, x+217, y+143);
       g2.drawRect(x+212, y+129, 72, 20);
       gp.moveTo(x+264, y+129);
       gp.lineTo(x+264, y+149);
       gp.moveTo(x+269, y+139);
       gp.lineTo(x+279, y+139);
       gp.moveTo(x+270, y+140);
       gp.lineTo(x+278, y+140);
       gp.moveTo(x+271, y+141);
       gp.lineTo(x+277, y+141);
       gp.moveTo(x+272, y+142);
       gp.lineTo(x+276, y+142);
       gp.moveTo(x+273, y+143);
       gp.lineTo(x+275, y+143);
       gp.moveTo(x+274, y+144);
       gp.lineTo(x+274, y+144);
       g2.draw(gp);
       
       //Tabs
       g2.drawRect(x-20, y-20, 389, 190);
       g2.setFont(new Font("Luicidan", Font.BOLD, 11));
       
       g2.fillRect(x-20, y+170, 39, 15); 
       g.setColor(Color.BLACK);
       g2.drawString(setres.getTxt().getString("MainTab"), x-15, y+181);
       
       g.setColor(Color.GREEN);
       g2.drawRect(x+20, y+170, 54, 14);
       g2.drawString(setres.getTxt().getString("MonsterTab"), x+25, y+181);
       g2.drawRect(x+76, y+170, 55, 14); 
       g2.drawString(setres.getTxt().getString("Chat1Tab"), x+81, y+181);
       g2.drawRect(x+133, y+170, 55, 14);
       g2.drawString(setres.getTxt().getString("Chat2Tab"), x+138, y+181);
       g2.drawRect(x+190, y+170, 55, 14);
       g2.drawString(setres.getTxt().getString("Chat3Tab"), x+195, y+181);
       g2.drawRect(x+247, y+170, 55, 14);
       g2.drawString(setres.getTxt().getString("Chat4Tab"), x+252, y+181);
       g2.drawRect(x+304, y+170, 55, 14);
       g2.drawString(setres.getTxt().getString("Chat5Tab"), x+309, y+181);
       g2.drawRect(x-20, y+186, 55, 14);
       g2.drawString(setres.getTxt().getString("Chat6Tab"), x-15, y+197);
       g2.drawRect(x+37, y+186, 55, 14);
       g2.drawString(setres.getTxt().getString("Chat7Tab"), x+42, y+197);
       g2.drawRect(x+94, y+186, 55, 14);
       g2.drawString(setres.getTxt().getString("Chat8Tab"), x+98, y+197);
       g2.drawRect(x+151, y+186, 31, 14);
       g2.drawString(setres.getTxt().getString("HelpTab"), x+156, y+197);
       g2.drawRect(x+184, y+186, 28, 14);
       g2.drawString(setres.getTxt().getString("InfoTab"), x+189, y+197);
         
       //ButtonButton
       
       g2.drawString(setres.getTxt().getString("ButtonLabelLanguage"), x-9, y+230);
       
       //right circle, bow and circle
       g2.draw(new Ellipse2D.Double(xx+126.0, yy+212.0, 4.0, 4.0));
       g2.draw(new Ellipse2D.Double(xx+120.0, yy+216.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+121.0, yy+218.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+122.0, yy+220.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+122.0, yy+222.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+122.0, yy+224.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+122.0, yy+226.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+122.0, yy+228.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+122.0, yy+230.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+121.0, yy+232.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+120.0, yy+234.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+126.0, yy+236.0, 4.0, 4.0));
       
       //up
       g2.draw(new Ellipse2D.Double(xx+118.0, yy+214.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+116.0, yy+214.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+114.0, yy+214.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+112.0, yy+214.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+110.0, yy+214.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+108.0, yy+214.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+106.0, yy+214.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+104.0, yy+214.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+102.0, yy+214.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+100.0, yy+214.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+98.0, yy+214.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+96.0, yy+214.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+94.0, yy+214.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+92.0, yy+214.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+90.0, yy+212.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+88.0, yy+214.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+86.0, yy+214.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+84.0, yy+214.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+82.0, yy+214.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+80.0, yy+214.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+78.0, yy+214.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+76.0, yy+214.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+74.0, yy+214.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+72.0, yy+214.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+70.0, yy+214.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+68.0, yy+214.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+66.0, yy+214.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+64.0, yy+214.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+62.0, yy+214.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+60.0, yy+216.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+58.0, yy+214.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+56.0, yy+214.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+54.0, yy+214.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+52.0, yy+214.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+50.0, yy+214.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+48.0, yy+214.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+46.0, yy+214.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+44.0, yy+216.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+42.0, yy+214.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+40.0, yy+214.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+38.0, yy+214.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+36.0, yy+214.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+34.0, yy+214.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+32.0, yy+214.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+30.0, yy+214.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+28.0, yy+214.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+26.0, yy+214.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+24.0, yy+214.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+22.0, yy+214.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+20.0, yy+214.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+18.0, yy+214.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+16.0, yy+214.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+14.0, yy+214.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+12.0, yy+212.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+10.0, yy+214.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+8.0, yy+214.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+6.0, yy+214.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+4.0, yy+214.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+2.0, yy+214.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx, yy+214.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx-2.0, yy+214.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx-4.0, yy+214.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx-6.0, yy+214.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx-8.0, yy+214.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx-10.0, yy+214.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx-12.0, yy+215.0, 2.0, 2.0));
       
       //left circle, bow and circle
       g2.draw(new Ellipse2D.Double(xx-20.0, yy+212.0, 4.0, 4.0));
       g2.draw(new Ellipse2D.Double(xx-14.0, yy+216.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx-15.0, yy+218.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx-16.0, yy+220.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx-16.0, yy+222.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx-16.0, yy+224.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx-16.0, yy+226.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx-16.0, yy+228.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx-16.0, yy+230.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx-15.0, yy+232.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx-14.0, yy+234.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx-20.0, yy+236.0, 4.0, 4.0));
       
       //down
       g2.draw(new Ellipse2D.Double(xx-12.0, yy+235.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx-10.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx-8.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx-6.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx-4.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx-2.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+2.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+4.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+6.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+8.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+10.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+12.0, yy+238.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+14.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+16.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+18.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+20.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+22.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+24.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+26.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+28.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+30.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+32.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+34.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+36.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+38.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+40.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+42.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+44.0, yy+234.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+46.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+48.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+50.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+52.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+54.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+56.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+58.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+60.0, yy+234.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+62.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+64.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+66.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+68.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+70.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+72.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+74.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+76.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+78.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+80.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+82.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+84.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+86.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+88.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+90.0, yy+238.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+92.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+94.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+96.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+98.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+100.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+102.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+104.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+106.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+108.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+110.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+112.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+114.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+116.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+118.0, yy+236.0, 2.0, 2.0));
       
       g2.drawString(setres.getTxt().getString("ButtonRadioGer"), x+139, y+230);
       
	}
}
```


----------



## ARadauer (30. Dez 2013)

Mhn 



> Ich habe für die Grafik 15 Punkte bekommen.


Naja was soll das heißen? Woher soll der Abi Lehrer Ahnung von professioneller Software Entwicklung bzw von Grafik Programmierung haben.
Das Ding kompeliert und ihr wart anwesend... naja passt schon...

Was ist an dem code so schlimm?
naja was macht der code? Er zeichnet eine GUI. 
Grundsätzlich wundert es mich ja das du keine fertigen GUI Komponenten benutzt aber naja egal.

Also praktisch zeichnet dein Code Checkoxen, was dein code aber macht ist nur
gp.lineTo(x+23, y+116);
g2.draw(gp);
g2.drawRect(x+2, y+134, 8, 8);
ich seh das im code nciht, dass das eine checkbox ist... was ist 8?  ja mir ist das schon klar dass das die breite sein wird, aber warum steht das 20 mal im code? das müsste doch zentral wo definiert sein ....
usw.. warum machst du dir nicht eine Methode oder noch besser ein Objekt das für zb eine checkbox zuständig ist.
Dann könntest du das wiederverwenden, der händelt den klick, hat die info über die position die man von aussen übergibt und weiß wie breit so ein ding ist...

ca zeile 140 - 160 das ist ein so ein Bereich mit Checkbox
dann kommt praktisch 6 mal der selbe Code, das ist einfach hässlich.
Das kann man sauber auslagern und parameterisieren.

Was macht das?


```
//down
       g2.draw(new Ellipse2D.Double(xx-12.0, yy+235.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx-10.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx-8.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx-6.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx-4.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx-2.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+2.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+4.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+6.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+8.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+10.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+12.0, yy+238.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+14.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+16.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+18.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+20.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+22.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+24.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+26.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+28.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+30.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+32.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+34.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+36.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+38.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+40.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+42.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+44.0, yy+234.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+46.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+48.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+50.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+52.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+54.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+56.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+58.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+60.0, yy+234.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+62.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+64.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+66.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+68.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+70.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+72.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+74.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+76.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+78.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+80.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+82.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+84.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+86.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+88.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+90.0, yy+238.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+92.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+94.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+96.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+98.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+100.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+102.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+104.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+106.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+108.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+110.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+112.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+114.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+116.0, yy+236.0, 2.0, 2.0));
       g2.draw(new Ellipse2D.Double(xx+118.0, yy+236.0, 2.0, 2.0));
```
	   geil ich bin Grafik-Programmierer, weil mein Programm eine grafik ausgibt. Das ist dieser Turtle Schmarrn was wei uns im Kindergarten unterrichtet wird. zeichne von Punkt 2,2 nach 2,3 nach 3,3 nach 3,2 usw und ich hab ein haus... geil.... das ist furchtbar
	   das ist ein 
	    g2.draw(new Ellipse2D.Double(xx-X, yy+236.0, 2.0, 2.0));
		von X = 12 bis 118 in 2er Schritten... manchmal ist da noch ein 235 oder 238 statt dem 236  (warum auch immer) aber im grunde ist es das


```
for(int x = 12; x < 238; x+=2{
			g2.draw(new Ellipse2D.Double(xx-x, yy+236.0, 2.0, 2.0));
		}
```


Ließ ein Buch zum Thema Java Programmieren, vielleicht das Java von Kopf bis Fuss. Und dann mal irgendetwas in Richtung Grafik, wobei ich da auch keines weiß. Aber echt das ist schwere Mathematik und wird auch in der Praxis nicht oft benötigt, ausser im gaming bereich natürlich. 

Nur weil man 4 linien in java malen kann und da ein kästchen raus kommt, ist man kein grafik programmierer... auch wenn man vom abi lehrer 15 punkte bekommen hat...


----------



## NiXPhoE (30. Dez 2013)

Ich wollte einfach selber malen, deswegen habe ich keine fertige GUI verwendet.

Ja, du hast recht, habe es einfach runtergeschrieben ohne auszulagern, das war wohl ein Fehler!

Ok, da habe ich dann mit 2 Pixeln abstand mit simplen Kreisen gemalt. Du hast recht, ich hätte das parametrisieren sollen.

Also ein Javabuch muss ich nicht mehr lesen, da ist es besser ich lerne Mathe oder C#... Wenn ich die GUI jemals fertigmale, werde ich daran denken zu parametrsieren!


----------



## Tobse (31. Dez 2013)

NiXPhoE hat gesagt.:


> Ich wollte einfach selber malen, deswegen habe ich keine fertige GUI verwendet.
> 
> Ja, du hast recht, habe es einfach runtergeschrieben ohne auszulagern, das war wohl ein Fehler!
> 
> ...



Wirf vllt mal einen Blick darauf, wie Sing funktioniert (die GUI von Java), denn die von .NET funktioniert (zumindest für den Programmierer, der die Funktionen nutzt) ziemlich änlich. Wenn du das Prinzip verstanden hast wird es dir wie Schuppen von den Augen fallen, dass 1. Dein Code zwar macht was er soll, das aber nur total speziell und daher nicht praxisfähig und 2. dein Lehrer (sowie die meissten Informatik-Lehrer ausser vllt die an den technischen Gymnasien) exakt 0 Ahnung von Programmieren hat, geschweigeden das Recht haben sollte, andere darin zu bewerten...


----------



## NiXPhoE (31. Dez 2013)

Ich weis wie Swing funktioniert!  Und du glaubst es nicht, aber ich war auf einem technischen Gymnasium!


----------



## Tobse (31. Dez 2013)

NiXPhoE hat gesagt.:


> Ich weis wie Swing funktioniert!  Und du glaubst es nicht, aber ich war auf einem technischen Gymnasium!



Tja, Ausnahmen bestätigen die Regel  Unser Informatik-Lehrer am allgemeinbildenden Gymnasium war davon begeistert, dass man in .NET ein dynamisches Array erzeugen kann (hat er nicht gewusst, bevor er es in meinem Code gesehen hat)... soviel dazu also 

Um bei der Sache zu bleiben:
In jeder Objektorientierten (oder auch objektbasierten, z.B. JavaScript) Sprache zeichnet sich guter Code vor allem durch eine hohe wiederverwendebarkeit aus. Sprich: In je kleinere Aufgaben du eine größere Unterteilst, desto besser. Denn wenn du etwas ändern musst kannst du das an einer Stelle tun, Auswirkungen hat es aber möglicherweise auf 1000e Stellen im ganzen Programm.


----------



## NiXPhoE (31. Dez 2013)

Ja - wenn ich den Wert einer Variable anpasse, muss ich auch die anderen ändern meistens. However, die Redundanzen werde ich nicht mehr korrigieren, aber ich werde versuchen mehr Mathematik einzubauen in Zukunft. Der Vorteil an dieser Lösung ist, dass ich beim programmieren kaum rechnen musste. Auch wenn nicht alle Werte die gewisse kontinuität besitzen ist das bei dem fertigen Ergebnis niemand aufgefallen! Hier ist ein Screenshot der gezeichneten GUI: Bild 6 ? Rickenbacker | NiXPhoE

Als nächstes will ich eine JCombobox für die Screenshots malen! Das Problem ist daran wie man die Gesammtanzahl der Screenshots in der aufgeklappten Combobox berücksichtigt und mit welcher art von Schleife man die Menge der Screenshots durchläuft. Man muss Strings in Integer casten und man muss alles in drei Schleifen aufteilen. 0-9, 10-99 und 100-999.


----------



## Ruzmanz (31. Dez 2013)

Du hast verstanden wie man programmiert. Wenn du nun bei *jedem *C&P deinen Quelltext in eine Funktion / Methode / Klasse packst, dann kannst du deine Fähigkeiten und die Lesbarkeit / Wartbeikeit deines Quellcode enorm verbessern. Das ist dann zwar auch kein guter Quellcode, aber zumindest ein weiterer Schritt in die richtige Richtung.

Nach meiner persönlichen Meinung ist jede entwickelte Software gut und programmierte schlecht. In den meisten Fällen kann man gute Software auch noch besser machen. Mir ist bewusst, dass diese These sehr schwammig formuliert ist.

Richtige Anwtort:


> Das Ding kompeliert und ihr wart anwesend... naja passt schon...



Falsche Antwort:


> dein Lehrer (sowie die meissten Informatik-Lehrer ausser vllt die an den technischen Gymnasien) exakt 0 Ahnung von Programmieren hat, geschweigeden das Recht haben sollte, andere darin zu bewerten...



Was ist den am Lehrer auszusetzen? Ich finde das Thema Softwaremetriken total interessant. Aber um ehrlich zu sein habe ich nichtmal den kleinsten Ansatz, wie man objektiv einen Quellcode bewerten könnte. 15 Punkte zu vergeben und zu kritisieren ist einfach. Wie sieht ein 14 Punkte Quellcode aus? Evtl. kannst du uns mit deinem Wissen bereichern.


----------



## ARadauer (31. Dez 2013)

NiXPhoE hat gesagt.:


> Also ein Javabuch muss ich nicht mehr lesen, da ist es besser ich lerne Mathe oder C#...


Naja der code sieht nicht so aus, als könntest du java... 


NiXPhoE hat gesagt.:


> However, die Redundanzen werde ich nicht mehr korrigieren,


Warum nicht, ist doch eine gute Möglichkeit das zu lernen.

immer diese links auf Neue Leute treffen | KWICK! Community gibts da nix anderes? da muss man angemeldet sein um das bild groß zu sehen...




> Man muss Strings in Integer casten und man muss alles in drei Schleifen aufteilen. 0-9, 10-99 und 100-999


man kann keine Strings in Integer casten... grundlagen lernen!
warum muss man das in drei Schleifen aufteilen?
Was willst du genau machen? Programmier das mal. Dann sehen wir ob es besser gehen würde.


----------



## Tobse (31. Dez 2013)

OT:


Ruzmanz hat gesagt.:


> Was ist den am Lehrer auszusetzen? Ich finde das Thema Softwaremetriken total interessant. Aber um ehrlich zu sein habe ich nichtmal den kleinsten Ansatz, wie man objektiv einen Quellcode bewerten könnte. 15 Punkte zu vergeben und zu kritisieren ist einfach. Wie sieht ein 14 Punkte Quellcode aus? Evtl. kannst du uns mit deinem Wissen bereichern.



Du hast ja meinen Post gelesen. Mein Informatik-Lehrer hat mich gelobt, weil ich die ArrayList von .NET benutzt habe. Und er hat die Klasse selbst nicht gekannt:

```
// VB
dim list as List<Of Integer>();
// Java
ArrayList<Integer> list = new ArrayList<>();
```
Wow... eine wahnsinns leistung, ehrlich! Und variablen hat er auch freudig 
	
	
	
	





```
hugo
```
 und 
	
	
	
	





```
bernd
```
 genannt und meinte, das ginge schon okey so, wir wüssten ja, zu was die gut sind.
Und so sieht es, wenn man den erzählungen glaubt, an allen allgemeinbildenden Gymnasien aus. Und ganz ehrlich: Wenn sich hier im Forum jemand mit derartigen Kenntnissen ein Urteil über anderen Quellcode erlaubt wird er schneller in seine Schranken gewiesen als er denken kann. Für den Lehrer gilt da meiner Meinung nach keine Ausnahme...
/OT

p.s.: Das problem ist ja gelöst, man verzeihe mir deshalb meine OT-Ausschweifung


----------



## NiXPhoE (31. Dez 2013)

Mein Rickenbackerquellcode ist sich kein 15 Punkte Code! Klar kann ich die Screenshots auf meine Homepage hochladen, aber man muss sie nicht größer sehen! Ich weis nicht auswendig warum ich drei Schleifen brauche. Und ob ich String in int casten muss. Ich will das nicht hier diskutieren!


----------

