คำถามติดแท็ก python

Python เป็นภาษาการเขียนโปรแกรมแบบไดนามิกและพิมพ์อย่างรุนแรงซึ่งสนับสนุนให้อ่านง่าย


3
วิธีการจัดโครงสร้างรหัสสำหรับอาวุธ / คาถา / พลังพิเศษมากมาย
ฉันเป็นโปรแกรมเมอร์ที่ไม่มีประสบการณ์ในการสร้างเกม "เหมือนโร๊คไลค์" ในเส้นเลือดของFTLโดยใช้ Python (ยังไม่มี PyGame ในขณะที่ฉันยังเกี่ยวข้องกับข้อความเท่านั้น) เกมของฉันจะมีอาวุธจำนวนมาก (ประมาณ 50 ดวงสำหรับผู้เริ่ม) ที่ให้ความสามารถพิเศษ ฉันกำลังดิ้นรนเพื่อทำความเข้าใจวิธีจัดโครงสร้างรหัสวัตถุในแบบที่ทรงพลัง (ในแง่ของการอนุญาตให้อาวุธมีเอฟเฟกต์ต่างกันอย่างรุนแรง) และขยายได้ (เพื่อให้ฉันสามารถเพิ่มอาวุธได้ง่ายขึ้นในภายหลังเช่นวางลงในโฟลเดอร์ ) สัญชาตญาณแรกของฉันคือการมีชั้นเรียน BasicWeapon และมีอาวุธต่าง ๆ ที่สืบทอดมาจากชั้นเรียนนั้น อย่างไรก็ตามนี่เป็นปัญหาสำหรับฉัน: ฉันต้องสร้างคลาส BasicWeapon ให้เปล่าโดยที่ไร้ประโยชน์ (คุณสมบัติเดียวที่อาวุธทั้งหมดมีเหมือนกันคือชื่อและประเภท (ปืนพกขวาน ฯลฯ ) หรือฉันต้องทำนายทุกอย่าง เอฟเฟกต์ที่ไม่ซ้ำใครที่ฉันจะได้รับและโค้ดที่เป็นพื้นฐานของ BasicWeapon เห็นได้ชัดว่าเป็นไปไม่ได้ แต่อดีตยังคงสามารถทำงานได้ อย่างไรก็ตามนั่นทำให้ฉันมีคำถาม: ฉันจะวางรหัสสำหรับอาวุธแต่ละชนิดได้ที่ไหน ฉันจะสร้าง plasmarifle.py, rocketlauncher.py, swarmofbees.py ฯลฯ และวางมันลงในโฟลเดอร์ที่เกมสามารถนำเข้าได้หรือไม่ หรือมีวิธีที่จะมีไฟล์สไตล์ฐานข้อมูล (อาจเป็นอะไรที่เรียบง่ายเหมือนกับสเปรดชีต Excel) ที่มีรหัสที่ไม่ซ้ำกันสำหรับอาวุธแต่ละอัน - โดยไม่ต้องหันไปใช้ eval …

5
noSQL - มันเป็นตัวเลือกที่ถูกต้องสำหรับเกมบนเว็บ? [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Game Exchange Stack Exchange ปิดให้บริการใน6 ปีที่ผ่านมา จากโอกาสและความเบื่อหน่ายเพื่อนและฉันตัดสินใจทำเกมบนเว็บ นี่เป็นเกมแรกที่ฉันจะทำเพราะปกติฉันจะตั้งโปรแกรมเว็บแอพใน django ฉันเลือกที่จะใช้กรอบงานเดียวกันสำหรับเกม แต่ฉันไม่แน่ใจเกี่ยวกับการจัดเก็บข้อมูลทั้งหมดเนื่องจากฉันไม่สามารถคาดการณ์ข้อกำหนดในอนาคตและปัญหาที่เกี่ยวข้องกับฐานข้อมูลได้ เมื่อเร็ว ๆ นี้การเคลื่อนไหว noSQL กำลังเพิ่มขึ้นและฉันอยากจะสำรวจพื้นที่นั้น ดังนั้นฉันมีคำถามต่อไปนี้: noast datastorage (ตามเอกสารเช่น MongoDB) จะเหมาะสำหรับเกมบนเว็บหรือไม่? ปัญหาที่อาจเกิดขึ้นจากการใช้ RDBMS ทั่วไปเช่น MySQL มีอะไรบ้าง วิธีการประกันความสอดคล้องของข้อมูลระหว่างผู้ใช้กับ MongoDB ในระหว่างการเล่นเกมหรือในเหตุการณ์ที่กำหนดเวลาเช่นงาน cron ภาพรวมของเกม: เกมผจญภัยทั่วไปที่ผู้เล่นต่อสู้กับมอนสเตอร์และได้รับไอเทมและสิ่งต่าง ๆ ข้อมูลบางอย่างคงที่ในผู้เล่นทุกคน: รายการอาวุธยาพิษแผนที่ ฯลฯ ข้อมูลบางอย่างที่เชื่อมโยงกับโปรแกรมเล่น: สินค้าคงคลังตัวชี้วัด (สถิติ) ความคืบหน้า ฯลฯ ผู้เล่นอาจจำเป็นต้องรู้สถิติและสถานะของผู้เล่นอื่น งานที่กำหนดเวลาไว้จะถูกเรียกใช้ในบางช่วงเวลา

4
Python 3D engine ที่ดีที่สุดคืออะไร? [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้จะเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน6 ปีที่ผ่านมา ฉันต้องการเอ็นจิ้น Python 3d แบบตรงซึ่งหาได้ง่ายสำหรับ linux และใช้งานง่าย Soya3D ล้มเหลวสำหรับฉันเนื่องจากการขาดเอกสาร ฉันควรโหลดโมเดล 3 มิติทั่วไปได้โดยไม่มีปัญหา
20 3d  python 

3
ฉันจะสร้างทะเลสาบและแม่น้ำสุ่มในเกมของฉันได้อย่างไร
ฉันมีเกมสร้างบล็อก 2 มิติและพยายามสร้างทะเลสาบและแม่น้ำที่สร้างแบบสุ่ม ฉันได้ดูอัลกอริธึมสัญญาณรบกวนของ Perlin แล้ว แต่ฉันไม่สามารถสร้างผลลัพธ์ที่ดีและสุ่มได้ ฉันพยายามใช้ห้องสมุดเสียงหลามแต่ก็ไม่ได้สร้างแผนที่แบบสุ่มมาก มีฟังก์ชั่นของเมล็ดพันธุ์ที่ฉันขาดหายไปในห้องสมุดนั้นเพื่อให้สุ่มขึ้นหรือไม่? ฉันจะเปลี่ยนแปลงตัวแปรใดหากฉันต้องการให้สุ่มเพิ่มขึ้น? ถ้าเป็นไปได้ให้คำตอบทางเทคนิคกับฉันน้อยลงโดยใช้คณิตศาสตร์น้อยลง แผนที่เป็นแผนที่เรียงต่อกันแบบสองมิติ นี่คือตัวอย่างบางส่วนของการไม่สุ่มของอัลกอริทึมอื่น ๆ รหัสต่อไปนี้ถูกเอาท์พุท 3 ครั้งในแถว ฉันสุ่มอ็อกเทฟและความถี่ด้วยสิ่งนี้:freq = 16.0 * random.randint(1, 500000) * 0.000001 + 0.5 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 …

3
อัลกอริทึมที่ดีสำหรับรูปแบบเมืองแบบเศษส่วนคืออะไร
พื้นหลัง ฉันใช้เซิร์ฟเวอร์ Minecraft ที่ฉันจะออกแบบเมืองเริ่มต้นที่มีขนาดค่อนข้างใหญ่ ฉันมีชุดของสิ่งต่าง ๆ เช่นสัญญาณกฎและกรงม็อบฉันต้องการวางในอาคารที่นั่น เมืองนี้จะมีขนาดใหญ่มากและกระจายออกไปโดยเฉพาะอย่างยิ่งขนาด 1,000 ถึง 1,000 ช่วงตึก ตัวอาคารจะมีลูกบาศก์หรือรอยเท้าเป็นรูปสี่เหลี่ยมผืนผ้าซึ่งมีพื้นฐานจากคิวบ์ฐานหนึ่งเช่นเดียวกับทวีคูณของ 3 บล็อก ถนนและระยะห่างระหว่างอาคารจะกว้างกว่า 5-11 ช่วงตึกขึ้นอยู่กับความสำคัญของถนน เมื่อฉันเริ่มแผนสำหรับเมืองฉันจะรู้ว่าฉันต้องการให้อาคารมีขนาดใหญ่เพียงใดและจะมีเท่าไหร่ ปัญหา ปัญหาคือการออกแบบเลย์เอาต์สำหรับเมือง เห็นได้ชัดว่ามีอะไรบางอย่างในระดับนี้และฉันมาจากพื้นหลังการเขียนโปรแกรมมากกว่าพื้นหลังการวางแผนเมืองมันค่อนข้างท้าทายที่จะเริ่มหัวของฉันในการแก้ไขปัญหา ปัญหาเฉพาะคือฉันต้องการให้เมืองดูเป็นธรรมชาติมากที่สุด ของหลักสูตรนี้จะค่อนข้างง่ายต่อการสร้างในรูปแบบกริดที่เรียบง่าย แต่ฉันต้องการหลีกเลี่ยงกริดหรืออะไรก็ตามที่ดูเหมือนกริดมากที่สุดเท่าที่จะทำได้ คำถาม ฉันสามารถใช้อัลกอริทึมใดเพื่อช่วยฉันออกแบบโดยใช้โค้ด ฉันคิดว่ามันจะดูเป็นธรรมชาติที่สุดถ้าฉันใช้เศษส่วนในบางวิธีเนื่องจาก Minecraft ใช้แฟร็กทัลแล้วในยุคของภูมิประเทศและเมืองดูเหมือนว่าจะเติบโตในรูปแบบเศษส่วนตามธรรมชาติ ฉันคิดว่ามันคล้ายกันกับอัลกอริทึมการเล่นเตตริสดังนั้นถ้าใครมีวิธีแก้ปัญหาที่มีทิศทางนั้นมันก็จะช่วยได้เช่นกัน ฉันนึกภาพสิ่งที่ฉันจะสามารถกำหนดรูปร่างที่ฉันต้องการใช้แล้วซอฟต์แวร์จะวนซ้ำจนกว่าจะพบทางออกที่ "ดีที่สุด" ที่สุดสำหรับการกระจายตัวของอาคาร มีบางสิ่งบางอย่างที่มีอยู่แล้วเพื่อช่วยฉันแก้ปัญหานี้โดยใช้ไพ ธ อน โดยธรรมชาติแล้วสิ่งนี้มีความหมายที่น่าสนใจสำหรับคนรุ่นต่อเมืองโดยทั่วไปในการออกแบบเกมดังนั้นฉันจึงตื่นเต้นมากที่เห็นว่าทางออกที่ดีที่สุดคืออะไร แก้ไข ให้ชัดเจนฉันแค่มองหาเค้าโครง ณ จุดนี้เนื่องจากอาคารจะได้รับการออกแบบและสร้างขึ้นในเกม

2
ทำไมผู้เล่นสไปรต์ของฉันถึงเคลื่อนที่เร็วขึ้นเมื่อฉันเลื่อนเมาส์
ฉันพยายามพัฒนาเกมง่ายๆที่สร้างด้วย Pygame (Python library) ฉันมีspriteวัตถุที่เป็นplayerและฉันย้ายมันโดยใช้ปุ่มลูกศร ถ้าฉันไม่เลื่อนเม้าส์สไปรต์ก็จะเคลื่อนที่ตามปกติ แต่เมื่อฉันเลื่อนเมาส์สไปรต์จะเคลื่อนที่เร็วขึ้น (เช่น x2 หรือ x3) playerวัตถุอยู่ภายในcharsGroupvar ฉันใช้งานเกมใน W7 และใน Ubuntu สิ่งเดียวกันเกิดขึ้นในทั้งสองระบบปฏิบัติการ ฉันมีเอนทิตีมากกว่าที่เคลื่อนไหวเหมือน NPC และกระสุน แต่พวกมันไม่ได้รับผลกระทบเพียงแค่ผู้เล่น ด้วยสิ่งนี้ฉันคิดว่าปัญหาอาจมีการเชื่อมต่อโดยตรงกับระบบการเคลื่อนที่ของผู้เล่น (ปุ่มลูกศร) นี่คือupdate()วิธีการของplayerวัตถุ: def update(self): for event in pygame.event.get(): key = pygame.key.get_pressed() mouseX, mouseY = pygame.mouse.get_pos() if event.type == pygame.MOUSEBUTTONDOWN: self.bulletsGroup.add(Bullet(pygame.image.load("bullet.png"), self.rect.x + (self.image.get_width()/2), self.rect.y + (self.image.get_height()/2), mouseX, mouseY, …

5
Python Performance กับ Game Maker [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Game Exchange Stack Exchange ปิดให้บริการใน6 ปีที่ผ่านมา เดิมฉันคิดจะสร้างเกมด้วย Python และ SFML ฉันเข้าใจว่า Python ช้ากว่า C ++ แต่จะเปรียบเทียบกับ Game Maker ได้อย่างไร เหตุผลหลักที่ฉันถามคือเมื่อเร็ว ๆ นี้ฉันเล่นเกม Game Maker (The Iconoclasts) ซึ่งวิ่งด้วยอัตราเฟรมที่ไม่ดีพอในคอมพิวเตอร์ของฉัน (GMA 950) ฉันกังวลว่าฉันจะมีปัญหาเรื่องประสิทธิภาพที่คล้ายกันกับ Python / SFML

3
วิธีสร้างเส้นทางที่ดูเป็นธรรมชาติด้วย A * บนกริด
ฉันได้อ่านสิ่งนี้แล้ว: http://theory.stanford.edu/~amitp/GameProgramming/Heuristics.html แต่มีบางสิ่งที่ฉันไม่เข้าใจตัวอย่างเช่นบทความบอกว่าใช้สิ่งนี้เพื่อการตัดเส้นด้วยการเคลื่อนไหวในแนวทแยง: function heuristic(node) = dx = abs(node.x - goal.x) dy = abs(node.y - goal.y) return D * max(dx, dy) ฉันไม่รู้ว่าจะตั้งค่า D ให้เป็นเส้นทางที่ดูเป็นธรรมชาติได้อย่างไรในบทความฉันตั้งค่า D เป็นต้นทุนที่ต่ำที่สุดระหว่างสี่เหลี่ยมที่อยู่ติดกันอย่างที่มันบอกไว้และฉันไม่รู้ว่าพวกเขาหมายถึงอะไรเกี่ยวกับฮิวริสติก เป็น 4 * D ที่ดูเหมือนจะไม่เปลี่ยนแปลงอะไร นี่คือฟังก์ชันฮิวริสติกของฉันและฟังก์ชั่นย้าย: def heuristic(self, node, goal): D = 5 dx = abs(node.x - goal.x) dy = abs(node.y - goal.y) return …

6
อัลกอริทึมที่มีประสิทธิภาพสำหรับขอบเขตของชุดของกระเบื้อง
ต้องการปรับปรุงโพสต์นี้หรือไม่? ให้คำตอบโดยละเอียดสำหรับคำถามนี้รวมถึงการอ้างอิงและคำอธิบายว่าทำไมคำตอบของคุณถึงถูกต้อง คำตอบที่ไม่มีรายละเอียดเพียงพออาจแก้ไขหรือลบออกได้ ฉันมีตารางเรียงต่อกันของขนาด จำกัด ที่ทราบซึ่งก่อตัวเป็นแผนที่ แผ่นบางแผ่นที่อยู่ในแผนที่จะถูกวางลงในชุดที่รู้จักกันในชื่ออาณาเขต ดินแดนนี้เชื่อมต่อกัน แต่ไม่มีใครรู้เกี่ยวกับรูปร่างของมัน ส่วนใหญ่มันจะเป็นหยดปกติ แต่อาจยืดออกไปได้ในทิศทางเดียวและอาจมีรูได้ ฉันสนใจที่จะค้นหาชายแดน (ด้านนอก) ของอาณาเขต นั่นคือฉันต้องการรายการของกระเบื้องทั้งหมดที่แตะหนึ่งในกระเบื้องในดินแดนโดยที่ตัวเองไม่ได้อยู่ในดินแดน วิธีที่มีประสิทธิภาพในการค้นหาสิ่งนี้คืออะไร? สำหรับความยากเป็นพิเศษมันเกิดขึ้นที่ไทล์ของฉันเป็น hexes แต่ฉันคิดว่ามันไม่ได้สร้างความแตกต่างมากนักแต่ละไทล์ยังคงมีพิกัด x และ y เป็นจำนวนเต็มและถ้ามีไทล์ฉันสามารถหาเพื่อนบ้านได้อย่างง่ายดาย ด้านล่างเป็นตัวอย่างบางส่วน: สีดำคืออาณาเขตและเส้นขอบสีน้ำเงินที่ฉันต้องการค้นหา สิ่งนี้ในตัวของมันเองไม่ใช่ปัญหาที่ยากเลยอัลกอริธึมง่ายๆสำหรับสิ่งนี้ใน pseudo-python คือ: def find_border_of_territory(territory): border = [] for tile in territory: for neighbor in tile.neighbors(): if neighbor not in territory and neighbor not in …

2
ฉันจะกระจายการปฏิบัติการดั้งเดิมให้กับโปรแกรม Python ได้อย่างไร
เมื่อไม่นานมานี้งานของฉันทั้งหมดเป็น Python (และ Ruby) และฉันรักสองภาษานี้ มีไลบรารีมากมายสำหรับการพัฒนาเกมบน Python แต่ปัญหาที่ฉันเห็นคือเฟรมเวิร์กเหล่านั้นจำนวนมากไม่ครอบคลุมถึงส่วน "การกระจาย" ของการสร้างเกม ฉันต้องการเขียนโค้ดเกมของฉันบน Python (และไลบรารี่ Python พิเศษอื่น ๆ ที่ฉันต้องการ) และสามารถแจกจ่ายไฟล์ปฏิบัติการสำหรับแพลตฟอร์มพีซีหลัก (Windows, Mac และ Linux) มีตัวเลือกอะไรบ้างหรือชุดที่ดีที่สุดสำหรับสิ่งนี้ (อาจเป็น pyglet + cx_freeze)
11 python  pyglet 

1
Pygame สำหรับ python 3.5?
ฉันเพิ่งได้ Python 3.5 จาก ... ลิงค์: https://www.python.org/downloads/windows/ ก่อนหน้านี้ฉันมี Python 3.4 และ Pygame เวอร์ชัน 1.9.2a0 มันทำงานได้อย่างสมบูรณ์แบบ อย่างไรก็ตาม Python 3.5 ใหม่ของฉันไม่สามารถใช้งานร่วมกับ Pygame เวอร์ชันนั้นที่ฉันได้รับในราคา 3.4 ฉันพบไฟล์ Pygame ล่าสุดที่ ... ลิงค์: http://www.lfd.uci.edu/~gohlke/pythonlibs/#pygame ฉันดาวน์โหลดไฟล์ Pygame อย่างไรก็ตามมันเป็นไฟล์ฟอร์แมต. hll ฉันควรจะทำอย่างไร? ฉันลองดูมันทุกวันเมื่อวานนี้ จนถึงตอนนี้ที่ฉันได้คิดออกก็คือสิ่งที่เกี่ยวกับ pip และ wheel และทำคำสั่งบางอย่างเช่น 'pip install' เป็นต้นเป็นต้น แต่ฉันก็หายไปหมด ฉันไม่เคยรู้เกี่ยวกับจุดเล็ก ๆ หรือสิ่งนั้นมาก่อน ฉันไม่แน่ใจด้วยซ้ำว่ามี Pygame รุ่นหนึ่งที่ทำงานร่วมกับ Python …
10 python 

3
เกม Python ทำงานบนหลายแพลตฟอร์มหรือไม่
ฉันมีแผนที่จะเขียนเกมใน Python และอาจเป็น SQL ฉันกังวลเกี่ยวกับความหลากหลายของโปรแกรมเมื่อฉันทำเสร็จฉันต้องการให้มันทำงานบน Windows, Mac, Android และ iPhone ... แต่ฉันมีความรู้สึกว่าโทรศัพท์จะถูก จำกัด เรียงลำดับของสิ่งต่าง ๆ ฉันจะเขียนโปรแกรมที่ทำงานบนหลายแพลตฟอร์มได้อย่างไร สิ่งนี้เป็นไปได้สำหรับโปรแกรมเมอร์มือใหม่หรือไม่?

3
สคริปต์ควรโต้ตอบกับสิ่งที่เป็นนามธรรมหรือไม่?
ฉันกำลังใช้ Java และ Jython และหลังจากการวิจัยบางอย่างฉันค้นพบว่าการให้สคริปต์เข้าถึงโดยตรงกับส่วนต่อประสานเครื่องยนต์อาจเป็นข้อผิดพลาด ดูเหมือนว่าสคริปต์ส่วนใหญ่ที่ช่วยให้ mods สามารถสร้างและจัดการเอนทิตีได้โดยทำสิ่งที่เป็นนามธรรม เหตุผลเหล่านี้อยู่ที่นั่นด้วยเหตุผลนี้หรือไม่หรือเป็นเพียงเพื่อมอบวิธีที่ใช้งานง่ายขึ้นสำหรับผู้ที่ไม่ใช่โปรแกรมเมอร์เพื่อดัดแปลงเกม
10 java  python  scripting 

3
เป็นความคิดที่ดีหรือไม่ที่จะพัฒนาเกม 2d ที่ไม่น่าสนใจใน python? [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Game Exchange Stack Exchange ปิดให้บริการใน4 ปีที่แล้ว ฉันวางแผนที่จะพัฒนาเกม RPG อวกาศ 2D และฉันกำลังเผชิญกับทางเลือก: ภาษาที่ดีที่สุดในการเขียนคืออะไร? ผู้สมัครของฉันคือ C ++, Java และ Python เห็นได้ชัดว่าฉันต้องการเขียนเกมใน Python เนื่องจากความรวดเร็วความเร็วในการพัฒนาและความเรียบง่ายในการเพิ่มการรองรับสคริปต์ แต่ฉันเป็นห่วง: Python จะไม่ช้าเกินไปหรือ เกมดังกล่าวจะไม่สำคัญ (เช่น Tetris เป็นต้น) อาจจำเป็นต้องคำนวณงานสำหรับเรือรบหลายพันลำในจักรวาล (แม้ว่า AI ของพวกเขาจะง่ายขึ้นมากหากไม่เห็นเรือรบเหล่านั้นกับผู้เล่น) แน่นอนฉันสามารถเขียนบางส่วนที่สำคัญใน C แต่มันจะทำให้การสร้างและการปรับใช้ซับซ้อนขึ้นทันที สมมติว่าเกมนั้นเป็นที่นิยมและฉันก็กลายเป็นซุปเปอร์สตาร์ ผู้ใช้ Windows ไม่ค่อยมี Python เลย (โชคดีที่เรามี py2exe) Python บน …
10 python 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.