Yapılar üzerinde alıştırmalar yapıyorum. Derslerde sunulan örneklerden bağımsız olarak ileride sınıflar ile de kullanabileceğim bir model geliştireyim istedim.
Bu alıştırmada hem temel türleri, hem işlevleri hem de yapı, enum gibi türleri kullanmaya çalıştım. İlerledikçe ve alıştıkça örneğimi de geliştirebileceğimi düşünüyorum.
import std.stdio;
enum DarbeTipi {Bıçak = 10, Kılıç = 20, Tabanca = 50, Tüfek = 70, Bomba = 100 }
struct Kahraman
{
double güç;
double para;
}
double değerlendir(in double parametre, in double değer)
{
double ölçek;
ölçek = parametre - (parametre * değer);
return ölçek;
}
Kahraman darbeAl(in Kahraman karakter, in double darbe) // daha kısa yollar dene
{
Kahraman darbeli;
if (darbe == 10) {
darbeli.güç = değerlendir(karakter.güç, 0.1); // Başka bir işlev ile
darbeli.para = değerlendir(karakter.para, 0.1);
} else if (darbe == 20) {
darbeli.güç = değerlendir(karakter.güç, 0.2);
darbeli.para = değerlendir(karakter.para, 0.2);
} else if (darbe == 50) {
darbeli.güç = karakter.güç - (karakter.güç * 0.5); // Başka bir işlevsiz
darbeli.para = karakter.para - (karakter.para * 0.2);
} else if (darbe == 70) {
darbeli.güç = karakter.güç - (karakter.güç * 0.7);
darbeli.para = karakter.para - (karakter.para * 0.2);
} else if (darbe == 100) {
darbeli.güç = değerlendir(karakter.güç, 0.9);
darbeli.para = değerlendir(karakter.para, 0.3);
} else {
darbeli.güç = 0;
darbeli.para = 0;
}
return darbeli;
}
void main()
{
Kahraman başlangıç = Kahraman(100, 10_000);
writefln("Herhangi bir kahraman için başlangıç %s - %s ",
başlangıç.güç, başlangıç. para);
writeln();
Kahraman benimKahramanım = başlangıç;
writefln("Yeni bir kahraman için başlangıç %s - %s",
benimKahramanım.güç, benimKahramanım.para);
writeln("Kahramanın bir tür darbe aldı");
enum darbe = DarbeTipi.Bomba; // Bıçak, Kılıç, Tabanca, Tüfek, Bomba
auto kahramanDurumu = darbeAl(benimKahramanım, darbe);
writefln("Kahramanın durumu: ♥ %s - € %s",
kahramanDurumu.güç, kahramanDurumu.para);
}
Örneğimde darbe tipini değiştirerek kahramanı çeşitli biçimlerde güçsüz ve parasız bırakabiliyorum. Yine ek bir yapı tanımlayarak yeni güçler ve kazanç kaynakları veya donatımsal araç gereçler eklemek mumkun. Öğrenme sürecindeki arkadaşlarımla paylaşmak istedim.
mert
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]