Skip to main content

Java Applet Uygulaması : Duvara Çarpıp Geri Dönen Top

İstanbul Üniversitesi Bilgisayar Mühendisliği bölümünde Java programlama dersinde haftalık olarak verilen ödevleri paylaşmaya devam ediyor. Bu haftaki uygulamamız Java Appletler’i ile ilgili.  Bir  Java Applet içersinde ki  top   kenarlara çarpacak ve çarptığı yer doğrultusunda ters istikamette yoluna devam edecek.

Duvara her captığında program bir İstisna fırlatacak.   Ve hangi koordinatlarda  duvara çarptığı  ekrana mesaj edilecek. Yapılanları yorum satırı olarak belirtmeye çalıştık. Umarım yardımcı olur.

 

 

 

 
 
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package carpandaire;
 
import java.applet.Applet;
import java.awt.Color;
import java.awt.Graphics;
import java.util.logging.Level;
import java.util.logging.Logger;
 
 
class carpmahatasi extends Exception
{
}
public class Carpandaire extends Applet {
     public int sayac=0;
     public int yony=1;
     public int yonx=1;
     boolean sinyalx=false;
     boolean sinyaly=false;
     //alttaki değişkenleri istersek kullanıcı girişlide yapabilitiz.
     public int xdegeri=100;
     public int ydegeri=150;
     public int kareningenisligi=300;
     public int kareninyuksekligi=500;
     public int kureninboyu=50;
     //Bu dikdörtgen değerlerini özellikle seçtim ki tam köşeye çarptığında bile hata vermeyip.
     //Tek bir carpmahatasi istisnası göndererek işlemini tamamlamasıdır.
    @Override
public void init()
{
    resize(900,900); // Ekran Genişliği Ayarlanıyor.
    setSize(800, 800);
}
    @Override
    public void paint(Graphics ciz)
    {
        for(int i=0;i<100;i++)
        {
            //Çabuk gösterilsin diye 50 ile çarptık boyu da 50 ile ayarlı. Lakin
            //bu dikdörtgenin büyüklüğünü oranlı yapmamıza neden oluyor zira tutmazsa taşıyor.
            //Taşıyor dediğimiz sonuçta x ve y koordinatlarını 1'er değil 50 şer arttırmamızdan.
            //Eğer alttaki kodları xdegeri ve ydeğeri satırlarının yerine koyarsak bu sorun
            //ortadan kalkar.
            //xdegeri+=yonx;
            //ydegeri+=yony;
            xdegeri+=yonx*50;
            ydegeri+=yony*50;
            try 
            {
                cizim(ciz,xdegeri,ydegeri,kureninboyu); 
            } 
            catch (carpmahatasi ex)  // İstisna oluşusup olusmadıgını kontrol et. ! 
            {
                sayac++;
                System.out.println(sayac+".cı kez çarptı");
            }
            try {
                Thread.sleep(300);
            } catch (InterruptedException ex) {
                Logger.getLogger(Carpandaire.class.getName()).log(Level.SEVERE, null, ex);
            }
 
        }
    }
    void cizim(Graphics ciz,int x,int y,int kureninboyu) throws carpmahatasi
        {   
            ciz.setColor(Color.WHITE);  // Ekranı Beyaz Yap
            ciz.fillRect(100, 100, kareningenisligi, kareninyuksekligi); // Ekrana Bir Dikdörtgencİc
            ciz.setColor(Color.BLACK); // Yazı Tengini Siyah Yap
            ciz.drawRect(100, 100, kareningenisligi, kareninyuksekligi); 
            ciz.setColor(Color.blue); //  Yazi Rengini Mavi Yap
            ciz.fillOval(x, y, kureninboyu, kureninboyu); // // Cizilen Dikdortgen icine bir top ciz 
            if((xdegeri+kureninboyu) >= (kareningenisligi+100) || xdegeri == 100) 
			// X koordinatında  duvaa carpip carpılmadıgını kontrol ediyoruz
            {
                yonx *= -1; // Eğer taşma varsa x koordinatını -1 le carparak tam zıtt yonde  hareket ettier
                sinyalx=true; 
            }
            if((ydegeri+kureninboyu)>= (kareninyuksekligi+100) || ydegeri == 100)
			// Y koordinatında  duvaa carpip carpılmadıgını kontrol ediyoruz
            {
                yony *= -1; // Eğer taşma varsa x koordinatını -1 le carparak tam zıtt yonde  hareket ettie.
                sinyaly=true; 
            }
            if(sinyalx||sinyaly)
            {
            if(sinyalx)sinyalx=false;
            if(sinyaly)sinyaly=false;                
            throw new carpmahatasi();
            }
 
         }
}

Başka bir uygulama da görüşmek dileğiyle =)

Share and Enjoy

  • Facebook
  • Twitter
  • Delicious
  • LinkedIn
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS

Aytaç Cici

İstanbul Üniversitesi Bilgisayar Mühendisliği mezunu bir Yazılım Geliştirici. Çeşitli zamanlarda Java, PHP, C# ve Delphi gibi diller kullanarak yazılım geliştirmiştir. Bir dönem SEO alanında da çalışmalar yapmıştır.

Java Applet Uygulaması : Duvara Çarpıp Geri Dönen Top” hakkında 5 yorum

  1. Güzel paylaşımınız için teşekkür ederim. Sitenizi yakından takip ediyorum gerçekten güzel paylaşımlar yapıyorsunuz.

  2. iyi günler aytaç hocam öncelikle siteniz çok yararlı bir site bunun için size çok teşekkür ediyorum.sitenizde paylaştığınız kodların (özellikle jar dosyalarını) paylaşmanız mümkün mü .acaba var ama ben mi göremedim iyi günler dilerim

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Email
Print