يوقف اللعبه المصدره من غير حدوث احد اسباب ايقاف اللعبه
ارسل الكود بشكل منسق
كيف يمكنني ارسال الكود
انسخه من المحرر عندك ومن ثم ادخل الى المنتدى وارسل رد به الكود ولكن قبل ما تلصق الكود اضغط على زر كود منسق في الخيارات اعلى الرد وبعدها اكتب الكود
from turtle import Turtle, Screen
import time
from sneakbody import Sneak
from sneakfood import Foods
from sneakscor import Score
window = Screen()
window.setup(width=800, height=800)
window.bgcolor("black")
window.title("Sneak Game")
window.tracer(0)
sneak = Sneak()
food = Foods()
scor = Score()
sneak_go = True
while sneak_go:
sneak.sneak_move()
window.update()
time.sleep(0.1)
#onkey تخليك تحدد تضغط شنو عشان ينفذ شنو
# listen تخليك تتدخل الاوامر من علي كبيورد وتسمع لك
window.listen()
window.onkey(sneak.sneak_up,"Up")
window.onkey(sneak.sneak_down,"Down")
window.onkey(sneak.sneak_right,"Right")
window.onkey(sneak.sneak_left,"Left")
if sneak.head.distance(food) < 15:
food.random_food()
sneak.sneak_tell()
scor.incres_score()
if sneak.head.xcor() > 370 or sneak.head.xcor() < -370 or sneak.head.ycor() > 370 or sneak.head.ycor() < -370:
sneak_go = False
scor.game_over()
for segment in sneak.turtles[ :-1]:
if sneak.head.distance(segment) < 10:
sneak_go = False
scor.game_over()
window.exitonclick()
اكتب الرمز أو الصقه هنا
````نص منسَّق سابقًا`
#body
from turtle import Turtle
import random
class Sneak:
def __init__(self):
self.turtles = []
self.position = [(-40,0), (-20,0), (0,0)]
#self.angale = [90,0,0,0]
self.sneak_creat()
self.head = self.turtles[-1]
def sneak_creat(self):
for i in range(len(self.position)):
new_turtle = Turtle(shape="square")
new_turtle.color("white")
new_turtle.penup()
new_turtle.goto(self.position[i])
self.turtles.append(new_turtle)
def sneak_tell(self):
new_part = Turtle(shape="square")
new_part.color("white")
new_part.penup()
new_part.goto(self.turtles[0].pos())
self.turtles.insert(0,new_part)
def sneak_move(self):
for i in range(len(self.turtles)- 1):
self.turtles[i].goto(self.turtles[i + 1].pos())
self.head.forward(10)
#self.turtles[-1].left(random.choice(self.angale))
def sneak_up(self):
self.head.setheading(90)
def sneak_down(self):
self.head.setheading(270)
def sneak_right(self):
self.head.setheading(0)
def sneak_left(self):
self.head.setheading(180)
اكتب الرمز أو الصقه هنا
from turtle import Turtle
import random
class Foods(Turtle):
def __init__(self):
super().__init__()
self.shape("circle")
self.color("red")
self.penup()
self.shapesize(0.5,0.5)
self.random_food()
def random_food(self):
random_x = random.randint(-380,380)
random_y = random.randint(-380,380)
self.goto(random_x,random_y)
اكتب الرمز أو الصقه هنا
from turtle import Turtle
class Score(Turtle):
def __init__(self):
super().__init__()
self.score = 0
self.color("white")
self.penup()
self.goto(0,350)
self.hideturtle()
self.update_score()
def update_score(self):
self.write(f"Score: {self.score}", align="center", font=("Arial", 24 , "normal"))
def incres_score(self):
self.score +=1
self.clear()
self.update_score()
def game_over(self):
self.screen.bgcolor("darkred")
self.goto(0,0)
self.write(f"Game over \nFinal Score: {self.score}", align="center", font=("Arial", 24, "normal"))
الخطا عندك هو في شرط تحقق استضام راس الثعبان بالجسم بحيث انت وضعت رقم 10 هو مقياس الخسارة ولكن لا يمكن لان خطوات انت وضعتها كل ما يمشي يكون 10 بكسل وشرط الاستضام اذا كان راس بين وبين القطعة 10 بكسل فطبيعيا سيتحقق الشرط لان المسافة بين الراس والقطعة التي خلفه 10 بكسل فعندك خيارين يا اما تعدل وتسوي انو الراس فس كل خطوة يمشي 20 بكسل زي ما المستر عمل او تعدل على شرط التصاضم بحيث تض رقم 7.5 هو المسافة التي تكون شرط للتصادم
اليك الكود التصادم اذا كنت تريد تعديله
for segment in sneak.turtles[ :-1]:
if sneak.head.distance(segment) < 7.5:
sneak_go = False
scor.game_over()
اليك كود سير الثعيان اذا كنت تريد تعديله وجعله مثل المستر
def sneak_move(self):
for i in range(len(self.turtles)- 1):
self.turtles[i].goto(self.turtles[i + 1].pos())
self.head.forward(20)
شكرا جزيلا لك احسنت كان الخطا فعلا في كود سير الثعبان كانت 10 شكرا لك
العفو اخي بارك الله فيك