Merhaba, Ziyaretçi. Lütfen giriş yapın veya üye olun.

Kullanıcı adınızı, parolanızı ve aktif kalma süresini giriniz

  Gelişmiş Arama
insanın içinde varsa, commodore.gen.tr açığa çıkarır bunu.. bir nevi retro olaylarının dolunayıyız.(Arda)
commodore.gen.trCommodoreCommodore Yazılımtic- tac- toe oyunu açıklamalı.
Sayfa: [1]   Aşağı git
Yazdır
Gönderen Konu: tic- tac- toe oyunu açıklamalı.  (Okunma Sayısı 15436 defa)
0 Üye ve 1 Ziyaretçi konuyu incelemekte.
posetcat
Üye
**
Mesaj Sayısı: 11


Üyelik Bilgileri
« : Haziran 09, 2016, 20:22:39 ÖS »

internette tic tac toe kadar basit bir oyunun kazanma, oynama algoritmasını türkçe bulamayınca günümüz bilgisayar mühendislerinin (öğrencilerinin) uğraştığı, bulduğu çözümleri inceledim. Gördüm ki, ne algoritması, oyunu aynı ekrana düzenli bir şekilde basıp, ekran tasarımını dahi yapamayan, kazanmayı anlamak için tüm şartları (ki allahtan bu oyunda az, ya şartlar değiştirilseydi) if then lerle kontrol eden, bilgisayarın kazanması için gereken şartları araştırmayan oyunu incelemeyen, koskoca yazılım ortamında kb larca hafıza harcayıp bilgisayara rastgele hamle yaptıran onlarca birbirine benzeyen programlar gördüm.

Madem durum bu ben çok iyi bir bilgisayar programcısı değilim ama oturup yaklaşık 30kb'lık basic ortamında düşünen ve rakip insanı yenmek için uğraşan kod yazmışlığım olduğundan bilgim dahilinde ben bu programı basic ile yazacağım. c, c++, c#, java, pyton, d gibi sağlam dillerle, o kadar kolay bir programlama ortamlarında kasan kardeşlerimize, bilgisayarların algoritma dili olan basic (yapısal olursa daha iyidir) ile yazayım da aleme katkım olsun.

bence eski zamanların oyun kod yazımında çok büyük akıl, düşünme ve zeka bulunmaktadır. Bilgisayarın bu kadar hafızası ve hızının olmadığı günlerde yapılan matematik işlemlerin hızlanması, doğru sonuca yaklaşımlar geliştirmek biz programcıların ödevi idi. O zamanlarda bilgisayarın, makine özelliklerinden yararlanmak, atraksiyonları zeka ile birleştirmek gerekli idi. yazılan programın, alt rutinin hafızada az yer kaplaması, hızlı olması gerekli idi.

Uzun lafın kısası kardeşim internette ağzına kadar ingilizce algoritma ve programlama temelleri yazıları, oyun incelemeleri ile doluyken bende kasarım, nasıl olsa esnafım (zaman gani -işler kesat yani), fareyi elimden bırakıp parmaklarımı klavyeye gömüyor ve bildiğim kadarıyla, yapabildiğim kadarıyla bu başlık altında sırayla kafama göre bir sırayla oyun ve program kodu inceleyeceğim.

Aslında labirent programı gördüm bir arkadaşımız yazmış. düşüncesi bile güzel ama labirent algoritmanın en temellerindendir mesela.. neyse bu taşı yakında atacam arkadaşıma ama düşmanlık içermesin diye tic-tac toe, veya sos veya xox oyunu ile başlayalım.

neyse serzeniş bitti, şimdi yakarış bölümüne geçelim. (bağlama çaldığımızı düşünürsek).{not txt dosyaya yazıyorum, iftarda yaklaştı, iftardan sonra karnım doyunca vazgeçmeyeyim diye duyurusunu şimdi gerisini arkası yarın olarak yazıyorum.., top mu patladı.. daha yarım saat var.)
Logged
ilkerficicilar
Uzman
*****
Mesaj Sayısı: 1.122


Üyelik Bilgileri WWW
« Yanıtla #1 : Haziran 09, 2016, 21:38:49 ÖS »

Güzel fikir. Hatta aslında yapay sinir ağı kullanımına da uygun bu oyun.
Logged

http://cbm.ficicilar.name.tr/ - Commodore Hacking
i_r_on
Uzman
*****
Mesaj Sayısı: 2.873



Üyelik Bilgileri WWW
« Yanıtla #2 : Haziran 09, 2016, 23:06:41 ÖS »

1-2 sene önce wikipedia'daki stratejilere bakarak yazmıştım. Hatta bir kaç değişik stratejiyi birbirleri ile kapıştırmıştım yanlış hatırlamıyorsam.

c#'ta tabii, basit te olsa c64 basic yahut assembly'de girişmedim böyle bir işe

Bir ara aklımın ucundan c64'e neural network takviyesi şeklinde bir fikir de geçmedi değil gerçi. Biz en iyisi elimizdeki işlere bakalım
Logged

Every imagination is one's self reflection but not every self reflection is imagination. <I.R.on - 2001>

twitter | blog
posetcat
Üye
**
Mesaj Sayısı: 11


Üyelik Bilgileri
« Yanıtla #3 : Haziran 09, 2016, 23:30:03 ÖS »

Bir bilgisayar dersi hocasının öğrencilerine bir sürü algoritma dersinden sonra bana tictac toe oyununu yazın getirin dediğinde eğer öğrenci bana aşağıdaki kodu getirirse, ona derli toplu bir kod yazdığı için teşşekkür eder, amacının sadece sınıf geçmek olduğu için ve kafasını kullanmadığı (-ki zeka ve akıllı olduğu ösym'ce doğrulandığı, yada hiç olmazsa çalışkan olduğu belli olan bir bölümde okuduğu) için aşağıdaki kodlar yazar kardeşlerimize sıfır vermesemde, sınıfmı zor geçerler. İnsan Akıllı bir varlıktır. akılını kullanmadan Üniversitede ha ha ha hi hi hi ile vakit geçirmek isteyen, karı kız mevzularını girip saçmalıklar arasında hayat tüketen küçüklerimin kulaklarını buradan doktoralı, mahallenin esnaf amcası olarak çekerim.

Aşağıdaki örnekler sınıfta garantili kalmak amacıyla, aptallara kod olsun torba dolsun diye yazılmış kodlardır.

Kod:
bool isaret = true;
        int isaret_sayisi = 0;
        private void button_click(object sender, EventArgs e)
        {
            Button b = (Button)sender;
            if (isaret)
            {
                b.Text = "X";
                b.BackColor = Color.Yellow;
            }
            else
            {//www.bilisimogretmeni.com
                b.Text = "O";
                b.BackColor = Color.Red;
            }
            isaret = !isaret;
            b.Enabled = false;
            isaret_sayisi++;
            kazanan();
          }
        private void kazanan()
        {
           
           // [b]KAZANANI BU ŞEKİLDE ARAYAN BİLGİSAYAR PROGRAMCISI DEĞİLDİR. LAAA HAVLE ÇEKİYORUM.[/b]

bool kazananvarmi = false;
            //yatay kontrol
            if ((A1.Text == A2.Text) && (A2.Text == A3.Text) &&(!A1.Enabled))
                kazananvarmi = true;
            if ((B1.Text == B2.Text) && (B2.Text == B3.Text) && (!B1.Enabled))
                kazananvarmi = true;
            if ((C1.Text == C2.Text) && (C2.Text == C3.Text) && (!C1.Enabled))
                kazananvarmi = true;
            //dikey kontrol
            else if ((A1.Text == B1.Text) && (B1.Text == C1.Text) && (!A1.Enabled))
                kazananvarmi = true;
            if ((A2.Text == B2.Text) && (B2.Text == C2.Text) && (!A2.Enabled))
                kazananvarmi = true;
            if ((A3.Text == B3.Text) && (B3.Text == C3.Text) && (!A3.Enabled))
                kazananvarmi = true;
           //çapraz kontrol [url]www.bilisimogretmeni.com[/url]
            else if ((A1.Text == B2.Text) && (B2.Text == C3.Text) && (!A1.Enabled))
                kazananvarmi = true;
            if ((A3.Text == B2.Text) && (B2.Text == C1.Text) && (!C1.Enabled))
                kazananvarmi = true;
            if (kazananvarmi)
            {
                butonlaraftif();
                string kimkazandi = "";
                if (isaret)
                    kimkazandi = "O";
                else
                    kimkazandi = "X";
                MessageBox.Show(kimkazandi + " Kazandı", "Oyun Bitti");
            }
            else
            {//www.bilisimogretmeni.com
                if(isaret_sayisi==9)
                    MessageBox.Show(" Berabere", "Oyun Bitti");
            }       
        }
        private void butonlaraftif()
        {
            try
            {
                foreach (Control c in Controls)
                {
                    Button b = (Button)c;
                    b.Enabled = false;
                }
            }
            catch { }
         }

Kod:
2. ÖRNEK  ALAHTAN DOKUZ ADIM OLDUĞUNU BULMUŞ, MATRİSİDDE KURMUŞ ANCAK RANDOM HAMLE DÜŞÜNMEK ÇOK AYIP.
Kod:
#include <stdio.h>
#include <stdlib.h>

char kullanici_giris(char matris[][3]){
int sat,sut;
printf("Oynamak istediginiz satir/sutun giriniz :\n");
scanf("%d%d",&sat,&sut);

while(sat>2||sat<0||sut<0||sut>2||matris[sat][sut]!='-'){
 printf("Girdiginiz aralik gecersiz tekrar girin : \n");
 scanf("%d%d\n",&sat,&sut);
 scanf("%d%d\n",&sat,&sut);
}

matris[sat][sut]='x';//doğru değer girilmiştir, atamayı yapıyoruz
return matris[3][3];//matrisimizi döndürüyoruz
}

char bilgisayar_giris(char matris[][3]){
int sat,sut;
sat=rand()%3;//satır için ilk random atamyı yapıyoruz
sut=rand()%3;// sutun için ilk randım atamayı yapıyoruz
while(matris[sat][sut]!='-'){//adres doluysa yeniden random atama yapmalıyız
sat=rand()%3;
sut=rand()%3;
}
printf("\nBilgisayarin hamle yaptigi yer\n");
printf("Satir: %d \n",sat);
printf("Sutun: %d \n\n",sut);
matris[sat][sut]='o';//boş yer bulunmuştur, atamayı yapıyoruz
return matris[3][3];//matrisimizi döndürüyoruz
}

int main() {
 int i,j,k,sat,sut;//değişkenlerimiz
 srand(time(NULL));// [b]random[/b] fonksiyonun her seferinde
                               //farklı değer vermesi için gerekli kod
 char matris[3][3]={{'-','-','-'},
      {'-','-','-'},
             {'-','-','-'}};//ilklendirme
printf("  0  1  2\n");
for(i=0;i<3;i++){
 printf("%d",i);
 for(j=0;j<3;j++){
  printf(" %c ",matris[i][j]);
 }
 printf("\n");
}//ekran göstergesi

 for(k=0;k<9;k++){//maksimum hamle sayısı 9 olduğundan 9'a kadar döndürürüz
 
  if(k%2==0){//kullanıcının başlaması için mod kullanıyoruz
        kullanici_giris(matris);//kullanıcıdan değer isteme fonksiyonu
     
  }
  else{
  //system("CLS");//ekran temizleyicisi
  bilgisayar_giris(matris);//blgsyrın boş yer bulması ve
      //atama yapması için kullanılan foksiyon
      printf("  0  1  2\n");
       for(i=0;i<3;i++){
          printf("%d",i);
           for(j=0;j<3;j++){
                               printf(" %c ",matris[i][j]);
            }
       printf("\n");
       }//ekran göstergesi
    }
 if(k>3){//oyunun kimin kazandığını ya da oyunun berabere bitip bitmediğini
                                      //kontrol ettiğimiz if dizimleri [b]VE LAHAVLE VELA COPY PASTE[/b]
 
  if(matris[0][0]==matris[0][1]&&matris[0][1]==matris[0][2]){
   printf("OYUN BITTI!!");
   if(matris[0][0]=='x'){
    printf("TEBRIKLER KAZANDINIZ!!");
    break;
   }
   else{
    printf("MALESEF KAYBETTINIZ");
    break;
   }   
  }
  if(matris[1][0]==matris[1][1]&&matris[1][1]==matris[1][2]){
   printf("OYUN BITTI!!");
   if(matris[1][0]=='x'){
    printf("TEBRIKLER KAZANDINIZ!!");
    break;
   }
   else{
    printf("MALESEF KAYBETTINIZ");
    break;
   }
  }
  if(matris[2][0]==matris[2][1]&&matris[2][1]==matris[2][2]){
   printf("OYUN BITTI!!");
   if(matris[2][0]=='x'){
    printf("TEBRIKLER KAZANDINIZ!!");
    break;
   }
   else{
    printf("MALESEF KAYBETTINIZ");
    break;
   }
  }
  if(matris[0][0]==matris[1][0]&&matris[1][0]==matris[2][0]){
   printf("OYUN BITTI!!");
   if(matris[0][0]=='x'){
    printf("TEBRIKLER KAZANDINIZ!!");
    break;
   }
   else{
    printf("MALESEF KAYBETTINIZ");
    break;
   }
  }
  if(matris[0][1]==matris[1][1]&&matris[1][1]==matris[2][1]){
   printf("OYUN BITTI!!");
   if(matris[0][1]=='x'){
    printf("TEBRIKLER KAZANDINIZ!!");
    break;
   }
   else{
    printf("MALESEF KAYBETTINIZ");
    break;
   }
  }
  if(matris[0][2]==matris[1][2]&&matris[1][2]==matris[2][2]){
   printf("OYUN BITTI!!");
   if(matris[0][2]=='x'){
    printf("TEBRIKLER KAZANDINIZ!!");
    break;
   }
   else{
    printf("MALESEF KAYBETTINIZ");
    break;
   }
  }
  if(matris[0][0]==matris[1][1]&&matris[1][1]==matris[2][2]){
   printf("OYUN BITTI!!");
   if(matris[0][0]=='x'){
    printf("TEBRIKLER KAZANDINIZ!!");
    break;
   }
   else{
    printf("MALESEF KAYBETTINIZ");
    break;
   }
  }
  if(matris[2][0]==matris[1][1]&&matris[1][1]==matris[0][2]){
   printf("OYUN BITTI!!");
   if(matris[2][0]=='x'){
    printf("TEBRIKLER KAZANDINIZ!!");
    break;
   }
   else{
    printf("MALESEF KAYBETTINIZ");
    break;
   }
  }
  if(k==8){
   printf("OYUN BERABERE BITTI!!");
   break;
  }
 
 }
}
 return 0;
}
HEP Mİ KÖTÜ GÜZEL ÖRNEKLERDE VAR TABİ.

tic tac toe oyunu, aslında  minimax algoritması ve ağaç yapısı kurma ve düğüm çözme işlemlerini içerir. Peki bunlar nedir?
internetten kısa bir arama sonucu güzel bir tarif buldum. Aynen aktarıyorum. "Altüst adı da verilen bu yöntem (minimaksta denilebiliyor) zeka (mantık) oyunlarında sıklıkla kullanılan bir yapay zeka tekniğidir. Bu yöntemin kullanılabilmesi için aşağıdaki şartların sağlanması gerekmektedir:
a) İki kişilik olmalıdır
b) Sırayla oynanmalıdır. (Bir 1. oyuncu bir 2. oyuncu şeklinde)
c) Oyun durumu ilgili bilgiyle birlikte tahta olarak temsil edilebilmelidir.
d) İki oyuncuda sonraki olası hamlelerin hepsi hakkında bilgiye sahip olmalıdır. Buna mükemmel bilgi (“perfect knowledge”) denilmektedir. Örneğin Poker bu duruma uymaz. Rakibimizin elindeki kartları bilemeyiz.
e) Oyun hamleleri rasgele olmamalıdır. (Zar oyunları dışarıda kalmaktadır)
f) Oyunlar sonlu olmalıdır. Bir şekilde bitiş durumu olmalıdır. (kazanma, kaybetme, berabere durumunun şartları belli olmalıdır.)
Minimax yöntemi yukarıdaki şartları sağlayan oyunlar için bir arama yöntemidir. Bu arama oyun ağacı üzerinde en uygun hamlenin bulunmasına yönelik bir aramadır.
Neki bu oyun ağacı? Oyun ağacı oyunun hamlelerinin bir ağaç dalı gibi hamle hamle çoğalarak geliştirilmesidir. biz bu ağaçta  ilk hamlemiz ile bir kola geçer ve o koldaki olası hamlelerden rakibimizle beraber oyuna devam ederiz. Yani eğer oyunun hamlelerini sırayla bir yere kaydedip bunlara puan vererek karar almaya çalışırız.

Bu puanda amacımız minimax amacına göre olur. dahada açmak için hemen örnek verelim. Hepimizin az çok hatırladığı Akıl oyunları filmindeki kız tavlama kuramının oyun teorisinin de açıklamasıdır.

kısa ve net özü,  benim kazancımın en fazla olduğu durum, rakibimin kazancının en az olduğu durumdur. Lakin rakibim aptal değilde benim kadar dişli ise ne olacak? o zaman ben onun kazancının, benim kazancımdan daima en ez olduğu hamleleri oynarsam toplamda ben kazançlı çıkarım.

işte bu amaçla bir oyun ağacı kurar, bu ağaçtaki hamlelerde benim kazancımı en fazla yapacak ama rakibimin de kendi amacı beni yenmek olduğuna göre kazancı enfazla olan ama bana göre toplamda en az kalan ayun ağacı dallarına  doğru seçim yapmam olacaktır.

eh, kuram az çok anladıkta nasıl kodlayacan derseniz orası mumamma hehehe arkası yarın. (top patladı bi rahatlık geldi sormayın, dükkanda çay yapimde açılayım bari...) en azından ilker beni okuyor.
« Son Düzenleme: Haziran 09, 2016, 23:34:03 ÖS Gönderen: posetcat » Logged
eins
Uzman
*****
Mesaj Sayısı: 1.816


A.K.A. deliMawi


Üyelik Bilgileri
« Yanıtla #4 : Haziran 09, 2016, 23:48:28 ÖS »

Ben de okuyorum. Lisedeyken enformatik olimpiyatları için ilk 20 ye kalıp yaz döneminde ODTU de 15 günlük kampa almışlardı bizi. Türkiye enformatik takımını seçmek ve uluslararası yarışma için yoğun yatılı algoritma kursu görmüştük. Ben o zamanlar çok çömezdim sadece c64 basic ve assembly biliyordum. Ama diğer tüm yarışmacılar c pascal vb kullanıyordu. Problem çözümlerinde istenilen dil kullanılabiliyordu, zorlama yoktu. Tabi yukarıda anlattığınız türden problemlerin çözümü recursion a gelip dayanıyor. Basic te de bu mümkün değil. Velasıl eleme günü geldiğinde iki soru soruldu. Biri klasik a noktasindan b naktasina en kisa veya en cabuk yoldan gitmek icin gecilmesi gereken noktalar yani sehirlerin bulunmasi. Ikinci soru ise n x n boyutlarinda bir saha uzerinde ust uste cizilmis olan bir cok dikdortgenin z boyutundaki siralamasinin bulunmasi idi. Basic ile yazacagim icin bana recursion olmadan ozellikle ilk soruyu cozemeyeceksin denilmisti. Ama ikisini de cozmustum. Basic te recursion yok ama yazilimsal olarak sanal bir yigin olusturup recursion emulasyonu yaomak mumkun...

Size basarilar dilerim. Ilgi ile takip edecegim...
Logged

Doberman ♦ megaOne ♦ HDMI-64 ♦ HDMI-520 ♦ NewSchool
Levent (Lvnt)
Uzman
*****
Mesaj Sayısı: 2.393



Üyelik Bilgileri
« Yanıtla #5 : Haziran 09, 2016, 23:57:18 ÖS »

@posetcat konu ilginç ama algoritmadan çok öğrencileri nasıl iyi iş yapmaya motive ettiğiniz daha çok ilgimi çekti. O kodlara eşdeğer bir iş yaptırabildiğimde öf diyorum bunu da becerebildik.
Logged

Use the brute force, Luke
posetcat
Üye
**
Mesaj Sayısı: 11


Üyelik Bilgileri
« Yanıtla #6 : Haziran 12, 2016, 02:43:24 ÖÖ »

tic-tac-toe gibi oyunlar board yani tahta oyunlarıdır, satranç, dama, tavla, şu çin oyunları gibi oyunlarda bu tip oyunlardandır. tarihin derinliklerinden fışkırmış zeka oyunlarıdır.

oyun nasıl oynanır, kuralları nelerdir?
kısaca yazalım(bilen var, bilmeyen var.) iki oyuncu  yatayda, dikeyde ya da çapraz şekilde üç sembolü arka arkaya getirmeye çalışır.
----
 bir tahta üzerinde sınırlandırılmış bir alanımız vardır
1
2
3
1
2
3
1
2
3

3x3 alan üzerinde bu alana birinci x ikinci o simgesiyle sırayla bir bir lerini engellemeye çalışır.
EKRAN TASARIMI
Güzel bir ekran tasarımı yaparız ama bu tip starateji oyunlarında bence önce oyunun kendisini yazmak gereklidir.
OYUN KURAMI ve YAPAY ZEKA HAREKET PLANI
oyunu kendi kendine bolca ister bilgisayara karşı, ister arkadaşına karşı oynayanlar bilirki oyuna ilk başlamak önemli bir avantajdır. oyunun merkez karesine simgeni koymak önemlidir. ardından köşeleri ele geçirmek, rakip peş peşe iki simge koymuşsa bunu engellemek, gereklidir.

eldeki bilgi ve deneyimle  kurallarımızı alt alta yazalım ve hamla düşünüş sırasını bilgisayara nasıl programlayacağımıza bakalım. tabi önceliklerimizi de düşünerek.

1) eğer bilgisayar kazanma durumunda ise ozaman kazanacak hamleyi yapmalısın
2) eğer oyuncu kazanma durumunda ise, bilgisayar o  durumu bozmalıdır.
3) eğer orta kare boşsa ozaman ortaya yerleş.
4) eger 4 köşeden biri boşsa ozaman birine yerleş.
   -eğer oyuncu bir köşeye yerleşmişse o zaman tam karşısındaki kareye yerleş.
5) eğer tüm köşeleri kaptırmışsan, o zaman kenarlardan boş bir yere yerleş.(aptallığına doyma, anca beraberlik için çalış)

kuracağımız yapay zekamızın oyuna ait kuramını yaptığımıza göre,  bunları nasıl programlarız neye göre karar aldıracağız

PUANLAMA
Böyle board oyunlarında bordu kordinatlarız, yada bordun her karesine bir numara veririz, yada bordun her karesine önemine göre puan veririz. yadaları geçelim sırayla html'in verdiği imkanlar kadar şu tabloları yazalım.

aklıma ilk gelen tablo numaralandırma her hücreye bir numara vermek oldu.
1
2
3
4
5
6
7
8
9

 dim board(9) : dim board(9) as integer

2
1
2
1
3
1
2
1
2

sonra tablo hücrelerini önem sırasına göre puanlamak geldi. yukarıdaki gibi puanladım. sonra kazanma durumunu nasıl anlaya bilirim diye düşünüyordum, aslında başından beri düşünüyorum.

x
.
o
.
x
o
x
o
.

hani olmaz ya böyle saçma bir durumda  her x gördüğüm yere hüçre puanını yazarım, her o gördüğüm yerede hüçre buanını negatif yazarım. sonra yatayda, dikeyde, çaprazlarda toplamına bakarım.

öyle ise şu durumunda x ve o için puanlamamıza bir bakalım
hücre noları   toplam
yatayda
1,2,3   ---> 2+0+(-2) = 0
4,5,6   ---> 0+3+(-1) = 2
7,8,9   ---> 2+(-1)+0 = 1
dikeyde
1,4,7   ---> 2+0+2    = 4
2,5,8   ---> 0+3+(-1) = 2
3,6,9   ---> (-2)+(-1)+0 =-3
çaprazda
1,5,9   ---> 2+3+0 = 5
3,5,7   ---> -2+3+2 = 3

kazanma durumu ihtimali  4 ve 4'den büyükse x için, -4 ve -4'den büyükse O için bulunur.
kesin kazanma durumuda -+5 olunca ( şöyle bir inceleyince mükemmel kare mi yaptım ki diyorum ama içimdede bu çok güzel olmadı diye bir kuşku var)

kuşkularım içimi yerken eski kanıt dizisinin maratonunu izleyeyim dedim. o arada yav 3x3 alanı değişkenlere gömmek yerine pokelerle bir karaktere gömebilirim diyede düşündüm,
sonrada şu şekilde bir puanlama daha geliştirdim.

4742.toplam puan
.4211 hücre puanı
4xxO6 oyun 1. satır
2xOx5oyun 2. satır
1xOO4oyun 3. satır
(ha bu arada html td ve tr yi karıştırmışım ilk tablo dikey çıkmış uğraşamadım düzeltmedim.)
x gördüğümüz yeri 1 O gördüğümüzü 0 kabul edersek
Logged
posetcat
Üye
**
Mesaj Sayısı: 11


Üyelik Bilgileri
« Yanıtla #7 : Haziran 12, 2016, 02:47:53 ÖÖ »

x gördüğümüz yer 1 , O gördüğümüz yer 0 kabul ederek yukarıdan aşağıya, soldan sağa 4, 2,1 olarak ikilik düzende kodladım.

böylece çaprazlarıda yukarıdan aşağıya doğru puanlayabiliriz.

hayırlı geceler.
Logged
Murat Çileli
Üye
****
Mesaj Sayısı: 320



Üyelik Bilgileri WWW
« Yanıtla #8 : Haziran 12, 2016, 19:43:13 ÖS »

Çok teşekkürler. Hiçbir şey anlamadım.
Logged

AmigaMan
Deneyimli
*****
Mesaj Sayısı: 635



Üyelik Bilgileri
« Yanıtla #9 : Haziran 12, 2016, 19:46:54 ÖS »

Çok teşekkürler. Hiçbir şey anlamadım.
buda guzelmiş
Logged

Amiga ölmedi, efsane uyuyor
alemdarr
Üye
**
Mesaj Sayısı: 37



Üyelik Bilgileri
« Yanıtla #10 : Haziran 12, 2016, 19:58:30 ÖS »

Algoritma anlamında konu bulmak zor. İlgiyle takip ediyorum
Logged

flanker.
posetcat
Üye
**
Mesaj Sayısı: 11


Üyelik Bilgileri
« Yanıtla #11 : Haziran 13, 2016, 19:02:22 ÖS »


Persona Non Grata
neden neyi anlayamadın? açıklarmısın hemen farklılaştıralım anlatımımızı
Logged
posetcat
Üye
**
Mesaj Sayısı: 11


Üyelik Bilgileri
« Yanıtla #12 : Haziran 15, 2016, 03:12:04 ÖÖ »

yukarıdaki tabloları derdimi daha kolay anlatmak için kullanmıştım. Ancak gerçekten çok paslanmışım. Konuşma dili gibi Basic ve pascal ile program yazabilirdim, C'den de anlarım. Fakat şu işe başladığımda keşke başlamasaydım da diyorum, beni gerçekten zorluyor. böyle zorlanmaları severim. ingilizcemde paslanmış. cilalamak gerekecek bu arada şöyle bir karar aldım yazıları wordde aktaracağım. resimlerim ve tablolarım daha anlaşılır kılmaya çalışacağım. Örneklerive kodları ise bu gidişle ancak hafta sonuna yetiştirebilirim sanırım. Hatunda dırdıra başlamadan bu işi bir rutine bindirmem gerekli. Kod yazmaya başladım, her düşündüğüm dımı yazıyorum böylece zeki ve akıllı değil sadece beynimi kullandığımı bunuda yaparken korktuğumuda belirtiyorum. bu konuda bir kod parçasını basic'e çevirip ahanda yazdım demek yerine sıfırdan iş nasıl yapılırı göstermek ana hedefim.
Ki böylece ardımızdan gelenlerde yaptığımız her hatada, düştüğümüz her çukurda, burnumuzun sürtüldüğü bu her duvardaki kan izlerini bizim kaşımızı gözümüzü yarmamızı zevkle izlesinler. işin heyecanı burada bence. yapamazak başaramasak af ola.

yazıyı yazarken game of thrones 6. sezon 8. bölümü izledim ve bu sezonun senaryonun asıl sahibi yazarın kitabını zamanında teslim edememesi nedeniyle bu sezonu senaristsler götürüyormuş. Bu sezon tüm sezonların en zevklisi en dolu dolu geçen sezonu bence. stark hanesi için umutların yeşerdiği, lanisterler için (hiç olmazsa bazıları için) üzüldüğümüz bir sezon. tabi buda bana yaşama sevinci ve program yazma çoşkusu getiriyor.
Logged
atariManyagi
Üye
****
Mesaj Sayısı: 379


En Sevdiğim Super Mario Karakteri


Üyelik Bilgileri WWW
« Yanıtla #13 : Kasım 16, 2016, 12:28:39 ÖS »

@posetcat, Bu Oyun Parker Brothers Merlin Similatörü olarak yaptığım oldu... Çok Sağol
Logged

itch.io Sayfam
itch.io
GitHub Adresim
GitHub
Peg Bebek Koleksiyonum
Peg Bebekler
Sayfa: [1]   Yukarı git
Yazdır
Gitmek istediğiniz yer: