Turkhackteam.net/org - Turkish Hacking & Security Platform  
Geri git   Turkhackteam.net/org - Turkish Hacking & Security Platform >
Programlama
> Java


Java İle İlk Projem

Java

Yeni Konu aç Cevapla
 
Seçenekler
Alt 21-04-2018 00:58   #1
  • Asteğmen
  • Üye Bilgileri
Üyelik tarihi
03/2016
Nereden
yok
Mesajlar
Konular
9


  
Java İle İlk Projem



İlk yaptığım sayı tahmin oyununun kodlarını buldum paylaşmak istedim

Kod:
import java.util.Random;
import java.util.Scanner;

public class OyunMain {
	public static **** main(String[] args) {
		Random rnd = new Random();
		Scanner scn = new Scanner(System.in);
		
		System.out.println("Kaç tahmin hakkı istersiniz?");
		int hakSayi = scn.nextInt();
		
		System.out.println("1- kaç arası tahmin istediğinizi giriniz");
		int maksSinir = scn.nextInt();
		
		int randomSayi = rnd.nextInt(maksSinir)+1;
		
		int tahmin = 0;
		int i = 0;
		for(i=1;i<= hakSayi;i++) {
			System.out.println(i+". tahmininiz!");
			tahmin = scn.nextInt();
			
			if(tahmin < randomSayi) System.out.println("Daha yüksek bir sayı giriniz");
			else if(tahmin > randomSayi) System.out.println("Daha küçük bir sayı giriniz");
			else if(tahmin == randomSayi) {Kazandin(i); break;}
		}
		if  (i == hakSayi+1) {
			System.out.println("Yeniden oynamak ister misin? ");
			System.out.println("Evet - 1, Hayır - 2");
			int k = scn.nextInt();
			if(k ==1 ) {
				System.out.println("\n\n\n\n\n\n");
				main(null);
			}
			else if(k==2) System.out.println("\n\n\n\n\nİyi günler!");
			
			else {
				System.out.println("Lütfen geçerli bir sayı giriniz!");
			}
		}


		
	}

	private static **** Kazandin(int kachak) {
		System.out.println("\n\n\n\n\n");
		System.out.println("TEBRİKLER!" + kachak + ". hakkınızda kazandınız");
		System.out.println("Yeniden oynmak ister misiniz ?");
		System.out.println("Evet - 1, Hayır - 2");
		Scanner scn = new Scanner(System.in);
		int i = scn.nextInt();
		
		if(i ==1 ) {
			System.out.println("\n\n\n\n\n\n");
			main(null);
		}
		else if(i==2) System.out.println("\n\n\n\n\nİyi günler!");
		
		else {
			System.out.println("Lütfen geçerli bir sayı giriniz!");
		}
	}
	
}
    
 Offline  
 
Alıntı ile Cevapla
Alt 21-04-2018 01:03   #2
  • Üsteğmen
  • Üye Bilgileri
Üyelik tarihi
03/2018
Nereden
🆁
Mesajlar
Konular


  


Gerçekten sen kodladıysan tebrik ederim
    


___________________________________________



















"Guys, We have a traitor"

Konu R4V3N tarafından (24-04-2018 02:44 Saat 02:44 ) değiştirilmiştir..
 Offline  
 
Alıntı ile Cevapla
Alt 21-04-2018 08:30   #3
  • Yarbay
  • Üye Bilgileri
Üyelik tarihi
07/2015
Nereden
Ankara
Mesajlar
Konular


  


Geçerli işlem girmediklerinde programdan çıkıyor ... Kazandın fonksiyonu içinde geçerli işlem seçilene kadar süren bir while döngüsü olmalıydı...

Ufacık bir sorun daha var; alışkanlık haline gelirse ilerde başına bela açar. Kişi her kazandığında "Kazandın" fonksiyonu çağrılıyor, o da main fonksiyonunu geri çağırıyor.

Normalde bu kod bilgisayar tarafından işlenirken, yazdığın her fonksiyon bir "routine"e dönüştürülür. Bilgisayar hangisine gitti, bittiğinde hangisine dönecek hatırlamak için bir stack - yığın içinde bunların adreslerini tutar. Kullanıcı her kazandığında ve tekrar oynamak istediğinde, sen oraya iki tane adres yazdırıyorsun, ama aslında programında aynı noktaya dönüyorsun.

Yani bir süre devam ettiğini düşünelim; bilgisayarın diyor ki: "şimdi main'deyim, bitince kazandın'a döneceğim, o bitince main'e, o bitince kazandın'a, o bitince main'e.......".. Her devam edilen oyun için 16 byte hafızayı gereksiz yere kaybediyorsun. Yeterli miktarda bu durum devam ederse "Stack Overflow" hatası verecek.

Tabii stack boyutu, ezbere bilmesem de bir kaç mb'tır.. Hani tabii 16 byte 16 byte bu oyunun binlerce kez oynanması gerekir. Ama alışkanlık haline getirirsen, ciddi programlarında sebepsiz çökmeler yaşarsın. While döngülerini çalış üstad. Bir şey tek bir koşul harici tekrar tekrar çalışacaksa bunu "while" ile yaparsın.
    


___________________________________________

Gayrıresmi Trolleme Kulübü Kurucu Üyesi...

Sii Şarp: 430%
Site yapmah: 386%
Piieyçpii: 396.8%
Cava: 205%
Andıroyid: 37.9²%
Nodjiies: 196%
Sii artı artı: 342.333333334%
Yuniti: 154%
Paytın 304%
Bat dosyasıyla hedef çökertme: 96i+382√17%

 Offline  
 
Alıntı ile Cevapla
Alt 22-04-2018 10:45   #4
  • AR-GE Tim (Bug.Res.)
  • Üye Bilgileri
Üyelik tarihi
08/2015
Nereden
Phobos/Space
Mesajlar
Konular


  


Alıntı:
zztri´isimli üyeden Alıntı Mesajı göster
Geçerli işlem girmediklerinde programdan çıkıyor ... Kazandın fonksiyonu içinde geçerli işlem seçilene kadar süren bir while döngüsü olmalıydı...

Ufacık bir sorun daha var; alışkanlık haline gelirse ilerde başına bela açar. Kişi her kazandığında "Kazandın" fonksiyonu çağrılıyor, o da main fonksiyonunu geri çağırıyor.

Normalde bu kod bilgisayar tarafından işlenirken, yazdığın her fonksiyon bir "routine"e dönüştürülür. Bilgisayar hangisine gitti, bittiğinde hangisine dönecek hatırlamak için bir stack - yığın içinde bunların adreslerini tutar. Kullanıcı her kazandığında ve tekrar oynamak istediğinde, sen oraya iki tane adres yazdırıyorsun, ama aslında programında aynı noktaya dönüyorsun.

Yani bir süre devam ettiğini düşünelim; bilgisayarın diyor ki: "şimdi main'deyim, bitince kazandın'a döneceğim, o bitince main'e, o bitince kazandın'a, o bitince main'e.......".. Her devam edilen oyun için 16 byte hafızayı gereksiz yere kaybediyorsun. Yeterli miktarda bu durum devam ederse "Stack Overflow" hatası verecek.

Tabii stack boyutu, ezbere bilmesem de bir kaç mb'tır.. Hani tabii 16 byte 16 byte bu oyunun binlerce kez oynanması gerekir. Ama alışkanlık haline getirirsen, ciddi programlarında sebepsiz çökmeler yaşarsın. While döngülerini çalış üstad. Bir şey tek bir koşul harici tekrar tekrar çalışacaksa bunu "while" ile yaparsın.
Recursive pismanliktir
    


___________________________________________

~Cahile gelmez benden hayır
 Offline  
 
Alıntı ile Cevapla
Cevapla

Bookmarks

Seçenekler


Bilgilendirme Turkhackteam.net/org
Sitemizde yer alan konular üyelerimiz tarafından paylaşılmaktadır.
Bu konular yasalara uygunluk ve telif hakkı konusunda yönetimimiz tarafından kontrol edilse de, gözden kaçabilen içerikler yer alabilmektedir.
Bu tür konuları turkhackteamiletisim [at] gmail.com mail adresimize bildirebilirsiniz, konular hakkında en kısa sürede gerekli işlemler yapılacaktır.
Please Report Abuse, DMCA, Harassment, Scamming, Warez, Crack, Divx, Mp3 or any Illegal Activity to turkhackteamiletisim [at] gmail.com

Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz.
Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.



         

Powered by vBulletin® Copyright ©2000 - 2018

TSK Mehmetçik Vakfı

Türk Polis Teşkilatını Güçlendirme Vakfı



Google+

wau

Search Engine Friendly URLs by vBSEO 3.6.0 ©2011, Crawlability, Inc.