Programlamaya yeniyim ve ilk büyük sorunumu çözmeye ve ilk büyük programımı yazmaya çalışıyorum. Öğrenmek için açık kaynak kod örnekleri aradım, ancak şimdiye kadar sadece tam olarak anlamadığım veya gerçekten öğrenmem gereken çok ilgili şeyler yapan dillerde kodlar buldum. Burada bazı kavramsal adımlar atmakta zorlanıyorum.
Küçük organik molekülleri oluşturmak, değiştirmek ve daha sonra temsil etmek için basit bir yazılım parçası yapmak istiyorum. Bu esas olarak bir öğrenme alıştırmasıdır. Bir kullanıcı bir SMILES dizesi verir veya temel bir dizi başlangıç molekülü arasından seçim yapar ve daha sonra bu molekül üzerinde grafiksel olarak veya bir metin giriş sözdizimi yoluyla oluşturulabilir. Ancak henüz bu karmaşıklık noktasında değilim. Molekülleri depolamak için sınıfların / nesnelerin nasıl yapılacağını tam olarak anlayamıyorum. Öyleyse, sorum kısa ve öz: Tüm bilgileri korurken moleküller oluşturmak için sınıfları / nesneleri nasıl kullanırım ve hangi nesnelere öznitelik olarak hangi veri yapılarını kullanmalıyım? Ve, nesneler diğer nesnelere öznitelik olabilir mi?
İşte benim düşünce trenim: Ben bir "Molekül" sınıfı, sonra bir "Atom" sınıfı / alt sınıfı ve bir "Bond" alt sınıfı ve belki de bir "FunctionalGroup" alt sınıfı var düşünüyordum. Bu başlamak için iyi bir yer gibi görünüyor, ama belki OOP yanlış anlıyorum ve bu kötü. Ama sonra sorunum gerçekten kafa karıştırıyor (benim için). Tüm bu kavramlara / fikirlere / sınıflara sahip olmama rağmen, molekülü temsil etmek için hangi veri yapılarının gerekli olduğunu tam olarak kavrayamıyorum. Bir atom listesi olması iyi bir şey olurdu. Bu liste Atom nesnelerinin bir listesi olabilir mi? Bağlantıyı saklamanın bir yoluna ihtiyacım olacaktı. Bir 2D matris, matris konumlarında tamsayı olarak bağlanma sırası ile iyi bir fikir gibi görünüyor.
Bu noktada göreve boğulmaya başlıyorum. Şimdiye kadar yaptığım her şey mantıklı mı? Bunun üzerine bir ekran / çizim yönü eklemek, bu şeylerin çoğunu yeniden yazmam / yeniden işlemem gerektiği anlamına gelebilir, ancak en azından ilgili verilerle molekülleri depolayabileceğim ve daha sonra erişebileceğim bir noktaya gelmeye çalışıyorum denetlemek / değiştirmek için bu verileri kullanın. Python bunu yapmayı düşünüyordum, bu yüzden kod / sınıflar belki böyle bir şey olurdu: http://pastebin.com/uUi1BMzr
Belki de bu gerçekten StackOverflow için bir programlama soruları, ama buraya gitmek için yeterince spesifik olduğunu düşündüm. Kavramsal hatalar yaptığım yeri işaret etseniz bile, herhangi bir yardım çok takdir edilecektir. Şimdiden teşekkürler.