Quiz tabanlı oyun için kodlama dili önerisi

Ferit Kaya

Hectopat
Katılım
30 Kasım 2019
Mesajlar
117
Çözümler
3
Merhabalar! İngilizce projesi için bir quiz oyunu yapmaya karar verdim ancak aklımda bazı sorular var. Yaklaşık bir ay vaktim var. Bundan seneler önce Visual Basic ile oyun ve bazı basit kodlamalar yapıyordum ancak üzerinden baya vakit geçti. C# ve python ile hiç deneyimim olmadı. Yapacağım oyunun içindeki pencere içeriği sürekli değişeceğinden ve aklımdaki sade tasarımı (köşeleri yuvarlatılmış pencere vb.) Visual Basic ile kodlamak zor olabilir diye düşünüyorum. Ancak hiç python tecrübem yok bu kadar kısa sürede öğrenebilir miyim emin değilim. Öğrensem de python kullanarak GUI yapmak sandığım kadar basit olmayabilir. Sonuç olarak Visual Basic'te GUI tasarlayabileceğim bir form örneği bulunuyor. En son çare olarak oyun motoru da önerebilirsiniz. Aşağıya daha net anlamanız için üzerinde çalıştığım konsept çalışmalarını bıraktım.

NOT: Konsept çalışmaları benim tarafımdan yapılmıştır. Hiç bir görsel çalışan bir program değildir, sadece temsili görüntülerdir. Uygulamanın Windows 7 üzerinde çalışabilmesini istediğimden UWP kullanmıyorum.

Ana Menü
ana menü.jpg


Oyun Oluşturma Menüsü
oyun seçim menüsü.jpg

Burada 4 tane yapmamın sebebi çok boş kalmasıydı sayfanın. Öncelik olarak True&False modunu yapmaya odaklanacağım.

Yükleme Ekranı
yükleme ekranı.jpg


Oyun İçi Görüntü
true false modu.jpg

Oyun içi böyle bir deneyim planlıyorum. Aslında Kahoot!'a oldukça benziyor. Yukarıda bir süre barı olmasını planlıyorum. Bunu Visual Basic ile yapmak zor olacaktır büyük ihtimal. Çünkü soru cevaplandıktan sonra sorunun cevabını gösteren bir ekran olmasını daha sonra diğer soruya geçmesini istiyorum. Yani pencere içeriği sabit olmayacak ve sürekli değişecek.

Cevap Ekranı
cevap ekranı.jpg

Oyun İçi Seçenekler


oyunu kaydet.jpg

Oyun içinde küçük bir menü planlıyorum. Buradan oyundan çıkış yapılabilecek ve oyun kaydedilebilecek.

Kayıt Menüsü
kayıt menüsü.jpg


Yardım ve Destek Menüsü
yardım menüsü.jpg

Bu menünün amacı yok hatta belki eklemem bile. Sadece Kullanmak istediğim tasarım elementlerini daha rahat gösterebilmek adına koydum.

Ayarlar Menüsü
ayarlar menüsü.jpg

Bu menü çok da önemli değil ama çözünürlük ayarı yapmayı istiyorum cidden. Ancak Visual Basic kullanırsam köşeleri yuvarlak bir pencere yapmak için kenarlıksız bir form yapmam gerekecek. Sonuç olarak bu formu hareket ettirmek veya yeniden boyutlandırmak mümkün olmayabilir.
 
Aslında süre sıkıntınız olmasa Python üzerinden PyQt5 Kütüphanesini kullanarak güzel arayüzler oluşturabilirsiniz. Bahsettiğiniz ve istediğiniz hemen hemen çoğunu bu kütüphane ile yapmak mümkün. Üstelik Visual studiodaki gibi arayüzü tasarlama programı da var QtDesigner diye geçiyor internetten bakabilirsiniz. Kenarları yumuşatmayıda yine bu kütüphane sayesinde yapabiliyorsunuz. CSS diline benzer kendi dili de var ayrıca. Adı QSS diye geçiyor. CSS de ne yapıyorsanız hemen hemen aynı şeyleri bu kütüphanede de yapabiliyorsunuz. Bir arayüz tasarladıktan sonra hangi componentin görünümünü değiştirmek istediğinizi googla yazıp sonuna da Qss eklediğinizde karşınıza birden fazla sonuç çıktığını görebilirsiniz.

Ama asıl sorun şurda. 1 ayda bu söylediklerimi azminizle orantılı olarak nasıl öğrenebilirsiniz ? Pythonda da zamanında biliyordum demişsiniz. Şimdi neyi ne kadar biliyorsunuz ? Class yapısı (içerisinde kalıtımında olduğu) ne derece aklınızda kaldı ? Bunu sormamın sebebi bu kütüphane ile yazılan çoğu projenin class yapısında yazıldığından dolayı (örneklere baktığınızda göreceksiniz).

Umarım istediğinizi yapabilirsiniz. olmadı öğrenmeye başlayın zorlandığınız kısımda biri sizin için arayüzü yapabilir biri, arayüzde kullanılan componentlerin bağlantısını yapabilir... Bilemiyorum umarım böyle yardım edenlerde çıkacaktır siz soru sordukça...
 
Ben olsam bunu javascript typescript ile yapar web sitesi uzerinden sunardim. Desktop app olmasini gerektirecek nasil bir zorunlulugun var?
 
Aslında süre sıkıntınız olmasa Python üzerinden PyQt5 Kütüphanesini kullanarak güzel arayüzler oluşturabilirsiniz. Bahsettiğiniz ve istediğiniz hemen hemen çoğunu bu kütüphane ile yapmak mümkün. Üstelik Visual studiodaki gibi arayüzü tasarlama programı da var QtDesigner diye geçiyor internetten bakabilirsiniz. Kenarları yumuşatmayıda yine bu kütüphane sayesinde yapabiliyorsunuz. CSS diline benzer kendi dili de var ayrıca. Adı QSS diye geçiyor. CSS de ne yapıyorsanız hemen hemen aynı şeyleri bu kütüphanede de yapabiliyorsunuz. Bir arayüz tasarladıktan sonra hangi componentin görünümünü değiştirmek istediğinizi googla yazıp sonuna da Qss eklediğinizde karşınıza birden fazla sonuç çıktığını görebilirsiniz.

Ama asıl sorun şurda. 1 ayda bu söylediklerimi azminizle orantılı olarak nasıl öğrenebilirsiniz ? Pythonda da zamanında biliyordum demişsiniz. Şimdi neyi ne kadar biliyorsunuz ? Class yapısı (içerisinde kalıtımında olduğu) ne derece aklınızda kaldı ? Bunu sormamın sebebi bu kütüphane ile yazılan çoğu projenin class yapısında yazıldığından dolayı (örneklere baktığınızda göreceksiniz).

Umarım istediğinizi yapabilirsiniz. olmadı öğrenmeye başlayın zorlandığınız kısımda biri sizin için arayüzü yapabilir biri, arayüzde kullanılan componentlerin bağlantısını yapabilir... Bilemiyorum umarım böyle yardım edenlerde çıkacaktır siz soru sordukça...

Yanıtınız için çok teşekkür ederim. QtDesigner hakkında biraz araştırma yaptım ve yabancı videolardan biraz fikir sahibi oldum. Sıkıntı sanırım Pythondaki yetersiz bilgimde şu anlık. Çünkü büyük ihtimal ara yüzü tasarlamak 1 haftamı bile almaz ancak her nesne için ayrı kod yazmak ve bu kodları bağlamak fazla vaktimi alabilir. Eğitici rehberlere baktığımda da adam akıllı bir şey bulamıyorum. Hep başlangıç düzeyi bilgiler yok hello world yok web tarayıcı cart curt. Aslında buna benzer bir proje yapılan bir rehber bulabilsem oradaki kodlardan yola çıkıp daha hızlı yazabilirim ancak sıfırdan öğrenmeye başlamak zor. Hocam eğer bu tarz bir kurs veya öğretici biliyorsanız link bırakırsanız sevinirim.
 
Hocam basit bir quiz oyunu yapacaksanız direk GDevelop 5'ten yapabilirsiniz, tutorialı var.

Eğer daha önce kodlama geçmişiniz olmadı ise başlangıç için güzel olacaktır.
 
Ben olsam bunu javascript typescript ile yapar web sitesi uzerinden sunardim. Desktop app olmasini gerektirecek nasil bir zorunlulugun var?

Aslında bunu da düşündüm. Çünkü bir ara JavaScript ile discord botu falan da kodlamışlığım var. Ancak sanırım bunları yapabilmem için HTML ve CSS bilgisine de sahip olmam gerekiyor ve maalesef bu konularda pek fikrim yok. Ayrıca bunu yapsam dahi bu projeyi minik bir pencerenin içine nasıl gömeceğim falan gibi bir sürü bilmediğim konu var o yüzden çok üzerinde durmadım. Teşekkür ederim ama tekrardan ele alabilirim belki.
Hocam basit bir quiz oyunu yapacaksanız direk gdevelop 5'ten yapabilirsiniz, tutorialı var.

Eğer daha önce kodlama geçmişiniz olmadı ise başlangıç için güzel olacaktır.

Rica etsem tutorial linki bırakabilir misiniz yasak değilse?
 
Aslında bunu da düşündüm. Çünkü bir ara JavaScript ile Discord botu falan da kodlamışlığım var. Ancak sanırım bunları yapabilmem için HTML ve CSS bilgisine de sahip olmam gerekiyor ve maalesef bu konularda pek fikrim yok. Ayrıca bunu yapsam dahi bu projeyi minik bir pencerenin içine nasıl gömeceğim falan gibi bir sürü bilmediğim konu var o yüzden çok üzerinde durmadım. Teşekkür ederim ama tekrardan ele alabilirim belki.

Rica etsem tutorial linki bırakabilir misiniz yasak değilse?

Bu içeriği görüntülemek için üçüncü taraf çerezlerini yerleştirmek için izninize ihtiyacımız olacak.
Daha detaylı bilgi için, çerezler sayfamıza bakınız.

Kendim fen bilimleri projesi için kullanmıştım, işe yarıyor :)
 
Yanıtınız için çok teşekkür ederim. QtDesigner hakkında biraz araştırma yaptım ve yabancı videolardan biraz fikir sahibi oldum. Sıkıntı sanırım Pythondaki yetersiz bilgimde şu anlık. Çünkü büyük ihtimal ara yüzü tasarlamak 1 haftamı bile almaz ancak her nesne için ayrı kod yazmak ve bu kodları bağlamak fazla vaktimi alabilir. Eğitici rehberlere baktığımda da adam akıllı bir şey bulamıyorum. Hep başlangıç düzeyi bilgiler yok hello world yok web tarayıcı cart curt. Aslında buna benzer bir proje yapılan bir rehber bulabilsem oradaki kodlardan yola çıkıp daha hızlı yazabilirim ancak sıfırdan öğrenmeye başlamak zor. Hocam eğer bu tarz bir kurs veya öğretici biliyorsanız link bırakırsanız sevinirim.
Araştırmanız sonucunda bulduğunuz videolardan biri buradaki oynatma listesinden değilse 7. videodan başlayıp 11. videoya kadar izlemeniz birşeylerin nasıl çalıştığı konusunda fikir oluşturabilir(ki bunlardan sonra video listesinden gitmenize gerek yok Bir faydasını görmedim kendini tanıtmaya çalışan bir yt kanalı dışında ). Onun dışında qt designer ile oluşturulan arayüzde kullanılan componentin arka tarafta nasıl işlev kazandırılır konusuna gelince burada yapmanız gereken şey, neyi kullanacaksanız onun nasıl kullanıldığının örneklerine bakmanız. Sizin için küçük bir kod bırakayım(fazla karışık olmayan) açıklamasını da bıraktıktan sonra yapıcam.

(Mount & Blade Warbandda muharebe büyüklüğünü ayarlamana yarayan kod)

Python:
# -*- coding: utf-8 -*-

from getpass import getuser
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QMessageBox
import platform

class Ui_Form(object):
    def setupUi(self, Form):
        Form.setObjectName("Form")
        Form.setEnabled(True)
        Form.resize(707, 249)
        Form.setMinimumSize(QtCore.QSize(707, 249))
        Form.setMaximumSize(QtCore.QSize(707, 249))
        Form.setAcceptDrops(False)
        icon = QtGui.QIcon()
        icon.addPixmap(QtGui.QPixmap("C:\\Users\\"+getuser()+"\\Desktop\\Coding\\../icon.ico"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        Form.setWindowIcon(icon)
        self.pushButton = QtWidgets.QPushButton(Form)
        self.pushButton.setGeometry(QtCore.QRect(580, 190, 111, 41))
        font = QtGui.QFont()
        font.setPointSize(14)
        self.pushButton.setFont(font)
        self.pushButton.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor))
        self.pushButton.setObjectName("pushButton")
        self.label = QtWidgets.QLabel(Form)
        self.label.setGeometry(QtCore.QRect(10, 10, 141, 41))
        font = QtGui.QFont()
        font.setFamily("Gabriola")
        font.setPointSize(16)
        font.setBold(False)
        font.setWeight(50)
        self.label.setFont(font)
        self.label.setObjectName("label")
        self.horizontalSlider = QtWidgets.QSlider(Form)
        self.horizontalSlider.setGeometry(QtCore.QRect(120, 101, 511, 16))
        self.horizontalSlider.setCursor(QtGui.QCursor(QtCore.Qt.SizeHorCursor))
        self.horizontalSlider.setMaximum(100)
        self.horizontalSlider.setPageStep(1)
        self.horizontalSlider.setProperty("value", 0)
        self.horizontalSlider.setSliderPosition(0)
        self.horizontalSlider.setTracking(False)
        self.horizontalSlider.setOrientation(QtCore.Qt.Horizontal)
        self.horizontalSlider.setInvertedAppearance(False)
        self.horizontalSlider.setInvertedControls(False)
        self.horizontalSlider.setTickPosition(QtWidgets.QSlider.NoTicks)
        self.horizontalSlider.setTickInterval(1)
        self.horizontalSlider.setObjectName("horizontalSlider")
        self.groupBox = QtWidgets.QGroupBox(Form)
        self.groupBox.setGeometry(QtCore.QRect(10, 200, 81, 41))
        self.groupBox.setAlignment(QtCore.Qt.AlignHCenter|QtCore.Qt.AlignTop)
        self.groupBox.setFlat(False)
        self.groupBox.setCheckable(False)
        self.groupBox.setObjectName("groupBox")
        self.label_2 = QtWidgets.QLabel(self.groupBox)
        self.label_2.setGeometry(QtCore.QRect(10, 20, 61, 16))
        font = QtGui.QFont()
        font.setFamily("Corbel Light")
        font.setPointSize(9)
        font.setBold(False)
        font.setWeight(50)
        self.label_2.setFont(font)
        self.label_2.setObjectName("label_2")
        self.lcdNumber = QtWidgets.QLCDNumber(Form)
        self.lcdNumber.setGeometry(QtCore.QRect(234, 120, 255, 31))
        self.lcdNumber.setFrameShape(QtWidgets.QFrame.NoFrame)
        self.lcdNumber.setFrameShadow(QtWidgets.QFrame.Sunken)
        self.lcdNumber.setSmallDecimalPoint(True)
        self.lcdNumber.setDigitCount(3)
        self.lcdNumber.setSegmentStyle(QtWidgets.QLCDNumber.Flat)
        self.lcdNumber.setProperty("value", 0.0)
        self.lcdNumber.setObjectName("lcdNumber")
        self.label_3 = QtWidgets.QLabel(Form)
        self.label_3.setGeometry(QtCore.QRect(120, 120, 16, 16))
        self.label_3.setObjectName("label_3")
        self.label_4 = QtWidgets.QLabel(Form)
        self.label_4.setGeometry(QtCore.QRect(620, 120, 55, 16))
        self.label_4.setObjectName("label_4")

        self.retranslateUi(Form)
        QtCore.QMetaObject.connectSlotsByName(Form)

        self.horizontalSlider.valueChanged.connect(self.updateLCD)
        self.pushButton.clicked.connect(self.wbFile)

    def retranslateUi(self, Form):
        _translate = QtCore.QCoreApplication.translate
        Form.setWindowTitle(_translate("Form", "Battle Size for M&B"))
        self.pushButton.setText(_translate("Form", "Apply"))
        self.label.setText(_translate("Form", "BATTLE-SIZE"))
        self.groupBox.setTitle(_translate("Form", "CODER"))
        self.label_2.setText(_translate("Form", "HΞLMSУS"))
        self.label_3.setText(_translate("Form", "0"))
        self.label_4.setText(_translate("Form", "100"))

    def updateLCD(self,x):
        self.lcdNumber.display(x)
 
    def wbFile(self):
        msg = QMessageBox()
        msg.setIcon(QMessageBox.Information)
        msg.setText(f"Battle size set to {self.horizontalSlider.value()}")
        # msg.setInformativeText("This is additional information")
        msg.setWindowTitle("Succes")
        msg.setStandardButtons(QMessageBox.Ok | QMessageBox.Cancel)
        msg.exec_()

        file = "C:\\Users\\"+getuser()+"\\Documents\\Mount&Blade Warband\\rgl_config.txt"
        with open(file,"r") as f:
            ff=f.readlines()
        ff[120] = f"battle_size = {self.horizontalSlider.value()}.0000\n"
        with open(file,"w") as g:
            g.writelines(ff)

if __name__ == "__main__":
    import sys
    if platform.system() == "Windows":
        app = QtWidgets.QApplication(sys.argv)
        Form = QtWidgets.QWidget()
        ui = Ui_Form()
        ui.setupUi(Form)
        Form.show()
        sys.exit(app.exec_())

Şimdi burada görünen çoğu kodu elimle yazmadım. QtDesigner ile bir arayüz oluşturduktan sonra gerekli arayüzü kullanabilmek için python koduna dönüştürdüm. Ki bunuda yapmak oldukça basit internette tonlarca örneği var.

Koda ekleme yaptığım tek kısım şurası:
Python:
        self.horizontalSlider.valueChanged.connect(self.updateLCD) # Slider'a (kaydırıcı) nın değerini değiştirdikçe yapılacak işlem
        self.pushButton.clicked.connect(self.wbFile) # butona tıklandığında yapılacak işlem

def updateLCD(self,x):
        self.lcdNumber.display(x)
 
########## VE ####################
        file = "C:\\Users\\"+getuser()+"\\Documents\\Mount&Blade Warband\\rgl_config.txt"
        with open(file,"r") as f:
            ff=f.readlines()
        ff[120] = f"battle_size = {self.horizontalSlider.value()}.0000\n"
        with open(file,"w") as g:
            g.writelines(ff)

Bunun dışında kalanlar ise çevirme sonucu oluşan arayüz. Yani ne yapacağınıza karar verin ve ne kullanacağınızı da seçtikten sonra kullanacağını alana benzer aynı olmak zorunda değil internetten bunun hakkında örneklere bakmak.
 
Son düzenleme:
Araştırmanız sonucunda bulduğunuz videolardan biri buradaki oynatma listesinden değilse 7. videodan başlayıp 11. videoya kadar izlemeniz birşeylerin nasıl çalıştığı konusunda fikir oluşturabilir(ki bunlardan sonra video listesinden gitmenize gerek yok Bir faydasını görmedim kendini tanıtmaya çalışan bir yt kanalı dışında ). Onun dışında qt designer ile oluşturulan arayüzde kullanılan componentin arka tarafta nasıl işlev kazandırılır konusuna gelince burada yapmanız gereken şey, neyi kullanacaksanız onun nasıl kullanıldığının örneklerine bakmanız. Sizin için küçük bir kod bırakayım(fazla karışık olmayan) açıklamasını da bıraktıktan sonra yapıcam.

(Mount & Blade Warbandda muharebe büyüklüğünü ayarlamana yarayan kod)

Python:
# -*- coding: utf-8 -*-

from getpass import getuser
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QMessageBox
import platform

class Ui_Form(object):
    def setupUi(self, Form):
        Form.setObjectName("Form")
        Form.setEnabled(True)
        Form.resize(707, 249)
        Form.setMinimumSize(QtCore.QSize(707, 249))
        Form.setMaximumSize(QtCore.QSize(707, 249))
        Form.setAcceptDrops(False)
        icon = QtGui.QIcon()
        icon.addPixmap(QtGui.QPixmap("C:\\Users\\"+getuser()+"\\Desktop\\Coding\\../icon.ico"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        Form.setWindowIcon(icon)
        self.pushButton = QtWidgets.QPushButton(Form)
        self.pushButton.setGeometry(QtCore.QRect(580, 190, 111, 41))
        font = QtGui.QFont()
        font.setPointSize(14)
        self.pushButton.setFont(font)
        self.pushButton.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor))
        self.pushButton.setObjectName("pushButton")
        self.label = QtWidgets.QLabel(Form)
        self.label.setGeometry(QtCore.QRect(10, 10, 141, 41))
        font = QtGui.QFont()
        font.setFamily("Gabriola")
        font.setPointSize(16)
        font.setBold(False)
        font.setWeight(50)
        self.label.setFont(font)
        self.label.setObjectName("label")
        self.horizontalSlider = QtWidgets.QSlider(Form)
        self.horizontalSlider.setGeometry(QtCore.QRect(120, 101, 511, 16))
        self.horizontalSlider.setCursor(QtGui.QCursor(QtCore.Qt.SizeHorCursor))
        self.horizontalSlider.setMaximum(100)
        self.horizontalSlider.setPageStep(1)
        self.horizontalSlider.setProperty("value", 0)
        self.horizontalSlider.setSliderPosition(0)
        self.horizontalSlider.setTracking(False)
        self.horizontalSlider.setOrientation(QtCore.Qt.Horizontal)
        self.horizontalSlider.setInvertedAppearance(False)
        self.horizontalSlider.setInvertedControls(False)
        self.horizontalSlider.setTickPosition(QtWidgets.QSlider.NoTicks)
        self.horizontalSlider.setTickInterval(1)
        self.horizontalSlider.setObjectName("horizontalSlider")
        self.groupBox = QtWidgets.QGroupBox(Form)
        self.groupBox.setGeometry(QtCore.QRect(10, 200, 81, 41))
        self.groupBox.setAlignment(QtCore.Qt.AlignHCenter|QtCore.Qt.AlignTop)
        self.groupBox.setFlat(False)
        self.groupBox.setCheckable(False)
        self.groupBox.setObjectName("groupBox")
        self.label_2 = QtWidgets.QLabel(self.groupBox)
        self.label_2.setGeometry(QtCore.QRect(10, 20, 61, 16))
        font = QtGui.QFont()
        font.setFamily("Corbel Light")
        font.setPointSize(9)
        font.setBold(False)
        font.setWeight(50)
        self.label_2.setFont(font)
        self.label_2.setObjectName("label_2")
        self.lcdNumber = QtWidgets.QLCDNumber(Form)
        self.lcdNumber.setGeometry(QtCore.QRect(234, 120, 255, 31))
        self.lcdNumber.setFrameShape(QtWidgets.QFrame.NoFrame)
        self.lcdNumber.setFrameShadow(QtWidgets.QFrame.Sunken)
        self.lcdNumber.setSmallDecimalPoint(True)
        self.lcdNumber.setDigitCount(3)
        self.lcdNumber.setSegmentStyle(QtWidgets.QLCDNumber.Flat)
        self.lcdNumber.setProperty("value", 0.0)
        self.lcdNumber.setObjectName("lcdNumber")
        self.label_3 = QtWidgets.QLabel(Form)
        self.label_3.setGeometry(QtCore.QRect(120, 120, 16, 16))
        self.label_3.setObjectName("label_3")
        self.label_4 = QtWidgets.QLabel(Form)
        self.label_4.setGeometry(QtCore.QRect(620, 120, 55, 16))
        self.label_4.setObjectName("label_4")

        self.retranslateUi(Form)
        QtCore.QMetaObject.connectSlotsByName(Form)

        self.horizontalSlider.valueChanged.connect(self.updateLCD)
        self.pushButton.clicked.connect(self.wbFile)

    def retranslateUi(self, Form):
        _translate = QtCore.QCoreApplication.translate
        Form.setWindowTitle(_translate("Form", "Battle Size for M&B"))
        self.pushButton.setText(_translate("Form", "Apply"))
        self.label.setText(_translate("Form", "BATTLE-SIZE"))
        self.groupBox.setTitle(_translate("Form", "CODER"))
        self.label_2.setText(_translate("Form", "HΞLMSУS"))
        self.label_3.setText(_translate("Form", "0"))
        self.label_4.setText(_translate("Form", "100"))

    def updateLCD(self,x):
        self.lcdNumber.display(x)
 
    def wbFile(self):
        msg = QMessageBox()
        msg.setIcon(QMessageBox.Information)
        msg.setText(f"Battle size set to {self.horizontalSlider.value()}")
        # msg.setInformativeText("This is additional information")
        msg.setWindowTitle("Succes")
        msg.setStandardButtons(QMessageBox.Ok | QMessageBox.Cancel)
        msg.exec_()

        file = "C:\\Users\\"+getuser()+"\\Documents\\Mount&Blade Warband\\rgl_config.txt"
        with open(file,"r") as f:
            ff=f.readlines()
        ff[120] = f"battle_size = {self.horizontalSlider.value()}.0000\n"
        with open(file,"w") as g:
            g.writelines(ff)

if __name__ == "__main__":
    import sys
    if platform.system() == "Windows":
        app = QtWidgets.QApplication(sys.argv)
        Form = QtWidgets.QWidget()
        ui = Ui_Form()
        ui.setupUi(Form)
        Form.show()
        sys.exit(app.exec_())

Şimdi burada görünen çoğu kodu elimle yazmadım. QtDesigner ile bir arayüz oluşturduktan sonra gerekli arayüzü kullanabilmek için python koduna dönüştürdüm. Ki bunuda yapmak oldukça basit internette tonlarca örneği var.

Koda ekleme yaptığım tek kısım şurası:
Python:
        self.horizontalSlider.valueChanged.connect(self.updateLCD) # Slider'a (kaydırıcı) nın değerini değiştirdikçe yapılacak işlem
        self.pushButton.clicked.connect(self.wbFile) # butona tıklandığında yapılacak işlem

def updateLCD(self,x):
        self.lcdNumber.display(x)
 
########## VE ####################
        file = "C:\\Users\\"+getuser()+"\\Documents\\Mount&Blade Warband\\rgl_config.txt"
        with open(file,"r") as f:
            ff=f.readlines()
        ff[120] = f"battle_size = {self.horizontalSlider.value()}.0000\n"
        with open(file,"w") as g:
            g.writelines(ff)

Bunun dışında kalanlar ise çevirme sonucu oluşan arayüz. Yani ne yapacağınıza karar verin ve ne kullanacağınızı da seçtikten sonra kullanacağını alana benzer aynı olmak zorunda değil internetten bunun hakkında örneklere bakmak.

Gerçekten çok teşekkür ederim bu bilgiler için. Bunlardan yola çıkarak bir şekilde bir şeyler deneyeceğim önümüzdeki günlerde. Ayrıca kusura bakmayın fazla geç döndüm çünkü QTDesigner ve Figma öğreniyordum. Yazılım mühendisliği öğrencisi bir arkadaşım bana ilk baş HTML ve CSS ile başla sonrasında Python ile çalışmaya başla çok daha rahat kavrarsın dedi. Ben de bu projeyi bu kadar hızlı yetiştiremeyeceğimi düşünüp 5-6 ay sonra yapma kararı aldım. Şu anda HTML kurslarını izliyorum ve basitinden HTML öğreniyorum. Okulumuzda olacak bir etkinlik için bir web sitesi tasarlanması gerekiyordu ben de gönüllü olarak siteyi tasarlama görevini üstlendim. Umarım benim için güzel bir deneyim olur.

Onun haricinde quiz tabanlı oyuna ilerleyen zamanlarda biraz deneyim kazandıktan sonra döneceğim. Eğer proje ciddi anlamda sıkıntısız olursa forumda da paylaşmayı planlıyorum. Değerli vaktinizi ayırdığınız için teşekkür ederim. İyi forumlar hocam!
C# taraftarıyım. Tasarım konusunu çabucak atlayarak oyun içeriğine daha fazla odaklanmanıza yardımcı olur bence.

C#'in zor olduğunu duydum. Üst düzey bir oyun olmadığından ötürü uzak durdum. Bu projeye ne gibi bir avantajı olabilir? Eğer işleri daha kolay ve hızlı yapacaksa düşünülebilir.
 

Yeni konular

Geri
Yukarı