Genel görüntüsü yandaki gibi olması planalanan oyunun kodu e.py bağlantısından indirilebilir. Basitçe bir text ed

Benzer belgeler
BM102 BİLGİSAYAR PROGRAMLAMA II LABORATUVAR UYGULAMALARI. 3Hafta

Görsel Programlama - I Uygulamalı Ödevi

İnternet Programcılığı Dersi 2.Dönem Ders Notu

Ulukom Devir İşlemleri

OYUN GELİŞTİRME AŞAMALARI-I

ALGORİTMA VE PROGRAMLAMA I DERS NOTU#8

ALGORİTMA VE PROGRAMLAMA I

BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 9

Ürün Profil ve Yapılandırma Kodu Tanımlama

ALGORİTMA VE PROGRAMLAMA I

INPUTBOX KULLANIMI. Komut Düğmesine uygulanan algoritma örneği

BİLGİSAYAR DESTEKLİ TASARIM II

Ad-Soyad- No: Emine Hatun AVŞAR-Leyla TABAK / OYUN GELİŞTİRME AŞAMALARI-I

Temel Excel Kullanım Bilgisi

LABORATUVAR ÇALIŞMASI 1 - Python a Giriş

Sequence Oyununun Minimaks Algoritması Kullanılarak Tasarlanması ve Geliştirilmesi

Temel Bilgisayar Programlama Final Sınavı Çalışma Notları

Uygulamalar 4 IsMissing Fonksiyonlar ve Alt Programlar Prosedür Parametreleri Public Function f(x,y,optional t, Optional k) End Function 1.

STRİNG DİZİLER(KATARLAR)

Internet Programming II

BİL-142 Bilgisayar Programlama II

Python ile Programlamaya Giriş DERS 9: FONKSİYONLAR DR. HÜSEYİN BAHTİYAR

Yrd. Doç. Dr. Caner ÖZCAN

Seri Takibi Yenilikleri

Python Programlama Dili

Yeni bir proje açarken File New - Web Site diyoruz. Gelen ekranda Visual Basic veya C# seçilebilir. Biz ders kapsamında C# programlama dilini seçtik.

Timer İle arka plan renk değişimi

Bir dizinin boyutları sabittir ve kullanılmadan önce belirlenmelidir. Dizi boyutunu belirlemek için başka bir değişkende kullanabilirsiniz.

BİLGİSAYAR BİLİMİ DERSİ (KUR 1) PYTHON PROGRAMLAMA DİLİ ÇALIŞMA KÂĞIDI - 1

Algoritma ve Programlamaya Giriş

Problem Yaklaşım Temelleri, Algoritma ve Akış Şeması

Döviz tipi ve döviz fiyatı aynı olan kalemlerde kümülasyon desteği,

KOŞUL UYGULAMASINDA YAPILAN YENİLİKLER

BMÜ-101 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ LABORATUARI

GtkD ile Görsel Programlama

Data Structures Lab Güz

BİL BİLGİSAYAR PROGRAMLAMA (JAVA)

AKAT oyununda, kırmızı (birinci oyuncu) ve mavi (ikinci oyuncu) şeklinde adlandırılan 2 oyuncu vardır. Oyun şu şekilde oynanır:

Görsel Programlama 1

Pythonda değişkenlerin türlerini tanımlamaya gerek yoktur

Karakter katarları ile ilgili fonksiyonlar içerir Yerel kayan noktalı sayılar tanımlanır

Ders 4: Diziler (Arrays( Arrays) barisgokce.com

Program ile birlikte 4 adet örnek Excel dosyası ve bu dosyaları transfer etmekte kullanılan örnek dizaynlar verilmektedir.

ZTerminal KULLANMA KILAVUZU. yazılımı. USB Terminal

Dinamik Kodlama. [X] [X] Yeni Fonksiyon

PYTHON PROGRAMLAMA DİLİ

Aynı tipten çok sayıda değişken topluluğudur. X Y Score1 Score2 (0) (1) (2)...

BİL1001 Bilgisayar Bilimlerine Giriş 1

ideal Sistem Tester Kullanım Klavuzu

Final Sınavı Örnek Soruları Güz 2018 Süre: 90 Dakika

OYUN GELİŞTİRME AŞAMALARI (ARAYÜZ TASARIMI)

Akıllı Kod Desteği. Şekil 1

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Başlangıç; Sayfa 1. Sanal pos tanımlandığında üye numarası admin kullanıcı adı parolası ile Garanti Bankasından tarafınıza iletilecektir.

Yapılacak Đşlemler: Koşuyolu, Asmadalı Sk No:29 Kadıköy Tel : Faks: (216)

1/13. Programı kullanmadan önce lütfen indirdiğiniz dosya içerisindeki açıklamaları okuyunuz.

BASİT C PROGRAMLARI Öğr.Gör.Dr. Mahmut YALÇIN

OMNET Ağ Benzetim Yazılımı (Network Simulation Framework) BİL 372 Bilgisayar Ağları. GYTE - Bilgisayar Mühendisliği Bölümü

Telefon Rehberi Uygulaması

SMART Board EĞİTİMLERİ(sürüm:10) 1. Aşama

Dizi nin Önemi. Telefon rehberindeki numaralar, haftanın günleri gibi v.b.

PROGRAMLAMAYA GİRİŞ. Öğr. Gör. Ayhan KOÇ. Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay.

Veri Yapıları Laboratuvarı

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-11 Karakter Diziler. Yrd. Doç. Dr. Ümit ATİLA

1 NEDEN PROGRAMLAMA ÖĞRENMELIYIZ?

EĞİTİMDE BİLGİSAYAR PROGRAMLAMA

ALGORİTMA VE PROGRAMLAMA II

KDV Beyannamesinin ekinde verilen Kısmı Tevkifat Uygulaması Kapsamındaki İşlemlere Ait Bildirim, Muhasebe IV modülünden hazırlanabilir.

Genel Açıklama: Bu çalışmanın kullanıcılarımıza yararlı olmasını temenni ederiz. Saygılarımızla, 22 Kasım 2012 Datasoft Yazılım

ATATÜRK ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BIM 205 GÖRSEL PROGRAMLAMA GÜZ DÖNEMİ ÖDEV-1

D İ Z İ L E R A R R A Y S

ALGORİTMA VE PROGRAMLAMA II

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

PYTHON PROGRAMLAMA DİLİ

YZM YAPAY ZEKA DERS#6: REKABET ORTAMINDA ARAMA

GÖRÜNTÜ İŞLEME MATLAB DERS-4

BMT 101 Algoritma ve Programlama I 7. Hafta. Yük. Müh. Köksal Gündoğdu 1

BLGM BÖLÜM. Problem Çözme Kavramları (Algoritma ve Akış Şemaları)

Kaynak Kodlardan Derleme. Turquaz Muhasebe. Versiyon 0.2. Hüseyin Ergün. 26 Mart 2005

Zaman Ayarlayıcı İşlemler

Dizgiler. C dilinde karakter m şeklinde tek tırnak içerisinde yazılan ifadelerdir. Bu karakterlerin her biri aslında bir tamsayı ile ifade edilir.

DESTEK DOKÜMANI. Ürün : Tiger Enterprise/ Tiger Plus/ Go Plus/Go Bölüm : Kurulum İşlemleri

1. LabVIEW ile Programlama

Personel Net Ödenecek ve Kesinti Entegrasyonunda Yenilik

Programlama Dili Prensipleri. Lab Notları 8 ve 9

Google Search API ile ajax arama

FONKSİYONLAR. Gerçek hayattaki problemlerin çözümü için geliştirilen programlar çok büyük boyutlardadır.

TÜRK DAMASI DAMA PROGRAMI KULLANIM KILAVUZU

E - YENİLİKLER BÜLTENİ

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

ESNEK YAPILANDIRMA UYGULAMASINDA YENİLİKLER

Hafta 12 Karakter Tutan Diziler

C Konsol Giriş Çıkış Fonksiyonları

OYUN GELİŞTİRME AŞAMALARI-I

Fatura Dinamik Kodlama İyileştirmeleri

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-12 Fonksiyonlar. Yrd. Doç. Dr. Ümit ATİLA

MatLab. Mustafa Coşar

Genel Açıklama: Bu çalışmanın kullanıcılarıma yararlı olmasını temenni ederiz. Saygılarımızla, 15 Ekim 2012 Datasoft Yazılım

EAGLE KÜTÜPHANE OLUŞTURMA

HESAP MAKİNASI YAPIMI

Transkript:

Türkiyede SOS olarak bilinen oyun tarihin en eski oyunlarından biridir. Isa dan önce 100 civarında oynanmaya başlandığı düşünülür Nasıl oynandığına gelince bilindiği üzere taraflar sırasıyla seçtikleri işaretleri (x,s veya o ) kareler içine yerleştirirler. Bütün kareler dolduğunda satır veya sütunda yada çaprazda aynı harfleri bir araya getirmeyi başaran taraf kazanmış olur

Genel görüntüsü yandaki gibi olması planalanan oyunun kodu http://inventwithpython.com/tictacto e.py bağlantısından indirilebilir. Basitçe bir text editorü yardımıyla.py uzantılı bilgisayarımıza kayıt ettiğimiz kodu linux için terminale python3.4 tic_tac_toe.py yazarak çalıştırabiliriz. Python Idle kullanmayı sevenler adresdeki kodu idle da yeni dosya oluşturarak (file-> new file ) ve sonrasında bilgisayarda ki F5 tuşuna basarak çalıştırabilirler

Yan tarafta oyunun genel şemasını görmekteyiz Burada onemli olan unsurlardan birisi kodun oynayacakların sırasına göre planlanmış olması yani bilgisayar veya kullanıcı için farklı fonksiyonlar farklı kod akışı dizayn edilmiş olması. Bu durum yazılacak koda yani oyuna özgü bir durumdur.

Burada oyunun bilgisayar açısından nasıl oynanacağına (Algoritmasına) karar verdiğimiz kısımı ele alacağız haliyle buranın ne kadar iyi yazıldığı oyunun zorluğu ve kolaylığına etki edecektir.şimdi srasıyla adımları inceleyelim... Brinci hamle kazanabilecek hamlemiz olup olmadığını kontrol ederek onu aramak. Birinci hamle yoksa karşıdakinin kazanmasını engelliyecek hamleyi yapmaktır. Ikinci hamle yoksa köşelerden birisini ele geçirmek önemlidir oyunda avantaj sağlamak adına. Üçüncü hamle imkanlı değilse yoksa merkezin kontrolunü ele geçirmek için kontrol etmektir. Eğer dördüncü hamlede yoksa kenarlardan birini elegeçirmek son seçenek olarak tanımlanır.

Oyuna başlarken random modülünü çağırıyoruz ki randint() fonksiyonunu kullanabilelim. Sonrasında tahtanın çizimini yapacak olan fonksiyonu tanımlıyoruz. Burada tanımladığımız def drawboard(board) fonksiyonu board denilen string yani katar dizisi alır. Biz oluşturduğumuz bu dizi normalde 10 değer alırken çizimde 0 değer olmadığından endişeye gerek yok. Biz bunu 9 a kadar da tanımlayabilrdik ama bu diziler 0 dan başlamakta ve 9 adet olsaydı klavyeden 0 ın girilmesi gerekirdi e hoş olmazdı tabi

Oyuncunun X mi O mu olacağına karar verme ikinci tanımladığımız fonksiyon dikkat edilecek olursa klavyeden X veya O girilene kadar sorulmaya devam eden bir letter değişkeni tanımlanmış. Bu arada girilen değeri büyük harf değerine çevirmek için input().upper() fonksiyonunu kullandık. Sonrasında oyun ilk önce başlayacağına karar verecektir. Bunun için random fonksiyonundan faydalandık.

Oyuncunun tekrar oynamak isteyip istemediğini anlayan bu fonksiyon y harfi ile başlayan herhangi bir sey yazıldığında yes olarak kabul eder ve true döndürür Hamle yap fonksiyonu board, letter ve move paremetrelerini içerir. Move burada oyuncunun belirlediği sayıdır. Kazanan fonksiyonu kazanan string konbinasyonlarını çevirir. Böyle bir durumda true çevirir yani olumlu

Tahtanın kopyasını alan bu fonksiyon aslında Board listesinin verilerini kopyalar. Çağrıldığında dupeboard[ ] dizisini doldurur. Sradaki basit fonksiyon hamlenin olanaklı olup olmadığını kontrol eder Oyuncun hamlesini edinen bu fonksiyon kendi içinde tanımlanan hamle boş iken ve hamle izinli iken hamle parametresini çevirir.

Hamle listesinden rastgele seçim yapan bu fonksiyon tahtamızı temsil eden board dizisini paremtre olarak alır. Fonksiyonumuzu algoritmamız içinde kullanacağız. Hamle listesinden (köşeler, kenarlar, kazananlar, engelleyenler) hamleye müsait olanları muhtemel hamleler arasına alıyor. Eğer açıkta hamle kalırsa içlerinden birini seçili hamle olarak tanımlıyor ve çeviriyor. Tic Tac Toe