لعبة سباق السلاحف مع الاضافات بسيطة

اكتب الرمز أو الصقه هنا
```from turtle import Turtle, Screen
import random
import time
window = Screen()
window.title("سباق السلاحف")
window.setup(800,800)
window.bgcolor("green")
tam_1 = Turtle()
tam_1.shape("turtle")
tam_1.color("white")

# <<<<<<<<<<<<<<<< فانكشن رسم الملعب >>>>>>>>>>>>>>>>>>>>>>

def rule(i):
    positions_start = ((-200,+340),(0,+340),(+200,+340))
    i.penup()
    i.goto(-360,+300)
    i.pendown()
    i.pensize(5)
    i.goto(-360,-300)
    i.goto(+360,-300)
    i.goto(+360,+300)
    i.goto(-360,+300)
    i.goto(-360,+100)
    i.goto(+360,+100)
    i.goto(+360,-100)
    i.goto(-360,-100)
    for y in range(3):
        i.penup()
        i.goto(positions_start[y])
        for _ in range(4):
            i.pendown()
            i.forward(35)
            i.left(90)
    i.hideturtle()


#<<<<<<<<<<<<\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\>>>>>>>>>>>>>>>>>

rule(tam_1)

# <<<<<<<<<<<<<<<<<< انشاء سلاحف الرسم >>>>>>>>>>>>>>>>>>>>>>>>>>>>

turtles_start = []
colors_start = ("red","orange","yellow","white","blue")
positions_start = ((-300,200),(-300,0),(-300,-200),(0,0),(0,20))

for i in range(5):
    new_turtle = Turtle("turtle")
    new_turtle.hideturtle()
    new_turtle.color(colors_start[i])
    #new_turtle.hideturtle()
    new_turtle.penup()
    new_turtle.goto(positions_start[i])
    new_turtle.pensize(20)
    new_turtle.pendown()
    turtles_start.append(new_turtle)


#<<<<<<<<<<<<<<<<<<<<<<<<< انشاء سلاحف السباق  >>>>>>>>>>>>>>>>>>>>>>>>>>>>

turtles = []
colors = ["red","orange","yellow"]
positions = [(-370,200),(-370,0),(-370,-200)]

for i in range(3):
    new_turtle = Turtle("turtle")
    new_turtle.color(colors[i])
    new_turtle.penup()
    new_turtle.goto(positions[i])
    turtles.append(new_turtle)

center_1 = 0
center_2 = 0
center_3 = 0
#<<<<<<<<<<<<<<<< فانكشن معرفة مراكز السلاحف >>>>>>>>>>>>>>>>>>>>>

def center() :
    global center_1
    global center_2
    global center_3
    
    if turtles[0].xcor() > turtles[1].xcor() and turtles[0].xcor() > turtles[2].xcor():
        if center_1 != 1:    
            turtles_start[0].clear()
            turtles_start[0].write("1", align="center", font=("Arial", 15 ,"normal"))
            center_1 = 1
            
    elif turtles[0].xcor() < turtles[1].xcor() and turtles[0].xcor() < turtles[2].xcor(): 
        if center_1 != 3:
            turtles_start[0].clear()
            turtles_start[0].write("3", align="center", font=("Arial", 15 ,"normal"))
            center_1 = 3
    else:
        if center_1 != 2 :
            turtles_start[0].clear()
            turtles_start[0].write("2", align="center", font=("Arial", 15 ,"normal"))
            center_1 = 2


    
    if turtles[1].xcor() > turtles[0].xcor() and turtles[1].xcor() > turtles[2].xcor():
        if center_3 != 1 :
            turtles_start[1].clear()
            turtles_start[1].write("1", align="center", font=("Arial", 15 ,"normal"))
            center_3 = 1    
    elif turtles[1].xcor() < turtles[0].xcor() and turtles[1].xcor() < turtles[2].xcor(): 
        if center_3 != 3:
            turtles_start[1].clear()
            turtles_start[1].write("3", align="center", font=("Arial", 15 ,"normal"))
            center_3 = 3
    else:
        if center_3 != 2 :
            turtles_start[1].clear()
            turtles_start[1].write("2", align="center", font=("Arial", 15 ,"normal"))
            center_3 = 2


    
    if turtles[2].xcor() > turtles[0].xcor() and turtles[2].xcor() > turtles[1].xcor():
        if center_2 != 1:
            turtles_start[2].clear()
            turtles_start[2].write("1", align="center", font=("Arial", 15 ,"normal"))
            center_2 = 1
            
    elif turtles[2].xcor() < turtles[0].xcor() and turtles[2].xcor() < turtles[1].xcor():
        if center_2 != 3: 
            turtles_start[2].clear()
            turtles_start[2].write("3", align="center", font=("Arial", 15 ,"normal"))
            center_2 = 3
    else:
        if center_2 != 2 :
            turtles_start[2].clear()
            turtles_start[2].write("2", align="center", font=("Arial", 15 ,"normal"))
            center_2 = 2

#<<<<<<<<<<<<<<<<<<<<<<<  فانكشن رقصة السلاحف  >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>


def danse() :
    center_danse = ((-40,0),(+40,0),(0,+40),(0,-40),(0,0))
    colors_dansr = (("blue","red","DeepPink","yellow","orange"))
    for i in range(5) :
        #window.tracer(0)
        turtles_start[i].color(colors_dansr[i])
        turtles_start[i].penup()
        turtles_start[i].goto(center_danse[i])
        turtles_start[i].showturtle()
    turtles_start[0].right(90)
    turtles_start[1].left(90)
    turtles_start[2].right(180)

    for _ in range(70):
        window.tracer(0)
        time.sleep(0.1)
        for i in range(4) :  
            turtles_start[i].forward(15)
            turtles_start[i].left(15)
        turtles_start[4].left(15)
        window.update()
    
     
    


         
# <<<<<<<<<<<<<<<<<<<<<<<<<< فانكشن سباق >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

def game():
    new_game = True
    chooce =("red","orange","yellow")
    positions_start_2 = ((-183,+348),(18,+348),(+218,+348))
    user = window.textinput("قم بأختيار سلحفات","RED / ORANGE / YELLOW").lower()    
        
    while new_game:
        if user in chooce :
            for i in range(3) :
                turtles_start[i].circle(10)
                turtles_start[i].pensize(5)
                time.sleep(0.3)

            for i in range(3):
                turtles_start[i].clear()
                turtles_start[i].penup()
                turtles_start[i].goto(positions_start_2[i])
                turtles_start[i].pendown() 
            while new_game :
                for turtle in turtles :
                    if turtle.xcor() > 360 :
                        new_game = False
                        winner = turtle.pencolor()
                        is_winner(winner,user)
                        danse()
                        
                    else:
                        turtle.forward(random.randint(1,5))
                    center()
        else:
            user = window.textinput("قم بأختيار سلحفات","RED / ORANGE / YELLOW").lower()


# <<<<<<<<< فانكشن التحقق من الفوز >>>>>>>>>

def is_winner(winner,user):
    
    tam = Turtle()
    tam.shape("turtle")
    tam.hideturtle()
    tam.penup()
    tam.goto(0,+120)
    tam.pendown()
    if winner == user :

        for _ in range(10):
            tam.clear()
            tam.color("red")
            tam.write(f"       YOU WIN {winner.upper()}\n YOU ARE THE WINNER !", align="center", font=("Arial", 40 ,"normal"))
            time.sleep(0.2)
            tam.clear()
            tam.color("white")
            tam.write(f"       YOU WIN {winner.upper()}\n YOU ARE THE WINNER !", align="center", font=("Arial", 40 ,"normal"))
        
    else:
        for _ in range(10):
            tam.clear()
            tam.color("white")
            tam.write(f"       YOU LOSE \n WINNER {winner.upper()} !", align="center", font=("Arial", 40 ,"normal"))
            time.sleep(0.2)
            tam.clear()
            tam.color("red")
            tam.write(f"       YOU LOSE \n WINNER {winner.upper()} !", align="center", font=("Arial", 40 ,"normal"))
        
game()


window.exitonclick()


#ملاحظة (((((( ياشباب ايا حدا عندو مساعدة لتحسين الكود ياريت يفيدنا ))))))
5 إعجابات

جميل \\\\\\\\

3 إعجابات

الاضافات في اللعبة جميلة ورائعة وابضا الحكرات في رائعة

استمر في تطوير اللعبة وجعلها اجمل :+1:

3 إعجابات

شكرا كتير على تعليقك
ممكن سؤال
لكود في عطل ما عم اعرف سبب
بعد استخدام فانكشن danse
لا تعمل الاكواد التي اكتبها بعد الفانكشن

إعجابَين (2)

3 إعجابات

ماهو الخطا بالتحديد حتى ارى في حله اي مالذي لا يظهر

3 إعجابات

احسنت . . . . . :+1:

3 إعجابات

شكرااااااااا\\\\\:kissing_heart: :kissing_heart:

إعجابَين (2)

اقصد عند استدعاء فانكشن danse()
اذا كتبت بعد الفانكشن امر جديد فهوا لا ينفز ابدا ولا يظهر خطأ بلكود
فقط الامر لا يعمل :thinking:

إعجابَين (2)

الكود يعمل عندي بشكل صحيح وقد قمت بتجربة اضافة بعض الاكواد بعد فانكشن danse() وظهر كل شيء فاعتقد ان الخطا ربما في طريقة كتابتك للكود بعده لذلك اريد منك ارسال مثال لكود اسفل فانكشن danse() لارى ان كان هناك خطا لا يجعل الكود يعمل

إعجابَين (2)

العفو :rose:
/////////

//

إعجابَين (2)

شكرا لك على تفاعلك معي وتجربة الكود
لقد اكتشفت لخطأ
لقد كنت انسا عمل window.update()
عمل ابديت للشاشة

3 إعجابات