Java Adam Asmaca Oyunu

By Burak TUNGUT - 21.11.2012 - Kategori Java

Bu makalem ile en minimal şekil de java da konsol uygulaması olarak adam asmaca oyununu yazacağız.

Vizeye hazırlanırken gece 03:00 sularında örnek olması amacıyla kendi kendime yaptığımı bu basit oyuna bir kaç özellik daha ekleyerek sizlere sunuyorum.

Adam Asmaca'yı tanıyalım :)

Öncelikle şunu söylemeleyim ki herhangi bir grafiksel çalışma söz konusu değil :) Oyun tamamiyle düz yazı üzerinden sahip olduğumuz 10 hak ile bize düşen kelimeyi bilmemizden ibaret.
İlk olarak bir adet kelimeler adında String array tanımlayarak bunun içine kelime hazinemizi döküyoruz. Arından program rasgele bu dizi içinden bir index seçerek döngüye giriyor ve her yanlış girişimiz de 10 hakkımızdan bir tane alıp götürüyor.
Değişkenleri olabildiğince Türkçe deklare ettim umarım anlaşılabilir.
 

Aynı harfi içeren kelimeler

Bu küçük örnekte ki en büyük sorun bir kelime içinde geçen aynı birden fazla harf idi mesela "televizyon" kelimesinde 2 adet e geçiyor, bunu indexOf ile aramamızda bize ilk indexi verecektir. Bunu çözmenin iki yolundan biri döngüye kalan indexten devam ederek indexOf ile aramak ve buna göre işlem yapmak.
Ben de bu yolu düşündüm ve gelen her aynı kelimeyi bir int diziye koordinatlarını (indislerini) aktararak sonraki bir döngüde bunları işledim.

Adam asmaca oyunumuz hayırlı olsun :)
 

Kodlarımız

//Haydar Burak TUNGUT - www.buraktungut.com !!
public class adamAsmaca {

	public static void main(String[] args) {
		Scanner oku = new Scanner(System.in);
		String[] kelimeler = {"televizyon","burak","tungut","isparta","suleyman","demirel"};
		int indexSec = (int)(Math.random()*kelimeler.length);
		String kelime = kelimeler[indexSec];
		int hak=0;
		System.out.println(kelime); // Hangi kelime seçtiğini gösteriyorum oyunu oynarken hile yapmayın :)
		
		String tahmin = new String();
		StringBuilder durum = new StringBuilder();
		for(int i = 0 ; i < kelime.length() ; i++)
			durum.append("-");
		
		while(true)
		{
			if(hak==10)
			{
				System.out.println("10 hakkında doldu uzgunum :(");
				break;
			}
			System.out.println(durum+" tahmin ?");
			tahmin = oku.next();
			if(tahmin.equals(kelime))
			{
				System.out.println("tebrikler "+hak+" deneme de kazandin :)");
				break;
			}
			char k = tahmin.charAt(0);
			int say=0;
			int[] yerler = {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1};
			for(int i = 0 ; i < kelime.length() ; i++)
			{
				if(k==kelime.charAt(i))
				{
					yerler[say]=i;
					say++;
				}
			}
			boolean geldi = false;
			for(int i = 0  ;i < yerler.length ; i++)
			{
				if(yerler[i]!=-1)
				{
					durum.setCharAt(yerler[i], k);
					geldi = true;
				}
			}
			if(geldi==false) hak++;
			System.out.println(10-hak+" hakkiniz kaldi..");
		}

	}
Yorum Bırak

Facebook
Son Yorumlar