2012-05-08 14 views
8

मैं TUI के साथ अजगर का उपयोग कर लिनक्स में एक छोटा सा सुडोकू खेल/solver लिख रहा हूँ सिर्फ मनोरंजन के लिए (नहीं जीयूआई, कि सिर्फ लंगड़ा है)। मेरा सवाल यह है कि कौन सा lib बेहतर है (इसके द्वारा मेरा मतलब है संभालना आसान है, बेहतर समर्थन, अधिक सीधे आगे और समझने योग्य), विकल्प curses या urwid हैं या यदि किसी के पास बेहतर सुझाव है, और क्यों? मेरे पास कुछ टिंकर और WxPython अनुभव हैं।अजगर TUI libs

कोई भी मदद या जानकारी की सराहना की जाएगी।

+0

यदि आप कहीं भी अपना कोड होस्ट करते हैं, तो हमें बताएं। – ychaouche

उत्तर

9

आप Unicurses को देखना चाहते हैं, जो यूनिक्स सिस्टम में पायथन कोर श्राप मॉड्यूल को लपेटता है और विंडोज-आधारित मशीनों पर मुफ्त पीडीसीआरएस लाइब्रेरी को लपेटता है।

यह पुस्तकालय मूल ncurses लाइब्रेरी के वाक्यविन्यास और शैली का अनुकरण करने के लिए डिज़ाइन किया गया है, इसलिए यदि आप शाप-शैली प्रोग्रामिंग का उपयोग कर टीयूआई डिज़ाइन सीखने में रुचि रखते हैं, तो इसे देखें।

Urwid, मैंने जो कुछ दस्तावेज पढ़ा है, वह एक बहुत ही रोचक लाइब्रेरी है जो इवेंट लूप (reactor pattern) का उपयोग अनुप्रयोग डिजाइन के आधार के रूप में करता है, जो टिंकर या ट्विस्टेड की तरह है। इसके अलावा, urwid में एक ईवेंट लूप क्लास है जिसे विशेष रूप से ट्विस्ट के साथ उपयोग के लिए डिज़ाइन किया गया है, इसलिए यदि आपका लक्ष्य नेटवर्क पर उपयोग के लिए टीयूआई बनाना है, तो यह एक अच्छी पसंद है। ट्विस्ट भी रिएक्टर पैटर्न का उपयोग करता है, इसलिए यदि आप शैली सीखना चाहते हैं, तो मैं इसकी अनुशंसा करता हूं।

अंत में, यदि आप एक ncurses शैली पुस्तकालय के साथ जाना है, Dan Gookin's book on ncurses की जाँच करें। एक बहुत अच्छा संसाधन, और केवल मुझे पता है कि आज प्रिंट में है।

अन्य विकल्प हैं जैसे newt, pygcurses, और इसी तरह, लेकिन यह आपको शुरू करना चाहिए। शुभकामनाएं, टीयूआई प्रोग्रामिंग आज उन तकनीकी fetishes में से एक है जो तोड़ना मुश्किल हो सकता है, लेकिन यह पुरस्कृत है।

+0

चूंकि मुझे विंडोज की परवाह नहीं है, यूनिकर्स अनावश्यक हो सकते हैं। न्यूट अच्छा दिखता है, इसका नाम खरीदें मुझे जीओपी नामांकन दुःस्वप्न की याद दिलाता है ... मैंने पीईजीआई खेलों के कुछ उदाहरणों को पीईजीसीर्स की साइट पर देखा, जो मेरा उद्देश्य है। आपका बहुत बहुत धन्यवाद। – lllluuukke

+1

ठीक है अगर आप शाप के साथ गेम देव में शामिल होने की उम्मीद कर रहे हैं, तो [libtcod] (http://doryen.eptalys.net/libtcod/) देखें, जो roguelikes और इस तरह के लिए एक बहुत ही शक्तिशाली टीयूआई लाइब्रेरी है। पाइथन में गैर-नेटवर्क वाले रोग्वेलिक विकास के लिए यह बहुत अधिक लाइब्रेरी है, और इसका उपयोग करने में अपेक्षाकृत आसान है। – Chazu

+0

आपकी मदद के लिए फिर से धन्यवाद। – lllluuukke

1

अपने खेल सांत्वना के अंदर भी चलेंगे तो फिर बस curses लेने।

अपने खेल एक जीयूआई आवेदन के रूप में चलेंगे तो फिर बस PySide लेने।

4

जबकि इसके बाद के संस्करण लिनक्स के लिए एक पूरी तरह से उचित समाधान है, ओपी अन्य सुझाव है और उनके लिए एक औचित्य के लिए कहा।

कौन अजगर की तरह एक आधुनिक OO भाषा में शाप की तरह एक निम्न स्तर एपीआई का उपयोग करना चाहता है? अगर आप विंडोज के अंदर फंस गए हैं (जो ओपी नहीं है, लेकिन वहां बहुत से लोगों के लिए एक समस्या है) अकेले रहने दो ... ... एक बेहतर तरीका होना चाहिए। उनके टर्मिनल/कंसोल से सब बातों ज्यादातर लोगों करना चाहते हैं - (PDcurses पर वापस गिरने के बिना विंडोज शामिल किया गया है हाँ)

इस हल करने का प्रयास करने के लिए, मैं एक साथ एक सरल क्रॉस प्लेटफॉर्म वर्ग डाल दिया है। यदि आप लिनक्स पर हैं तो यह कार्यक्रम शाप के लिए एक और मानव तरीका है। यदि आप विंडोज़ पर हैं, तो वही वर्ग काम करता है जैसे बाहरी बाइनरी निर्भरता नहीं है। आप https://github.com/peterbrittain/asciimatics में स्क्रीन क्लास पा सकते हैं।

इसके अलावा, मैं एनिमेशन और TUIs बनाने के लिए highr स्तर वस्तुओं का भार बना लिया है।

Text UI widgets

अगर वहाँ एक अतिरिक्त सुविधा की जरूरत है, मुझे पता है और मैं मैं क्या कर सकता देखेंगे: उदाहरण के लिए, इस TUI विजेट का उपयोग करते हुए एक नमूना की रिकॉर्डिंग है।

+0

पवित्र बकवास, यह पुस्तकालय कमाल है! साझा करने के लिए धन्यवाद! <3 – elias