hasankoroglu / mangala

ReactJS ile geliştirdiğim Mangala oyunu

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Mangala Oyunu

Bu oyunu es6 ve reactjs konusunda öğrendiklerimi kullanmak için yaptım.

Projede React Hooks kullandım. React Hooks olarak useState ve useEffect kullandım.

Elimden geldiğince kodu iyileştirmeye çalışacağım.

Demo

https://hasankoroglu.github.io/mangala/

Özel Teşekkürler

Volkan ŞENGÜL

Yazılım alanında, bilgi ve tecrübelerini bizlerle paylaşarak, ülkem insanına sunmuş olduğu hizmet ve fekarlıklarla gönüllerde taht kurmuş, sayesinde (youtube videoları) React öğrendiğim Volkan ŞENGÜL hocam.

https://twitter.com/volkansengul

https://www.youtube.com/volkansengul

https://volkansengul.com/

https://github.com/volkansengul


Üstün ÖZGÜR

React ve es6 öğrenmeye başladığımda Youtube videoları ve medium makalelerinden faydalandığım ülkemizin medarı iftiharı Üstün ÖZGÜR hocam.

https://twitter.com/ustunozgur

https://github.com/ustun


Gencebay DEMİR

Yanında olduğum her saniye gayretinden, bilgisinden, tecrübesinden, kişiliğinden feyz aldığım, ülkemizin saklı cevheri Gencebay DEMİR.

https://twitter.com/gencebaydemir/

https://github.com/gencebay


Taha İPEK

Kardeşim, mesai arkadaşım, motivasyon kaynağım, güzel insan; Taha İPEK.

https://twitter.com/_tipek

https://github.com/tahaipek


Ve can yoldaşlarım Ankara IT Hacıları ;)

Mangala Oyun Kuralları

Oyunun kuralları konusunda biraz karışıklık var, farklı sitelerde farklı kurallardan bahsedilmiş. Ben aşağıdaki kurallara göre oyunu yazdım.

  1. Kura neticesinde başlama hakkı kazanan oyuncu kendi bölgesinde bulunan istediği kuyudan 4 adet taşı alır. Bir adet taşı aldığı kuyuya bırakıp saatin tersi yönünde, yani sağa doğru her bir kuyuya birer adet taş bırakarak elindeki taşlar bitene kadar dağıtır. Elindeki son taş hazinesine denk gelirse, oyuncu tekrar oynama hakkına sahip olur. Oyuncunun kuyusunda tek taş varsa, sırası geldiğinde bu taşı sağındaki kuyuya taşıyabilir. Hamle sırası rakibine geçer. Her seferinde oyuncunun elinde kalan son taş oyunun kaderini belirler.

  2. Hamle sırası gelen oyuncu kendi kuyusundan aldığı taşları dağıtırken elinde taş kaldıysa, rakibinin bölgesindeki kuyulara da taş bırakmaya devam eder. Oyuncunun elindeki son taş, rakibinin bölgesinde denk geldiği kuyudaki taşların sayısını çift sayı yaparsa (2, 4, 6, 8 gibi) oyuncu bu kuyuda yer alan tüm taşların sahibi olur ve onları kendi hazinesine koyar. Hamle sırası rakibine geçer.

  3. Oyuncu taşları dağıtırken elinde kalan son taş, yine kendi bölgesinde yer alan boş bir kuyuya denk gelirse ve eğer boş kuyusunun karşısındaki kuyuda da rakibine ait taş varsa, hem rakibinin kuyusundaki taşları alır, hem de kendi boş kuyusuna bıraktığı taşı alıp hazinesine koyar. Hamle sırası rakibine geçer.

  4. Oyunculardan herhangi birinin bölgesinde yer alan taşlar bittiğinde oyun seti biter. Oyunda kendi bölgesinde taşları ilk biten oyuncu, rakibinin bölgesinde bulunan tüm taşları da kazanır. Dolayısıyla, oyunun dinamiği son ana kadar hiç düşmez.

Mangala Oyunu 5 set olarak oynanır.

Oyunu kazanan oyuncu (1) puan, kaybeden (0) puan ve berabere bitiren oyuncular yarım (0,5) puan alır.

About

ReactJS ile geliştirdiğim Mangala oyunu


Languages

Language:JavaScript 79.9%Language:CSS 12.6%Language:HTML 7.5%