Çözüldü Ortalama ve beceri hasarı

Bu konu çözüme ulaştırılmıştır. Çözüm için konuya yazılan tüm yorumları okumayı unutmayın. Eğer konudaki yorumlar sorununuzu çözmediyse yeni bir konu açabilirsiniz.
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.

bekolay1

Üye
Üye
Mesaj
34
Beğeni
5
Puan
671
Ticaret Puanı
0
Merhabalar arkadaşlar yaklaşık 1 saattir ortalama ve beceri hasarının kodu için de kayıp oldum tamam kabul ediyorum matematiğim çok kötü ama allah aşkına birisi bu sorgu da ki ortalama ve beceri hasarını söyleyebilir mi :)

C++:
    int iSkillBonus = MINMAX(-30, (int) (gauss_random(0, 5) + 0.5f), 30);
    int iNormalHitBonus = 0;
    if (abs(iSkillBonus) <= 20)
        iNormalHitBonus = -2 * iSkillBonus + abs(number(-8, 8) + number(-8, 8)) + number(1, 4);
    else
        iNormalHitBonus = -2 * iSkillBonus + number(1, 5);
 
Çözüm
Kanka bak şimdi burada şöyle bir kod dönmüş :
beceri hasarının minimun ve maximum değerini normal ayarlamış. işte en az -30 -> en fazla +30 diye.
Ortalama hasarı da beceri hasarına bağlamış.
yani beceri hasarı ve ortalama hasar da aynı anda pozitif sayı olarak dönmesin diye uğraşmış.
sana şöyle tercüme edeyim kankam :
C++:
    int iSkillBonus = MINMAX(-30, (int) (gauss_random(0, 5) + 0.5f), 30);
    int iNormalHitBonus = 0;
    if (abs(iSkillBonus) <= 20)
        iNormalHitBonus = -2 * iSkillBonus + abs(number(-8, 8) + number(-8, 8)) + number(1, 4);
    else
        iNormalHitBonus = -2 * iSkillBonus + number(1, 5);

Bu senin yazdığın kod şimdi sana tercümesini yapacağım.
öncelikle terimleri anlatayım :
abs = Mutlak değer (Bir...
Şu an için sanırım
30 ve - 30 arası beceri hasarı sınırı
32 de ortalama zarar sınırı olarak tanımlanmış. Tabi kısmen üstü de gelebilir fakat tavan sınırı 32.
 
Şu an için sanırım
30 ve - 30 arası beceri hasarı sınırı
32 de ortalama zarar sınırı olarak tanımlanmış. Tabi kısmen üstü de gelebilir fakat tavan sınırı 32.
30 dakikalık bota bıraktım 49 2 kere 1 kere 48 orta geldi daha üstü gelmedi beceri hasarı max 16 geldi bir şey anlamadım ben bu işten
 
Son düzenleme:
(gauss_random(0, 5) kısmı ölçek kısmıdır. Yani beceri hasarı için gelebilecek değerlerin kombinasyon(değerlerin aralığı) sınırı.
0, 5 kısmını 0. 7 veya 0, 10 olarak değiştirmeyi deneyebilirsiniz. Ya da bunun yerine -30 ve 30 sınırlarını genişletebilirsiniz.

Ortalama zarar sonuçları da, dediğinize bakılırsa normal gibi görünüyor. Dediğim gibi varsayılanda sınır 32 fakat
C++:
else
        iNormalHitBonus = -2 * iSkillBonus + number(1, 5);

Buradan ekstra değer biniyor üstüne.
 
hocam biraz beynim yandı kusura bakmayın beceri hasarını 1 saat bota bıraktım 20 gelmemiş ortalama da kod bloğuna baktığım zaman da 49 gördüm max ben bunların 2 sini de arttırmak istediğim zaman tam olarak hangi kısmı değiştirmem gerek -30 ve 30 kısımlarını değiştirdiğim zaman beceri değişiyor diye anlattınız evet bu kısmı anladım ancak ortalamayı değiştirmek istediğim zaman ne yapmam gerek

kod bloğun da -8, 8 var bunu 2 ile çarptırmış burada 32 yi nasıl bulabildiniz anlayamadım evet matematiğim baya kötü öyle bakıyorum şuan da sorgu koduna
 
Kanka bak şimdi burada şöyle bir kod dönmüş :
beceri hasarının minimun ve maximum değerini normal ayarlamış. işte en az -30 -> en fazla +30 diye.
Ortalama hasarı da beceri hasarına bağlamış.
yani beceri hasarı ve ortalama hasar da aynı anda pozitif sayı olarak dönmesin diye uğraşmış.
sana şöyle tercüme edeyim kankam :
C++:
    int iSkillBonus = MINMAX(-30, (int) (gauss_random(0, 5) + 0.5f), 30);
    int iNormalHitBonus = 0;
    if (abs(iSkillBonus) <= 20)
        iNormalHitBonus = -2 * iSkillBonus + abs(number(-8, 8) + number(-8, 8)) + number(1, 4);
    else
        iNormalHitBonus = -2 * iSkillBonus + number(1, 5);

Bu senin yazdığın kod şimdi sana tercümesini yapacağım.
öncelikle terimleri anlatayım :
abs = Mutlak değer (Bir sayının sıfıra olan uzaklığını almaya yarıyan kod.) örnek : abs(-20) = 20 (Yani -20 sayısının sıfıra olan uzaklığı 20'dir.)
* = çarpma işareti
+ = toplama işareti(Bunları biliyorsun zaten.)

Bu da tercümesi :
C++:
int iSkillBonus (Beceri hasarı değeri) = Minmax(En az - En çok) (-30 (en az -30 gelecek), (gauss_random(0, 5) (Burayı bilmiyorum.) , 30(En fazla 30 gelecek.));
int iNormalHitBonus = 0; (Bu ortalama hasar değeri, şimdilik 0 olarak tanımlamış.)
if (Eğer) (abs(iSkillBonus) <= 20) (Silaha gelen beceri hasarının sıfıra olan uzaklığı 20 sayısından küçük veya eşitse)
    iNormalHitBonus = -2 * iSkillBonus + abs(number(-8, 8) + number(-8, 8)) + number(1, 4); (Ortalama hasar = -2 * Silaha gelen beceri hasarı + (-8 ile 8 arasında rastgele seçilen bir sayının 0'a olan uzaklığı) + (-8 ile 8 arasında rastgele bir sayı) + (1 ile 4 arası rastgele bir sayı));
else (eğer değilse)
     iNormalHitBonus = -2 * iSkillBonus + number(1, 5); (Ortalama hasar = -2 * (Silaha gelen beceri hasarı) + (1 ile 5 arası rastgele bir sayı))


Örnek verecek olursak :

Silahına -20 Beceri hasarı geldi diyelim :
-20nin mutlak değeri kaç (yani sıfıra olan uzaklığı) : 20
20 sayısı 20 sayısına eşit veya küçük mü? -evet.
o zaman if bloğundaki formülü uygulayacağız.
Ortalama hasar = -2 x -20(Silaha gelen beceri hasarı) + 5 (-8 ile 8 arasında rastgele bir sayı seçtim ve sıfıra olan uzaklığını buldum.) + 5 (-8 ile 8 arası rastgele bir sayı seçtim.) + 3 (1 ile 4 arası bir sayı seçtim) = -2 x -20 + 5 + 5 + 3 = 53 (Ortalama hasarınız) gördüğünüz gibi -20 beceri geldi karşılığında +53 gibi pozitif bir değer ortalama hasarı geldi.

Eğer silahıma +20 beceri hasarı gelseydi :
+20 sayısının mutlak değeri kaç (yani 0'a olan uzaklığı) ? = 20
20 sayısı 20 sayısına eşit veya küçük mü? -evet.
o zaman yine if bloğunu uygulayacağız.
Ortalama hasar = -2 x 20(gelen beceri hasarı) + 3 (-8, 8 arası rastgele bir sayının mutlak değeri) + 3 (yine -8, 8 arası rastgele bir sayı) + 2(1,4 arası bir sayı) = -2 x 20 + 3 + 3 + 2 = -32 (Ortalama hasarınız.) Gördüğünüz gibi 20 Beceri gelen silaha bu formülle -32 gibi negatif bir değer ortalama hasar geldi.

Buradaki kod bloğu hem beceri ve ortalama hasarının en az ve en çok değerini belirliyor
hem de Beceri hasarı negatif (-) gelirse Ortalama hasarını pozitif (+) çıkarttırıyor.
Beceri hasarı pozitif (+) gelirse ortalama hasarını negatif(-) çıkarttırıyor. :)
Umarım anlamışsındır :))
 
Çözüm
hocam allah razı olsun beynim yandı matematik olmayınca istediğin kadar yazılım bil içinden çıkamıyorsun :D
 
Konu çözüldüğüne göre kilitliyorum arkadaşlar.
İyi forumlar.
 
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Geri
Üst