Müzik ve Teknolojiyle arası iyi olan bir zat-ı muhterem.

C İle Yılan Oyunu
1 sene önce 733 okunma C Programlama

Herkese merhaba, yine ben geldim. Bu yazı da da yine bir önceki yazı gibi okul için yaptığım ödevimi paylaşacağım. Ödev basit bir yılan oyunu. Şunu belirtmeliyim ki oyunda yemi yediğinizde oyunu kazanmış oluyorsunuz. Yani oyunda yılanın büyüme durumunu yapmadım ama bu yapılamayacak anlamına gelmiyor tabiki. Kodları anlaşılır bir şekilde yazdığımı düşünüyorum bu yüzden rahatlıkla geliştirebilirsiniz.

Oyunu aşağıdaki maddelere uyarak yaptım;

  • Bu oyunda sizden 12×12 boyutunda bir yılan oyunu tahtası hazırlamanız istenmektedir.
  • Bu tahtanın kenarları aşağıdaki gibi duvar olacak şekilde tasarlayınız. Yılanın 10×10’luk kalan alan içerisinde hareketi sağlanmalıdır.
  • Tahtanın içerisini ise, . nokta şeklinde yılanının hareket noktalarını temsil etmektedir.
  • Bu tahtada * işareti yılanın yem noktasını, X işareti ise yılanın başlangıç noktasını temsil etmektedir. Yılanın başlangıç noktası sabittir. Birinci satır ikinci sütundan başlar.
  • Yem * sürekli her oyunda rastgele bir yere konulmalıdır. Rastgele sayı üreterek tahta içerisinde kalması sağlanmalıdır. Yemin yeri sabit değildir, her oyun başlangıcında tahta içerisinde değişken bir yerdedir. Kullanıcı oyunu bitirip ya da başarısız olup tekrar oynamak istediğinde yem başka rastgele bir yere konulmalıdır.
  • Bu oyunda yılan dört yönde hareket etmektedir, çapraz hareket etmemektedir.
  • Yılan, büyümeyen cinstendir, yılanın büyüme durumunu düşünmeyiniz. Yeme ulaşması halinde oyunu tamamlamaktadır.
  • Yılanın dört yönde hareketi wasd tuşları ile sağlanarak yapılmalıdır. Her tuş hareketi sadece 1 adım atmasını sağlamalıdır. (Her adımda kullanıcı wasd tuşlarından birine basıp enter tuşuna basabilir)
  • Yılanın yeme ulaşması oyun kontrolü ile sağlanmalıdır, yeme 2 dakika içerisinde ulaşmamız halinde “Oyun başarılı bir şekilde tamamlandı” aksi takdirde “Oyun bitti, başarısız” mesajı ekrana verilmelidir.
  • Kullanıcı Q ya da q tuşuna basana kadar oyun tekrar tekrar oynanabilmelidir.
  • Kullanıcının oyun içerisinde 3 hakkı mevcuttur, duvara değmesi durumunda bu hakkından düşmelidir.
  • Oyuna her başlandığında oyuncunun 3 hakkı ve toplam 2 dk süresi olduğunu unutmayınız.
  • Ödevi iki boyutlu dizi 12×12 boyutunda olacak şekilde gerçekleyiniz. Tahta boyutu 12×12 olduğundan, ödevde tahta için tek boyutlu bir den fazla diziler kullanmayınız. Bir diğer ifade ile iki boyutlu tek dizi ile gerçekleyiniz.
  • İki boyutlu dizi kullanmadan gerçekleştirilen ödevler başarılı kabul edilmeyecektir. İki boyutlu diziyi int tahta[12][12] şeklinde sayı dizisi şeklinde tutunuz.

C Yılan Oyunu Yapımı:

/*
Kodlayan: Emirhan Bülbül
Web site: www.emirhanbulbul.com
C Programlama Örnekleri
C İle Basit Yılan Oyunu
*/


#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>
#include <locale.h> 
#include <time.h>
//Global değişkenler
int hak=3; //Oyundaki hakkımız.
long int gecenzaman=0; //İlk zamanı almak için kullandığım değişken.

int main() {
	setlocale(LC_ALL, "Turkish");
	 
 	if(gecenzaman==0){ 
    	gecenzaman = (long int)time(NULL); //Şuanki zamanı alıyoruz
	} 
	 
	
	int satir,sutun; //Oyun tahtasının satır ve sütun 
	int yilansatir=1; //Yilanın satırı
	int yilansutun=2; //Yılanın sütunu
	int yemsatir; // Yemin satırı
	int yemsutun; // Yemin sütunu
	char yon; // Yılanı hareket ettirmek için kullandığım değişken.
	char yon2; // Oyunu tekrar oynamak ister misiniz ? E/H için kullandığım değişken.
	char yon3; // Oyunu kazandıktan sonra E/H kullandığım değişken.
	char yon4;
	
	srand ( time(NULL) ); // Her açılışta farklı sayı üretmek için kullanılan kod.
	yemsatir=1+rand()%10; //Yemin satırını rastgele belirliyoruz. 1<satır<10
	yemsutun=1+rand()%10; // Yemin sütununu rastgele belirliyoruz.1<sütun<10
	char *tahta[12][12]; //Oyun tahtasının dizisi.
	
	printf("Yılan oyununa hoş geldiniz, hareket için wasd tuşlarini kullanınız.\n");
while(1){
		long int gecenzaman2=((long int)time(NULL)); //Döngü her döndüğünde anlık zamanı gecenzaman2'ye aktaracak.
		for(satir=0;satir<12;satir++)
		{
		 	for(sutun=0;sutun<12;sutun++){ if(satir == 0 || satir == 11) tahta[satir][sutun] = "-"; else if(sutun == 0 || sutun == 11) tahta[satir][sutun] = "|"; else tahta[satir][sutun] = "."; tahta[yilansatir][yilansutun] = "X"; tahta[yemsatir][yemsutun] = "*"; printf("%s", tahta[satir][sutun]); } printf("\n"); } yon=getch(); switch(yon){ case 's': yilansatir+=1; break; case 'S': yilansatir+=1; break; case 'w': yilansatir-=1; break; case 'W': yilansatir-=1; break; case 'a': yilansutun-=1; break; case 'A': yilansutun-=1; break; case 'd': yilansutun+=1; break; case 'D': yilansutun+=1; break; case 'q': printf("Oyunu kapattınız :("); return 0; break; case 'Q': printf("Oyunu kapattınız :("); return 0; break; } // süre dolma durumu if((gecenzaman2-gecenzaman)>119){
								system("CLS");
								printf("Size verilen sürede oyunu tamamlayamadınız!!!\n\n");
								printf("Tekrar oynamak ister misiniz? E/H\n\n");
					yon2: //Etiket			
					yon2=getch();
					switch(yon2){
						case 'E':
							system("CLS");
							gecenzaman=0;
							gecenzaman2=0;
							return main();
						break;
						case 'e':
							system("CLS");
							gecenzaman=0;
							gecenzaman2=0;
							return main();
						break;
							case 'H':
							return 0;
						break;
						case 'h':
							return 0;
						break;
						} //Swich son
							if("yon2!='E','e','H','h'"){
								goto yon2;
							}
								
						}
						
			// Oyunu kazanma durumu
			if(yilansatir==yemsatir&&yilansutun==yemsutun){
				printf("%c","X");
			system("CLS");
			printf("Tebrikler Kazandınız!!!\n\n");
			printf("Tekrar oynamak ister misiniz? E/H\n\n");
			
			yon3: //Etiket
			yon3=getch();
					switch(yon3){
						case 'E':
							system("CLS");
							gecenzaman=0;
							gecenzaman2=0;
							return main();
						break;
						case 'e':
							system("CLS");
							gecenzaman=0;
							gecenzaman2=0;
							return main();
						break;
							case 'H':
							return 0;
						break;
						case 'h':
							return 0;
						break;
						}
							if("yon3!='E','e','H','h'"){
									goto yon3;
								}
			
			hak=3; //Hakkı tekrar 3 yapıyoruz.
			//Zamanları sıfırlıyoruz.
			gecenzaman=0;
			gecenzaman2=0; 
			return main();
			
		
		}
		
			//Duvara carpma durumu
			if((yilansatir==1,2,3,4,5,6,7,8,9&&yilansutun==11)||(yilansatir==1,2,3,4,5,6,7,8,9&&yilansutun==0)||(yilansatir==0||yilansatir==11)){
		
		    	if(--hak>0){ 
		    	system("CLS");
		    	printf("Duvara carptınız!!! %d hakkınız kaldı.\n",hak);
		    	//Zamanları sıfırlıyoruz.
		    	gecenzaman=0; 
				gecenzaman2=0;
		    	return main();
			}else{
						system("CLS");
		    	printf("Başarısız üç hakkınızı da tamamladınız!\n\n");
		    	printf("Tekrar oynamak ister misiniz? E/H\n\n");
		    	hak=3;
		    yon4: //Etiket
			yon4=getch();
					switch(yon4){
						case 'E':
							system("CLS");
							gecenzaman=0;
							gecenzaman2=0;
							return main();
						break;
						case 'e':
							system("CLS");
							gecenzaman=0;
							gecenzaman2=0;
							return main();
						break;
							case 'H':
							return 0;
						break;
						case 'h':
							return 0;
						break;
						}
							if("yon4!='E','e','H','h'"){
									goto yon3;
								}
		    	
		    	
				return main();						
			}
				
				
				
							}
							
			 system("CLS");
				printf("Yılan oyununa hoş geldiniz, hareket için wasd tuşlarini kullanınız.\n");
				
	} //while son
	

}


Ahali ne demiş ?

Etiketler

, , , , , ,
   

Ben Kimim ?

Bilgi Ben Emirhan. Burası da benim kişisel mecram. Epeydir web sitesi işleriyle uğraşıyorum... Her neyse bu kadar bilgi yeter. Devamı için tam da şu yandaki butona tıkla. Devamı...
Bağlantılar: İmaj Bet Safir Bet Adres,
porno porno izle

Neler Biliyorum ?

WordPress 60% Complete
C/C++ 95% Complete
HTML 80% Complete
CSS 80% Complete

Copyright © 2014 Tüm hakları tarafımca saklanmaktadır.