Konuyu görüntüle
IUCODERS FORUM > Duyurular > Okul ile ilgili > amiral batt?
Yazar
errorist


avatar
istanbul
Kayıt: 20.10.2006
31.12.2006-23:53 #13138
arkadaşlar şu amiral battı oyununda seçim yapmak için (örn: a15, b5) kullanılacak kodlar nasıl olmalı ,bi arkadaşımız yardımcı olabilirmi.





Yazar
demeer


avatar

banlandı
Kayıt: 26.11.2006
01.01.2007-10:55 #13139
ekrandan girilen karakterlerin ascii karşılıkları il işlem yapacaksın
mesela A için 65, 1 için 49
inşallah bi fikir edinmişsindir

bide girilen metni karakterlerine ayırman gerekiyo
bunun içinde dizi kulanabilirsin







get out of my site
Yazar
kellad


avatar
istanbul
Kayıt: 21.01.2006
01.01.2007-12:24 #13141
Ben olsam a15 şeklindeki metinden iki ayrı sayı üreten bir fonksion yazardım. İlk harf mutlaka 1 tane olduğu için önce bu ilk harfin sayı karşılığını üretirim. A için 0, B için 1 vs. Kalan kısımdaki metinden de bir sayı değeri üretip bu iki sayıyı sonuç olarak döndürürüm. Ayrıntısı size kalmış.







Decompiling the code of universe.
Listening the cosmic background radiation.
Swimming in Inter Stellar Medium.
Yazar
errorist


avatar
istanbul
Kayıt: 20.10.2006
01.01.2007-18:17 #13144
yazdığım metni ayrı yarı alabilsem mesela a15 a,1,5 şeklinde ayırabilsem sorun kalmicak.bunu yapan fonksiyonu bulamadım.praying





Yazar
aliolci


avatar
en dipten taa derind
Kayıt: 19.01.2006
01.01.2007-20:40 #13146
#include<stdio.h>

main()
{
char dizi[4];

gets(dizi);

}


dersen 4 uzunluunda bir dizi yaratisr ve ekrana yazdiin 4 karakterlik bi stringi otonom olarak dizinin her bir elemanine atar orn

dizi

dizi[0]="d" dizi[1]="i" dizi[2]="z" dizi[3]="i"

şeklinde olur





Cant you see the writing on the wall?
"die young gonna die young"
So! Live for today
Tomorrow never comes..

Yazar
muammeryigit


avatar
istanbul
Kayıt: 04.03.2006
02.01.2007-20:18 #13161
errorist yazdi
 
yazdığım metni ayrı yarı alabilsem mesela a15 a,1,5 şeklinde ayırabilsem sorun kalmicak.bunu yapan fonksiyonu bulamadım.praying

şöyle bişey kullanabilirsin (ben kullandım oradan biliyorumlaughing)
#include<stdio.h>
int main(){
char a[10] ; //burada dizi boyutu sana kalmış 3'ten büyük her boyut geçerli olacaktır

scanf("%s",a); //ekrandan girilen veriler diziye aktarılıcak

return 0;
}

ör;
A15
gibi bir giriş yapılırsa dizinin ilk elemanı yani a[0] = 'A' ikinci elemanı a[1] = '1' a[2] = '5'
olur.
hata oluşmasını önlemek için girişleri kontrol etmende yarar var.
mesala;
kullanıcı aaa
gibi bir giriş yaparsa buda diziye atılacak bu sebepten dizinin ilk elemanını char türden olup olmadığını isalpha(a[0]) gibi bir kontrolle bulabilirsin
aynı şekilde dizinin 2.ve 3. elemanınnıda sayı olması gerekiyor onlar içinde
isdigit(a[1])
ve
isdigit(a[2])
gibi kontroller kullanırsan daha iyi olur .


fazla uzattım herhalde neyse umarım yardımcı olabilmişimdir.





Yazar
ilci08


avatar

Kayıt: 12.08.2006
06.01.2007-15:40 #13287
arkadaşlar benim amiral battı da bi türlü halledemediğim bi sorun var
gemileri yerleştirirken gemi yerleştirme testi yapıyorum...test çalışıyor fakat ...genede gemileri yerleştirmeye devam ediyor..şimdiden ilgilenenlere teşekkür ederim...



#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <conio.h>
int main (void)
{
    int koordinat[16][16]={0}; 
    int noktaSatir;
    int noktaSutun;
    int test=1;
    int MBOYUT=2;
    int yatay;
    
   
   int mayinTaramaGemisi=0;
   	int i;
   	int j;
   	int sayi;
   	
    srand(time(NULL));
for(;mayinTaramaGemisi<4;)
  
   {
             
  
          
          if(mayinTaramaGemisi != 0)
          {
	        
                noktaSutun=rand()%15;
                noktaSatir=rand()%16;
               int a=noktaSatir-1;
		         int b=noktaSutun-1;
		              if(a<0)
		               a=0;
                                           if(b<0)
		         b=0;
		                     int c=noktaSatir+1;
                           int d=noktaSutun+MBOYUT;
                           if(c>15)
                           c=15;
                           if(d>15)
                           d=15;
		                         
		                            for (a; a<= c; a++)
		                            {
		                           for (b; b<= d; b++)
		                       { 
                                 if (koordinat[a][b]!=0)
                                 {
		                       
                                                    test=0;
                                                                                               }
                                                    
                                                    
                                                           }                      
                                                      if (koordinat[a][b]!=0)
                                                      {
                                                      test=0;
                                                
                                                   } 
                                                      }                                                            
                                                      
                                                      
                                                      
           
          
             if (test==1)//gemi yoksa önceden yerleştirilen; 1 gonderiri geriye*/
		         {
                   i=noktaSutun;
		            	for(i; i<noktaSutun+MBOYUT; i++)
		            	{
			            	koordinat[noktaSatir][i]=2;//2 sayisi  ascii de 50 ye denk geliyor
                         }
			     mayinTaramaGemisi++;
			     
              }
       			
		         
                 
            
    }getch();
}
            for (i=0; i<16; i++)
            {
            for (j=0; j<16; j++)
            {
            printf("%d",koordinat[i][j]);
            }
            printf("
");
            }
            
            

            
            return 0;
}






Yazar
tatanga


avatar

Kayıt: 13.10.2006
06.01.2007-17:44 #13295
int main (void) 
{ 
	int koordinat[16][16]={0}; 
	int noktaSatir; 
	int noktaSutun; 
	int test=1; 
	int MBOYUT=2; 
	int yatay; 
	int mayinTaramaGemisi=0; 
	int i; 
	int j; 
	int sayi;
	
	srand(time(NULL)); 
	 
	for(;mayinTaramaGemisi<4;) 	
	{ 		
		//if(mayinTaramaGemisi != 0) 
		//{ 
			test=1;
			noktaSutun=rand()%15; 
			noktaSatir=rand()%16; 
			int a=noktaSatir-1; 
			int b=noktaSutun-1; 
			if(a<0) {
				a=0; 
				noktaSatir=1;
			}
			if(b<0) {
				b=0; 
				noktaSutun=1;
			}
			int c=noktaSatir+1; 
			int d=b+MBOYUT; 
			if(c>15) {
				c=15; 
				a=13;
			}
			if(d>15) {
				d=15; 
				b=12;
			}
			noktaSatir=a;
			noktaSutun=b;
			for (a; a< c; a++) 
			{ 
				for (b; b< d; b++) 
				{ 
					if (koordinat[a][b]!=0) 
					{ 
						test=0; 
						break;
					} 
				} 
				/*if (koordinat[a][b]!=0) 
				{ 
					test=0; 
				} */
			} 
			if (test==1)//gemi yoksa önceden yerleştirilen; 1 gonderiri geriye 
			{ 
				i=noktaSutun; 
				for(i; i<noktaSutun+MBOYUT; i++) 
				{ 
					koordinat[noktaSatir][i]=2;//2 sayisi ascii de 50 ye denk geliyor 
				} 
				mayinTaramaGemisi++; 
			} 
		//}
		//getch();
	} 
	for (i=0; i<16; i++) 
	{ 
		for (j=0; j<16; j++) 
		{ 
			printf("%d",koordinat[i][j]); 
		} 
		printf("
"); 
	} 
	getch();
return 0; 
} 


ilk for içindeki if(mayinTaramaGemisi != 0) sonsuz döngü yapıyor
test değerini ilk for içinde de 1'e eşitlemen gerekiyor yoksa eski değerini kullanır ve bu hataya neden olabilir. kontrol ettiğin ve gemileri yerleştirdiğin koordinatlar da uyuşmuyor.

bu projeden başka pointer ile ilgili 2. bi proje verilecekti, vazgeçildi mi? hatta bu amirali ne zaman vercez, sunacakmıyız, final hangi konulardan, yazarsan sevinirim





Yazar
orhan


avatar
istanbul
admin
Kayıt: 17.11.2005
06.01.2007-18:00 #13296
kodunuzu buraya yazarken code taglarını kullanın. sayfanın uzamasını engellemiş olursunuz.





N/A
Yazar
aliozkn


avatar
Manisa
Kayıt: 13.04.2006
06.01.2007-18:55 #13300
		vharf=vurus[0]-65; //satir koordinatı

		for(i=0;i<4;i++)
		vurus[i]=vurus[i+1];

		vsayi=atoi(vurus)-1; //sütun koordinatı

Ben böyle yapmıştım.









Yazar
ilci08


avatar

Kayıt: 12.08.2006
06.01.2007-19:11 #13303
ikinici proje verildi ..fakat ne olduğunu incelemedim ..sunumlar da olacak diye biliyorum...ama na zaman kadar o konuda tam bi fikrim yok.. bu arada yardım için tsk...





Del.icio.us
Digg
Facebook
Furl
Google
Blink
Simpy
Spurl
Y! MyWeb