سؤال

ألعب مع صنع لعبة قائمة على طرفية بسيطة مع روبي، وأنا أحاول حاليا الخروج وسيلة لقراءة المدخلات من المحطة.

حتى الآن كنت تستخدم gets, ، ولكن أود أن تتفاعل اللعبة على الفور دون طلب جديد (حتى لا تحتاج إلى الضغط على مفتاح، ثم أدخل).

لقد اكتشفت أنني بحاجة إلى وضع المحطة في الوضع غير القانوني، وأنا أفترض أنني أستطيع القيام بذلك عن طريق الاتصال $stdin.ioctl. وبعد المشكلة هي، لست متأكدا من الحجج أو الأعلام التي يجب أن أتخلى عنها، والوثائق والبحث فقط تؤدي إلى معلومات حول وظيفة C الأساسية.

هل يمكن لأحد أن يقول لي ما يجب أن أتصل به $stdin.ioctl مع؟ أنا أستخدم Terminal.App/TCSH على OSX Leopard.

تحرير: هذا هو ما انتهى به الأمر باستخدام، وذلك بفضل markusq:

%x{stty -icanon -echo}
key = STDIN.read(1)
هل كانت مفيدة؟

المحلول

مشكلتك خارج روبي.

أسهل إجابة: لف io io في٪ x {stty -raw echo} و٪ x {stty -raw echo} لتغيير الوضع مع Stty.

من المحتمل أنك تريد أن تفعل وتضمن معالج خروج لجعل وضع معين يتم تعيين الوضع عند الخروج.

- Markusq.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top