Merhaba, hoş geldiniz.
Bir çözüm sunmak istiyorum tic tac toe yarışması için.
Şimdi unutmayın, birçok Belirli bir soruna yönelik çözümler.
Bu sadece benim çözümüm olacak.
Sizin çözümünüz farklıysa İyi programlama uygulamalarını
takip ettiğiniz ve C programlama dilini doğru şekilde öğrenirseniz,
o zaman sorun yok.
Ben sadece kendi çözümümü sunuyorum.
Eminim geliştirilebilir.
Öyleyse başlayalım.
Yeni bir projesine tic-tac-toe deniyor
ve biz de modüle etmeye başlayın.
Benim yaptığım gibi parçalara ayırmayı denedim. dersin açıklamasında.
Bir tane yaratacağım sadece birkaç modül ya da birkaç fonksiyon
demeliyim.
Umarım, bu Tamam ve senin için iyi çalışıyor.
Tüm isimlendirmelerim için camel case kullanıyorum alışkın olduğum sözleşmeler.
Aslında biz bile ayırabiliriz İstersek bunu birden fazla kaynak dosyaya
da dönüştürebiliriz.
Yani bizim ana merkezimiz var.
Şu printf'ten kurtulalım.
Şunları da dahil edeceğim ek olarak.
Bu bana temel olarak sistemimizi temizlemek ve birkaç güzel şey yapmak,
izin vermek Ben de bir karakteri kaldırmayı düşünüyorum.
Yani bu 2 taneye ek olarak kütüphaneler, conio'yu da dahil edelim. h.
Ve yapmak istediğim şey bu soruna saldırmak istiyorum.
Modülü denemek istiyorum Elimden geldiğince.
Ben gidiyorum bahsetti tek boyutlu bir dizi, 2 boyutlu
bir dizi kullanmak için daha iyi bile çalışabilir.
Ama ben uygulayacağım Bunu oyunumuzu temsil eden
tek boyutlu bir dizi kullanarak tahta, bizim tic-tac-toe tahtamız.
Bunu yaratacağım küresel bir değişken olarak.
Global bir değişken kullanıyorum
Çünkü ben burada c'de referans ile veri geçişi.
Kafanızı karıştırmak istemem.
Global kullanmam gerekmezdi ve verileri fonksiyonlara
aktarabilirim, ancak pass by reference kullanmanız gerekir.
Etrafta dolaşmak zorunda kalacağım ve henüz bunların
hiçbirini tartışmadık.
Bu yüzden küresel verileri kullanacağım.
Beni affedin, küresel verilerin genellikle yapılacak iyi bir
şey değildir ama yine de öğrenmeyi göstermek, fethetmeyi bölmek ve göstermeye çalışıyoruz fonksiyonların
nasıl kullanılacağı, küresel verileri kullanmam gerekiyor çünkü henüz işaretçilerden
bahsetmedik.
Yani buradaki küresel verilerim kullanacağım kare benim ızgaramı, tic-tac-toe
tahtamı temsil ediyor.
Bu tek kişilik olacak. boyutlu alan 10 elemandan oluşuyor
çünkü ben 0 öğesini kullanmak istemiyorsanız.
Bu diziyi şu amaçlarla kullanacağım oyunu oynamak için sayıları seçin.
Ayrıca aşağıdakilere de izin verecek koordinatlarımı almam için.
Bunu başlatacağım sadece 1 ile 9 arasındaki değerlerle.
Ve bu bir karakter dizisi çünkü içine x'ler ve
o'lar koymam gerekiyor.
Karakter hakkında konuşmadık. dizileri henüz yok, ancak bu tek karakterleri
koymama izin verecek.
Tıpkı şu dizi konsepti gibi karakter içermesi dışında ints.
Unutmayın, karakterlerin etraflarında tek tırnak işaretleri.
Yani bir 2 3 9 the, 0 there atlayacağım, kullanmayacağım
bile, çünkü onları kullanmak istiyorum.
Programlamayı biraz daha kolaylaştırıyor.
Kullanıcının verdiği değeri kullanabilirim geçerli bir dizin olarak bir dizin olarak girer.
Aynı zamanda oyuncu sırasındaki seçim için 2 global değişken
oluşturun.
Bu yüzden seçim onların klavye aracılığıyla girilir, nereye bağlı olarak
birden 9'a kadar x veya o'larını yerleştirmek istiyorlar.
Oyuncu sadece sıranın hangi oyuncuda olduğunu
gösterir, oyuncu 1 veya oyuncu 2.
Başka herhangi bir küresel veriye ihtiyacım yok.
Sadece fonksiyonuma ihtiyacım var. bildirimleri burada.
Ben başlayacağım. 3 işlev oluşturarak.
Bu yüzden 3 tane işlev bildirimleri.
Bir tane alacağım. bir galibiyet için kontrol etmek için.
Herhangi bir veri almayacak.
Bir int döndürecektir.
Bir tane alacağım. herhangi bir veri döndürmez, sadece
panoyu doğru karakterlerle görüntüler.
Ayrıca herhangi bir veri almaz.
Ve ayrıca bir de sadece tahtayı işaretleyen fonksiyon.
Bu, kullanıcı girdisini alacaktır.
Ve neye girdiklerine bağlı olarak, dizideki doğru noktaya bir x veya o yerleştirecek
ve ardından bu diziyi ekran kartı kullanarak.
Yani burada sadece şunu söyleyeceğiz işaret tahtası ve bu aslında
x veya o ile bir işaret alacak.
Böylece bunu tekrar kullanabilirim.
Bunu tekrar kullanabilirim oyuncu 1 veya oyuncu 2.
3 fonksiyon bildirimi, böylece fonksiyonlarımı programın herhangi bir yerine yerleştirebilirsiniz,
ben onları en üstte bildirdim.
Ve fark edeceksiniz ki bunlardan ikisi fonksiyonları herhangi bir veri döndürmüyor
ve yalnızca bir tanesi parametre alıyor.
Bu fonksiyonları uygulayalım oyunu uygulamadan önce.
İlk olarak, hadi Kazanmak için kontrol uygulayın.
Bu fonksiyon temel olarak Herhangi bir kazanç olup olmadığını görmek için panoyu kontrol
edeceği yerde çalışın.
Yani içinde bir sürü if ifadesi.
Muhtemelen geliştirebilirim Bu kodu biraz.
Ama bazı yorumlar yapacağım çünkü her zaman fonksiyonumuzun
en üstünde yorumlarımız olmalıdır.
Bunlar oldukça basitleştirilmiş.
Fonksiyon adını almalıyız.
Bu temelde şunu söylüyor fonksiyon, oyun
bir ise oyun durumunu bir olarak döndürecektir. bittiğinde, kazanıp kazanmadığınızı
söyler, eğer negatif bir sonuç çıkarsa oyun devam ediyorsa 0 ve oyun bitmişse ve
berabere kalmışsa.
Yani bu fonksiyon aşağıdakileri kontrol eder biri bir int döndürüyor.
O yüzden gideceğim. ilerleyin ve bunu tanımlayın.
Ve tüm bunlar diziye bakacak ve herhangi bir nokta
olup olmadığına bakacak orada, eğer 3x eşleşirse.
Yani bir sürü farklı if ifadeleri.
Peki bir oyuncunun öyle olup olmadığını nasıl anlayacağız?
Eğer bir oyuncu bir satır köşegeninde ya da bir sütunda eşleşirlerse
bir.
Bu yüzden her birini kontrol etmeliyiz bu durumlardan biri.
Ve biz biliyoruz ki diziye dayalı sütunlar.
Yani benim birinci karem eşitse kare 2'ye
ve kare 2 kare 3'e eşittir, yani ilk sıramızda bir maç var.
O yüzden ben de burada bir dönüş değeri oluşturun.
En üstte, sadece şunu söyleyeceğim dönüş değeri, bunu 0 olarak başlatın.
Bunu başlatacağız 0'a indirirsen oyun biter.
Ve eğer bir maçımız varsa İlk sıra, bir tane
iade edeceğim, oyun bitti.
Daha sonra bir dizi ve aslında geri dönmek istemiyorum.
dönüş değerimi ayarlamak istiyorum.
Çünkü geri dönebilirdik ama programı takip etmeyi zorlaştırır.
Aksi takdirde, biz gidiyoruz diğer tüm satırlarımızı kontrol edin.
Bu yüzden kopyalayıp yapıştıracağım burada bazı kodlar
var çünkü çok fazla gereksiz kod var.
Tek şey Eğer berabere kalırsak ilginç olur.
O zaman izin ver de kazananlar için başka if'ler.
Ve sonra da farklı değerler döndürür.
Bir sürü başka şey yerine eğer'ler, ampersands kullanabilirdim,
ama bunu okumak daha da zor.
Yani eğer bir eşleşme varsa ilk sırada.
Ve emin olalım ki girinti doğru.
Eğer ikinci sıramızda bir eşleşme varsa, İkincisinin yaptığı da bu.
Eğer üçüncü sıramızda bir eşleşme olursa, birini döndür okunabilirlik için bazı yeni satırlar ekleyin,
parantezlere gerek yok çünkü bunlar tekil ifadelerdir.
37. satırda şöyle görünüyor 1, 4 ve 7'yi eşleştiriyoruz.
Yani bu bir diyagonal eşleşme, bir döndürür.
Kırk, 25 ve 8'i eşleştiriyoruz.
Bu merkezin bir eşleşmesi gibi görünüyor aşağı iniyor, yani ikinci sütun.
3 6, görebilirsiniz diğer maçlarda da.
Temelde tüm maçları yakalamak zorundayız satırlar, sütunlar ve köşegenler için.
Ve biz de bunu yaptık. bu ifadeler diziye bakıyor.
Şimdi bize söyleyecek tek şey bir eşleşme yoksa veya bir beraberlik varsa, hepsini karşılaştırmalı
ve Temel olarak sadece ilklendirilen sayılar olmadıklarından emin
olun.
Yani eğer dizimiz kare ise ve hiçbiri için 1 2 3 1 2 3 4 5 6 8 veya 9 içermez. değerlerini
içeriyorsa, bu, 0 veya x içerdikleri için bir çekilişimiz olduğu anlamına
gelir.
Yani başka bir şey yazabilir miyiz? eğer bu
temelde bir beraberlik olduğunu söylüyorsa ve dönüş değerini ayarlayabilirsek 0'a eşit değer döndürür.
Ve yine bu sadece temel olarak eğer sayılar aynıysa, bu son else
if'i kontrol etmek başlatıldıkları gibi.
Eğer hepsi farklıysa, o zaman bu da 0 döndürebileceğimiz anlamına gelir.
Şunu yukarı koyalım.
Aksi takdirde, eğer bir berabere kalırsak ve kazanan olmazsa, işimiz
bitmemiş demektir.
Yani son bir else ifadesi sadece şunu söyleyebilir dönüş değeri negatif bir değere eşittir.
Çünkü unutmayın, fonksiyon oyun devam ediyor için
bir oyun bitti için bir negatif dönüyor ve sonuçsuz oyun için 0.
Ve sonra yapmak istediğim son şey dönüş değerini döndürmek istiyorum.
Bu yüzden burada sadece dönüş, dönüş değeri deyin.
Bu da işlevi tamamlayacaktır.
Ve ne zaman fark ettiniz? Bunu yapıyoruz, bölüyoruz
ve fethediyoruz.
Şu anda odaklandığımız tek şey şimdi bir galibiyet olup olmadığını görmek için tahtayı
kontrol ediyor.
Küçük gruplar halinde çalışırdık. Bunun gibi parçalar ve
sürekli test ederdik.
Bu da bizim kendi işimize odaklanmamızı sağlıyor. tasarım ve ayrıca hatalarımızı daha kolay azaltmamızı
veya izole etmemizi sağlar.
Şimdi işimiz bittiğine göre oyun panosu, devam etmek ve ekran
panosunu uygulamak istiyoruz.
Ekran panosu sadece kurula göstereceğim.
Yani bunun gerçekten yapması gereken tek şey Diziyi belirli bir formatta çizin.
Bu yüzden bir işlevine ekran kartı denir.
Herhangi bir veri döndürmeyecektir, herhangi bir parametre almayacak.
Bunun bir fonksiyon numarası olmasının nedeni
Çünkü tahtayı birçok kez çizmemiz gerekecek. Ayrıca belirli bir görevi yerine
getirdiği için daha iyi.
Şimdi bu sadece içinde bir sürü printf fonksiyonu var.
Ve bu da bir sürü biçimlendirme.
O yüzden kopyalayıp yapıştıracağım.
Burada benzersiz olan şey Her seferinde ekranı temizliyorum.
Ama eğer sistem derseniz ve ve cls derseniz, bu ekranı temizleyecektir.
Sadece daha temiz yapıyor.
O zaman sadece bir sürü printf yap.
Oyunun başlığını yazdıracağız. Oyuncu 1 ve 0'ın çıktısını alacağız.
Ve sonra gidiyoruz panonun çıktısını almak için.
Kurul güzel bir şekilde Bazı paralel çubuklarla biçimlendirilmiş
ve daha sonra dizideki tüm değerlerin değerleri.
Ve eğer değer x veya 0, görüntülenecek.
Eğer değilse, bir numarasını kullanabiliriz, böylece çizme seçeneğimizi
seçmek için bu numarayı kullanabiliriz ve bu Bu fonksiyonun yaptığı tek şey budur.
Şimdi işimiz bittiğine göre panoyu göstererek, şimdi
son fonksiyonumuzu oluşturmak istiyoruz ki bu da tahtayı işaretliyor.
Yani mark kurulu dizisini belirli bir değerle
dolduracak ve x ya da o şeklinde bir işaret.
Yani bir karakter gerekecek.
Bunun yapacağı şey bir sürü başka if
ifadesine sahip olacaktır.
Yani burada işaret tahtamızda temel
olarak bazı yorumlar yapmak ve bunun tahtayı doğru x veya o karakteri
ile ayarlayacak dizideki doğru noktaya yerleştirin.
Umarım bu mantıklıdır.
Kodu gördüğünüz gibi yorumlarımı bitirmek zorundayım.
Güzelce biçimlendirmek istiyorum yani burada 2 satır var.
Ve tüm bunlar kullanıcının ne girdiğini
görmek için kontrol edecek olmasıdır.
Unutmayın, 2 küresel verimiz var kullanıcının girdiği değerler için.
Ayrıca bir değerimiz var mevcut oyuncu için.
Yani seçim temel olarak klavye aracılığıyla girilenler.
Bunu henüz uygulamadık çünkü bunu ana fonksiyonda
uygulayacağız.
Oyuncu olacak mevcut oyuncu.
İkisine de ihtiyacımız olacak. izlerimizi bırakmak için.
Yani yapacağımız şey bir sürü else ifadesi,
if else ifadesi olacak.
Seçimi kontrol edeceğiz, Bu da kullanıcı tarafından girilen şeydir.
Ve eğer seçim 1'e eşitse, biz o kareye bir şey çizmek istiyorum.
Ayrıca şunlardan da emin olmak istiyoruz o meydanın kullanılabilir olduğunu.
Yani 1'e eşitse ve değilse şu anda 1'e eşitse, bu temelde birisinin
zaten bir x ya da orada bir o var ve biz onu kullanamıyoruz.
Eğer bire eşitse ve girilirse, diziyi belirli bir değere ayarlayabileceğimiz
anlamına gelir.
Diziyi şu şekilde ayarlayacağız o ya da x'te geçmiştir.
Ve tekrar edeceğiz her seçim için bunu yapmak için.
Eğer seçenekler 2, 3, 4, 5, 6, 8 veya 9 ise.
Yani bir sürü eğer aynı şeyi yapan.
Eğer kullanıcı 2. seçeneği girdiyse, biz girintinin iyi olduğundan ve
kare 2'nin kullanılabilir olduğundan emin olacağım, buraya ne geçirdiysek 2. kareyi onunla
işaretleyeceğiz.
Ve hangi oyuncunun sırası olduğuna bağlı olarak bir veya bir x geçeceğiz.
Şimdi yapmamız gereken son şey bu fonksiyonu doğrulamamız gerekiyor.
Eğer herhangi bir şey geçtiyse 1'den 9'a kadar, o zaman bu
geçersiz bir hamledir.
Yani son else deyimimiz burada geçersiz hareket olduğunu belirten bir mesaj yazdıracaktır. oyuncuyu bir
aşağı işaretleyin.
Çünkü oyuncuları hatırlayın ya bir ya da ikidir.
Ve oyuncuyu işaretleyeceğiz geri alacağız ve sonra ana fonksiyonumuzdaki
döngümüzde artıracağız.
Ve sonra bu son şey olsun char sadece programı duraklatır, böylece
kullanıcı geçersiz hamleden sonra geri dönün.
Aksi takdirde, geçersiz hareket görüntülenecek ve ardından hemen
silinecektir çünkü tahtayı yeniden çizerdik.
Char duraklatsın.
Sizi enter tuşuna basmaya zorluyor başka bir değer girmeye devam etmek için.
Bunlar da bizim 3 işlevimiz.
Unutmayın, bu fonksiyon hiçbir şey döndürmez.
Böylece en altta tutabiliriz.
Şimdi gerçekten yapmalıyız oyunu uygulayın.
Oyun şöyle oynanır ana işlevde.
Yani oyun için, burası kullanıcıdan bir sayı girmesini isteyeceğiz,
kullanıcıya Kazanma ihtimalini kontrol edeceğiz.
Yani 2 tane yaratacağız Burada yerel değişkenler var ve
oyuncumuzu başlatacağız.
Burada biz tamsayı I'mizi oluşturun.
Bu bizim döngümüz için kullanılacak.
Ve işaretimiz ya x olacak ya da o, kimin sırası olduğuna bağlı olarak.
Mark X ya da O olacak sanırım.
Mark X ya da O olacak.
Ve seçim ne olacak kullanıcı klavye aracılığıyla girer.
Yani 2 yerel değişken.
Aynı zamanda global bir değişken olan player.
Başlangıçta, sadece Oyuna başlamak için birinci oyuncu ol.
O zaman bir döngümüz olacak.
Biz temel olarak biz oynamayı bitirene kadar bir döngü.
Bir do while kullanacağım Burada döngü var çünkü en az bir
kez çalışmasını istiyorum.
Görüntülemek istiyorum en az bir kez.
Bu yüzden ben de ve oyunu temelde beraberlik
ya da galibiyet alana kadar oynarım.
Bu yüzden bunu yapacağım. I negatif 1'e eşit olduğu için.
Negatif 1 neyi temsil eder? oyunun devam ettiğini gösterir.
Ben geri döneceğim. win kontrolü için değer.
Bunu birazdan göreceksiniz, ama temelde sürekli
aynı şeyi yapan bir döngüm olduğunda ve oyun bitene kadar tekrar tekrar.
Ve oyun olacak Eğer olumsuz bir şey değilse.
Peki önce ne yapmamız gerekiyor.
Yapmamız gereken ilk şey tahtayı göstermeliyiz.
Bu yüzden sadece fonksiyon ekran kartı.
O zaman oyuncuyu hesaplamamız gerekiyor.
Ve oyuncu birinci oyuncu olarak başlar.
Burada yapacağımız şey
üçlü bir operatör kullanacağız ve diyeceğiz ki oyuncu mod 2 ise, oyuncu
1'e eşittir, aksi takdirde 2'ye eşittir.
Bu, aşağıdakileri belirlemenin bir yoludur doğru oyuncu.
Döngünün her yinelemesinde 1'den 2'ye veya 2'den 1'e değiştirmek için.
Birinci oyuncu olarak başladığında, oyuncu
mod 2, bir bölü 2 veya kalan diyecek bir bölü iki kaç eder, bir.
Yani eğer bir taneyse, sen birinci oyuncu olacak.
Ve geri döndüğünde bir sonraki yinelemede, oyuncu
2'ye eşit olacaktır çünkü artıracağız.
2 mod 2 0'dır.
Yani eğer eşit değilse bir, o zaman oyuncu 2. oyuncuya
eşit olacaktır.
Bu sadece oyuncu mod 2 bir ise oyuncu bir.
Unutma, o tornacı operatör umarım.
Yapmam gereken bir sonraki şey kullanıcıdan girdi almanız gerekir.
Yani burada diyeceğim ki, ben gidiyorum kullanıcıdan bir sayı girmesini istemek için.
Yüzde yüz oyuncu diyeceğim. oyuncu 1 veya 2, bir sayı girin ve sonra oyuncuyu koyacağım
yazdırmak için, oyuncu 1 veya 2.
O zaman ben de scanf kullanarak kullanıcıdan gelen girdi.
Ve bu bir tamsayı olacak, Tahtada 1'den 9'a kadar
bir noktayı temsil edecek.
Ve ben depolayacağım seçim değişkenimde.
Seçim bir inç, bu yüzden ve seçimimi söylemek
zorundayım.
Sadece bir dize olsaydı adreste geçmiyor.
O zaman temel olarak şunları belirleyebilirim işaretin ne olup olmadığına bakılmaksızın.
İşaretin oyuncuya bağlı olarak x veya hayırdır.
Bu yüzden ben de tekrar üçlü operatör.
Ve ben de bir x veya o işaretlemek için.
Eğer oyuncu 1'e eşitse, gidiyorum x, büyük x işaretini atamak için.
Aksi takdirde, ben gidiyorum ona bir o atayın, büyük o.
Yani bu üçlü operatör çok değişkenleri bir koşula göre atamanız
gerektiğinde kullanışlıdır.
Yine bunun söylediği şey şudur oyuncu 1'e eşitse,
işaret x'e eşit olacaktır.
Aksi takdirde, o'ya eşit olacaktır.
Soru işareti, eğer Boolean değerlendirmesi doğruysa, iki nokta
üst üste yanlış olduğunu gösterir.
Şimdi doğru mektubu aldım, Tahtayı işaretlemek için
fonksiyonumu sadece işaretle diyerek çağırabilirim tahta, x veya o'yu geçerek.
Ben tahtayı işaretledikten sonra seçimlerini yaptılar, bir
kazanan olup olmadığını kontrol etmeliyim.
Benim değişkenim var. gerçekten
daha iyi bir isim olmalı.
Adını durum kontrolü koyalım, oyun ya da oyun durumunu kontrol et.
Ve oyun durumu bir negatif bire veya 0'a eşittir.
Oyun durumu Kazanmak için çekten dönen miktara
eşit olmalıdır.
Çünkü unutmayın, bu fonksiyon bir 0 veya negatif bir döndürür.
Eğer oyun bittiyse bir sonuç, oyun devam ediyorsa negatif bir, 0 eğer
sonuçsuz biterse.
Artık oyunu sakladığımıza göre durumunda, döngünün koşulunu
da değiştirmek isteyeceğiz.
Yani eğer oyun durumu negatif bire eşitse, döngüden
çıkacağız.
Aksi takdirde, tek yapmamız gereken oyuncunun sırasını değiştirmektir.
Oyuncunun sırasını nasıl değiştiririz? sadece oyuncuyu bir artırıyoruz.
Bu şekilde bir dahaki sefere yükselecek. 2 olacak ve oyuncu
2'ye eşit olacak ve aşağı ineceğiz.
Geçersiz girişimlerde bulunduklarında geçersiz şablonlarda
oyuncu sayısını azaltır.
Oyuncu sayısını azalttığınızda, doğru oyuncuya geri dönersiniz.
Yani eğer bir ise, onu 0, bir sonraki tur bir olacak, aslında
yine aynı turunuz.
Bu yüzden artırıyoruz.
Şimdi eğer 2. oyuncuysa, bir artırıyoruz.
Ve ne olur, 2 bölü 2 0 eder.
Bu yüzden aslında oyuncu bire geri döner.
Bu işler böyle yürür.
Ama tüm mantık bu.
Burada çok şey yaptık.
Hepsini yazmamalısınız bu kodu girin ve hemen test edin.
Seninle çalışıyor olmalıydım. Böl ve yönet, kodu çalıştırırken
sürekli test et.
Şimdi size bu çözüm, ama hadi çalıştıralım
ve test edelim.
Bu tıpkı meydan okuma dersindeki demo.
Ama yine de, bu kodu inceleyin ve Neler olduğunu anladığınızdan emin olun.
Dizilerin kullanımı ve bölme yaklaşımını fethetti, ancak bu ana yöntemin ne kadar
güzel göründüğüne bakın.
Ne olduğunu bilmek çok kolay ana yöntemde devam ediyor.
Ekran panosu, oynatıcıyı değiştirin ve siz muhtemelen buraya yorum yazmak istersiniz.
Dönüşleri değiştirin ve sonra burada da girdi alın.
Ve sonra doğru harfi, oyuncu sırasına göre doğru
karakteri ayarlayın.
Gerçekten ihtiyacın bile yok bu yorumlar çünkü
fonksiyonlar çok açıklayıcı.
Panoyu işaretleyin, panoyu aşağıdakilere göre ayarlayın kullanıcı seçimi veya geçersiz seçim.
Ve sonra oyun durumu kontrolü kazanmak için, oldukça açıklayıcı.
Ve sonra dışarı atlarız eğer oyun bittiyse.
Hadi şunu inşa edelim.
Umarım hata almazsınız, hiçbir Uyarılar yok, ki bu güzel bir şey.
Şimdi çalıştıralım ve tıpkı demomuzdaki gibi çalıştığını görün.
Yaptığı ilk şey ekranı görüntüleyecektir.
Ve bu da bize bir giriş yazdırmak için.
Ve bizim şebekemiz var, bir 2 3 4 5 6 7 8 9 dizimiz.
Yani bu bana oyuncu 1'in bir şey girin ve ben geçerli
bir şey giriyorum.
Ve onu çizer ve ekranı temizler.
Güzele benziyor.
Ve şimdi 3'te bir x var.
Şimdi sıra ikinci oyuncuda.
Geçersiz bir şey yapacağım.
Geçersiz hareketler diyor, duraklıyor.
Return tuşuna bastığımda tekrar oyuncu 2'ye gitmek için.
Şimdi bir tanesini vurdum, yeniden çiziyor o ile bir noktada.
Ve bunu şu ana kadar devam ettirdim Bir kazananımız ya da kaybedenimiz var.
Öyleyse bir kazanan yaratalım.
Şimdi x, 2 o olacak 5 olacak, x 6 olacak
ve o 9 olacak.
Oyun bitti çünkü 3 0 çektik.
Unuttuğum bir şey vardı. while döngüsünden sonra kazandığınız tebrikleri
görüntülemek için.
Ve orada yapmamız gereken tek şey oyun durumunu kontrol etmeliyiz.
Oyun durumu şu değere eşitse bir, bu bir oyuncu anlamına gelir ve kazanan
son oyuncu olur.
Bu yüzden çıktısını alırız oyuncu yüzde d kazanır.
Aksi takdirde, biz gidiyoruz sadece bir çizim yazdırmak için.
Çünkü eğer döngümüzden çıkarsak ve durum olumsuzdu, oyunun bittiğini
biliyoruz ve bir sonuç elde ettiysek, bu sonuncusunu da yapmamız gerekebilir.
deyimini kullanarak sonuçları görüntüleyin.
Şimdi kazanan olarak tekrar çalıştıralım.
Ve şimdi gerçekten Birinin kazandığını görmek.
Bu yüzden sadece geçerli Burada sayılar, x için hızlı
bir kazanıma neden olur ve aslında bunu bu Çünkü o program ortadan kalkıyor.
İşte gidiyor, birinci oyuncu kazandı ve orada başka bir güzel ses çaldı.
Yani bu uzun bir konuşmaydı.
Uzun nutuk için özür dilerim.
Bu kodu inceleyin, ben bir kaynak dosya olarak sağlayın.
Umarım, hakkında çok şey öğrenirsiniz böl ve fethet metotları.
Teşekkür ederim.