คำถามติดแท็ก text-based

9
ทำไมเนื้อหาโค้ดฮาร์โค้ดถึงไม่ดี?
ฉันรู้ว่าส่วนใหญ่เก็บข้อความสนทนาในไฟล์เกม แต่ฉันเคยเห็นเกมที่ใช้ข้อความเป็นตัวเขียนเนื้อหา (แผนที่ตัวเลือกคำสั่งของผู้เล่นที่เป็นไปได้ข้อความในเนื้อเรื่อง) ลงในรหัสเกม ฉันนึกถึงเหตุผลไม่กี่ข้อ แต่อะไรคือสาเหตุหลักที่ทำให้เกมข้อความแม้แต่เก็บทุกอย่างไว้ในไฟล์นอกโปรแกรม รายละเอียดการใช้งานแตกต่างกันเล็กน้อยระหว่างการเก็บเนื้อหาในบางสิ่งเช่นรูปแบบ XML ที่เป็นที่นิยมการแยกวิเคราะห์แล้วแสดงแผนที่ / การแสดงข้อความตามตัวแปรที่สร้างจากไฟล์ XML และเพียงแค่ละไฟล์ XML ทั้งหมด พวกเขาทั้งสองจบลงด้วยสตริงที่ส่งออกไปยังหน้าจอ ไม่ใช่ความแตกต่างเพียงสัญกรณ์ใช่ไหม บางเกมยังมีกราฟิก (ASCII art?) อยู่ในโค้ด ฉันรู้ว่ามันไม่ถูกต้องและฉันสามารถเดาได้ว่าทำไมมันถึงไม่ดี แต่ก็ไม่รู้เหตุผลสำคัญว่าทำไม เป็นที่นิยมอย่างมากที่จะมีเนื้อหาส่วนใหญ่อยู่นอกโปรแกรม แม้แต่ป้อมปราการคนแคระก็ไม่ได้ใช้อักขระ ASCII จริง แต่ภาพของอักขระ ASCII ที่โหลดเข้าสู่หน่วยความจำ ฉันถามเป็นหลักเพราะมันเป็นบิตของ PITA ในการสร้างวิเคราะห์และทำงานกับไฟล์ XML คุณรู้ไหมว่า ... เมื่อเทียบกับทางเลือกที่ขี้เกียจเพียงสร้างดันเจี้ยนที่ไม่เหมือนใคร (เนื้อหา) คลาสของตัวเอง

7
ฉันจะแยกวิเคราะห์การป้อนข้อมูลของผู้ใช้ในเกมผจญภัยข้อความได้อย่างไร
แยกคำสั่งที่ใช้ในการผจญภัยข้อความเป็นสเปกตรัมจากการผจญภัยง่าย 's 'ไปทิศตะวันตกเฉียงเหนือ' เพื่อบางคนที่ใจ bogglingly ฉลาดในhhgttg ฉันดูเหมือนจะจำการอ่านที่ดีวิธีการชำระเงินในนิตยสารคอมพิวเตอร์ย้อนกลับไปในยุค 80 แต่ตอนนี้ผมพบว่าเกือบไม่มีอะไรที่ 'สุทธิยกเว้นสั้นวิกิพีเดียโทษ วิธีจะคุณจะทำหรือไม่ ปรับปรุง : ฉันไปด้วยวิธีการที่ง่ายที่สุดที่เป็นไปได้ในรายการ Ludum กล้าของฉัน

2
ฝัง IF text parser ในเกมอื่นหรือไม่
มีเครื่องมือแยกวิเคราะห์ข้อความเชิงโต้ตอบที่มีอยู่ที่ฉันสามารถฝังในเกมหรือแอปพลิเคชันอื่นได้หรือไม่ ฉันกำลังมองหาที่จะใช้เป็นห้องสมุด ฉันสามารถส่งผ่านวัตถุและคำกริยาที่มีจากด้านข้างของฉันเอง มันจะแยกประโยคจากผู้ใช้และให้โครงสร้าง / AST อธิบายสิ่งที่ผู้ใช้ถามกลับ จากนั้นรหัสของฉันเองก็สามารถดำเนินการตามคำขอนั้นได้ ฉันไม่ต้องการอะไรระดับ SIRI ประโยคและแอ็คชั่นพื้นฐานที่สนับสนุนเกม IF ปัจจุบันนั้นใช้ได้ดี แต่ฉันไม่ต้องการเขียนตัวแยกวิเคราะห์ข้อความ / ประโยคทั้งหมดด้วยตนเอง นี่ไม่ใช่เกม If และฉันไม่สามารถเขียนได้ทั้งหมดในภาษาเชิงโต้ตอบเช่นแจ้ง 7. น่าเสียดายที่ฉันไม่สามารถหาตัวอย่างของใครก็ตามที่ใช้ความสามารถในการแยกวิเคราะห์ข้อความของเอ็นจิ้นเหล่านี้โดยไม่ต้องเขียนทั้งหมด เกมในภาษาของเครื่องยนต์

5
การสร้างคำอธิบายการโจมตีแบบ MUD ตามหลักไวยากรณ์ที่ถูกต้อง
ขณะนี้ฉันกำลังทำงานกับเกมที่ใช้ข้อความซึ่งผลของรอบการต่อสู้มีลักษณะเช่นนี้ %attacker% inflicts a serious wound (12 points damage) on %defender% ตอนนี้ฉันเพิ่งสลับผู้โจมตี% ด้วยชื่อผู้โจมตีและ% ผู้พิทักษ์% สำหรับชื่อผู้พิทักษ์ อย่างไรก็ตามคำอธิบายใช้งานได้ แต่อ่านไม่ถูกต้อง เนื่องจากเกมเป็นเพียงข้อความทั้งหมดฉันไม่ต้องการใช้คำอธิบายทั่วไป (เช่น "คุณใช้ Attack on Goblin สำหรับความเสียหาย 5 ครั้ง" ซึ่งเนื้อหาสามารถแก้ไขปัญหาได้) ฉันจะสร้างคำอธิบายที่ถูกต้องสำหรับกรณีที่% attacker% อ้างถึงได้อย่างไร "คุณ" ผู้เล่น? "คุณทำผิด ... " ผิด "ผึ้ง" หรือพหูพจน์อื่น ๆ ? ฉันต้องการอย่างใดรู้ว่าฉันควรนำหน้าชื่อด้วย "The" หาก% attacker% เป็นคำนามทั่วไปเช่น "Goblin" มันจะอ่านแปลก ๆ เมื่อเทียบกับ% attacker% …
13 mud  text-based 

1
การจัดระเบียบระดับ / ห้องในโลกตามข้อความสไตล์โคลน
ฉันกำลังคิดที่จะเขียนเกมผจญภัยแบบข้อความขนาดเล็ก แต่ฉันไม่แน่ใจว่าฉันควรออกแบบโลกจากมุมมองทางเทคนิคอย่างไร ความคิดแรกของฉันคือการทำใน XML ออกแบบสิ่งต่อไปนี้ ขอโทษสำหรับกอง XML ขนาดใหญ่ แต่ฉันรู้สึกว่าสำคัญที่จะต้องอธิบายสิ่งที่ฉันทำอย่างเต็มที่ <level> <start> <!-- start in kitchen with empty inventory --> <room>Kitchen</room> <inventory></inventory> </start> <rooms> <room> <name>Kitchen</name> <description>A small kitchen that looks like it hasn't been used in a while. It has a table in the middle, and there are some cupboards. …

3
ฉันจะใช้บทสนทนาการแยกสาขาในจาวาสคริปต์ได้อย่างไร
ฉันสร้างเกมประเภทvisual visualพื้นฐานขึ้นใน JavaScript ฉันเป็นผู้เริ่มต้นดังนั้นฉันแค่ทำเพื่อความสนุกและการเรียนรู้และเนื่องจากการวางแผนที่ไม่ถูกต้องฉันได้พบกับปัญหาเล็กน้อยเมื่อคุณไปที่สาขาในการสนทนา ขณะนี้ฉันถือสคริปต์สำหรับเกมในตัวแปรสตริงและฉันแบ่งแต่ละฉากด้วยแท็กเช่น "# ~" เป็นอาร์เรย์ที่เล็กลงเพื่อให้สคริปต์เกมมีลักษณะดังนี้: var script = "Hello World!#~How are you today?" var gameText = script.split("#~"); //gameText[0]= Hello World! สิ่งนี้ใช้งานได้ดีสำหรับสิ่งที่เป็นเส้นตรง แต่ฉันจะจัดการสาขาในต้นไม้บทสนทนาได้อย่างไร วิธีนี้ดูซับซ้อนมากเพราะฉันต้องรู้ว่าแต่ละเส้นทางนั้นนานแค่ไหนแล้วถ้าฉันต้องการเปลี่ยนแปลงอะไรมันจะปวดหัว ฉันจะทำสิ่งนี้ในวิธีที่ง่ายกว่าได้อย่างไร ฉันพยายามติดกับวานิลลาจาวาสคริปต์เพราะฉันต้องการให้เกมทำงานร่วมกับ Web Run Time

2
พฤติกรรมการใช้งานในเกมผจญภัยง่าย ๆ
ฉันสนุกกับตัวเองเมื่อไม่นานมานี้โดยการเขียนโปรแกรมเกมผจญภัยที่ใช้ข้อความเป็นหลักและฉันก็ติดอยู่กับสิ่งที่ดูเหมือนว่าจะเป็นปัญหาการออกแบบที่เรียบง่ายมาก เพื่อให้ภาพรวมคร่าวๆ: เกมแบ่งย่อยเป็นRoomวัตถุ แต่ละRoomรายการมีEntityวัตถุที่อยู่ในห้องนั้น แต่ละคนEntityมีสถานะเหตุการณ์ซึ่งเป็นแผนที่แบบสตริง -> บูลีนอย่างง่ายและรายการการกระทำซึ่งเป็นแผนที่แบบสตริง -> ฟังก์ชั่น [action] [entity]ท่านผู้ใช้แบบฟอร์มที่ใช้ Roomใช้ชื่อนิติบุคคลที่จะกลับมาที่เหมาะสมEntityวัตถุซึ่งจากนั้นจะใช้ชื่อการกระทำที่จะหาฟังก์ชั่นที่ถูกต้องและดำเนินการมัน ในการสร้างคำอธิบายห้องพักแต่ละวัตถุแสดงสตริงคำอธิบายของตัวเองแล้วผนวกสตริงคำอธิบายของทุกRoom รายละเอียดอาจเปลี่ยนแปลงขึ้นอยู่กับสถานะของมัน ( "ประตูเปิด", "ประตูถูกปิด", "ประตูถูกล็อค" ฯลฯ )EntityEntity นี่คือปัญหา: การใช้วิธีนี้จำนวนฟังก์ชั่นคำอธิบายและการกระทำที่ฉันต้องนำมาใช้อย่างรวดเร็ว ห้องเริ่มต้นของฉันคนเดียวมีประมาณ 20 หน้าที่ระหว่าง 5 เอนทิตี ฉันสามารถรวมการกระทำทั้งหมดไว้ในฟังก์ชั่นเดียวและถ้า - อื่น / สลับไปมาได้ แต่ก็ยังมีสองฟังก์ชั่นต่อเอนทิตี ฉันยังสามารถสร้างEntityคลาสย่อยเฉพาะสำหรับวัตถุทั่วไป / ทั่วไปเช่นประตูและกุญแจได้ แก้ไข 1: ตามที่ร้องขอตัวอย่างรหัสเทียมของฟังก์ชันการกระทำเหล่านี้ string outsideDungeonBushesSearch(currentRoom, thisEntity, player) if thisEntity["is_searched"] then return "There was nothing …

1
ฉันจะจัดเก็บการสะกด & รายการโดยใช้ std :: vector implementation ได้อย่างไร
ฉันกำลังติดตามพร้อมกับหนังสือจาก GameInstitute ในขณะนี้และขอให้ฉัน: อนุญาตให้ผู้เล่นซื้อและพกยารักษาและยาลูกไฟ คุณสามารถเพิ่มอาร์เรย์ไอเท็ม (หลังจากที่คุณกำหนดคลาสไอเท็ม) ไปยังคลาสเพลเยอร์สำหรับการจัดเก็บหรือใช้ std :: vector เพื่อเก็บมัน ฉันคิดว่าฉันต้องการใช้std::vectorการนำไปใช้เนื่องจากดูเหมือนว่าจะทำให้ฉันสับสนน้อยกว่าการสร้างคลาสไอเท็ม แต่ฉันไม่แน่ใจว่าจะทำอย่างไร ฉันได้ยินมาจากหลาย ๆ คนว่าเวกเตอร์เป็นวิธีที่ดีในการเก็บค่าแบบไดนามิก (เช่นรายการอาวุธ ฯลฯ ) แต่ฉันไม่เคยเห็นมันมาใช้
10 c++  text-based 

2
ฉันจะใช้ Editline สำหรับคอนโซลในเกมได้อย่างไร
ฉันต้องการเพิ่มคอนโซลในเกมให้กับเกม C ++ ที่ฉันสร้าง แม้ว่าการแสดงผลคอนโซลและการแยกคำสั่งที่ฉันใช้ได้ แต่การป้อนข้อความและการแก้ไข (เช่นการจัดการปุ่มซ้าย / ขวา, แบ็กสเปซและอื่น ๆ ... ) ดูเหมือนจะใช้ความพยายามอย่างมาก . ฉันจัดการเพื่อค้นหาไลบรารีชื่อEditlineที่จัดการป้อนข้อความสไตล์คอนโซลที่สมบูรณ์พร้อมประวัติและการเติมข้อมูลอัตโนมัติ แต่ฉันไม่แน่ใจว่าจะเชื่อมต่อสิ่งนี้กับเกมของฉันได้อย่างไรโดยเฉพาะตัวอย่างทั้งหมด ที่ฉันได้พบใช้จัดการอินพุตและเอาต์พุตมาตรฐานและreadline()ตัวเองเป็นสายการบล็อก ฉันต้องสามารถให้อินพุตของตัวเองและแสดงผลคอนโซลให้กับเอาต์พุตของตัวเองและฉันต้องแน่ใจว่าลูปเกมของฉันยังคงทำงานต่อไป ฉันควรจะทำสิ่งนี้อย่างไร?
9 c++  text-based 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.