דילוג לתוכן
  • חוקי הפורום
  • פופולרי
  • לא נפתר
  • משתמשים
  • חיפוש גוגל בפורום
  • צור קשר
עיצובים
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • ברירת מחדל (ללא עיצוב (ברירת מחדל))
  • ללא עיצוב (ברירת מחדל)
כיווץ
מתמחים טופ
  1. דף הבית
  2. כללי - עזרה הדדית
  3. בקשה | הרצת תוכנה בפייתון

בקשה | הרצת תוכנה בפייתון

מתוזמן נעוץ נעול הועבר כללי - עזרה הדדית
27 פוסטים 4 כותבים 338 צפיות 5 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • יוסף אלחנןי יוסף אלחנן

    @תותחוביץ תעלה לפה

    ת מנותק
    ת מנותק
    תותחוביץ'
    כתב נערך לאחרונה על ידי
    #3

    @יוסף-אלחנן
    תודה רבה רבה
    import pygame
    import sys
    import time

    אתחול pygame

    pygame.init()

    הגדרת גודל המסך

    screen_width, screen_height = 800, 600
    screen = pygame.display.set_mode((screen_width, screen_height))

    טוען את כל התמונות

    image1 = pygame.image.load("image1.png")
    image2 = pygame.image.load("image2.png")
    image3 = pygame.image.load("image3.png")
    image4 = pygame.image.load("image4.png")
    image5 = pygame.image.load("image5.png")
    image6 = pygame.image.load("image6.png")
    image7 = pygame.image.load("image7.png")
    image8 = pygame.image.load("image8.png")
    image9 = pygame.image.load("image9.png")

    פונקציה להצגת תמונה על המסך

    def display_image(image):
    screen.blit(image, (0, 0))
    pygame.display.update()

    הצגת תמונה 8 בהתחלת המשחק

    display_image(image8)
    pygame.time.delay(3000) # ממתין 3 שניות

    משתני משחק

    scroll_position = 0
    scroll_speed = 0
    running = True
    paused = False

    לולאת המשחק הראשית

    while running:
    for event in pygame.event.get():
    if event.type == pygame.QUIT:
    running = False
    if event.type == pygame.KEYDOWN:
    if event.key == pygame.K_0:
    running = False
    if event.key == pygame.K_RIGHT:
    scroll_speed = 0.25
    paused = False
    if event.key == pygame.K_SPACE and not paused:
    scroll_speed *= 2
    if event.key == pygame.K_7 and paused and scroll_position >= 0.2:
    paused = False
    if event.key == pygame.K_2 and paused and scroll_position >= 0.4:
    paused = False
    if event.key == pygame.K_4 and paused and scroll_position >= 0.6:
    paused = False

            # פתיחת תמונה 9 במידה ונלחץ מקש אחר
            if paused and event.key not in [pygame.K_7, pygame.K_2, pygame.K_4, pygame.K_0]:
                display_image(image9)
                pygame.time.delay(2000)
                paused = True
    
    if not paused:
        # מחשב את המיקום החדש בתמונה 2
        scroll_position += scroll_speed / 100
    
        if scroll_position >= 1.0:
            display_image(image7)
            pygame.time.delay(5000)
            running = False
        elif scroll_position >= 0.8:
            display_image(image6)
            paused = True
        elif scroll_position >= 0.6:
            display_image(image5)
            paused = True
        elif scroll_position >= 0.4:
            display_image(image4)
            paused = True
        elif scroll_position >= 0.2:
            display_image(image3)
            paused = True
    
        # מציג את תמונה 2 ומרכז את תמונה 1
        screen.fill((0, 0, 0))
        image2_cropped = pygame.Surface((screen_height, screen_height))
        image2_cropped.blit(image2, (0, 0), (scroll_position * image2.get_width(), 0, screen_height, screen_height))
        screen.blit(image2_cropped, (0, 0))
        screen.blit(image1, ((screen_width - image1.get_width()) // 2, (screen_height - image1.get_height()) // 2))
        pygame.display.update()
    
    # הקפאת התמונה כשאין לחיצה על מקשים
    else:
        pygame.time.wait(100)
    

    יציאה מהמשחק

    pygame.quit()
    sys.exit()

    יוסף אלחנןי Y 2 תגובות תגובה אחרונה
    0
    • ת תותחוביץ'

      @יוסף-אלחנן
      תודה רבה רבה
      import pygame
      import sys
      import time

      אתחול pygame

      pygame.init()

      הגדרת גודל המסך

      screen_width, screen_height = 800, 600
      screen = pygame.display.set_mode((screen_width, screen_height))

      טוען את כל התמונות

      image1 = pygame.image.load("image1.png")
      image2 = pygame.image.load("image2.png")
      image3 = pygame.image.load("image3.png")
      image4 = pygame.image.load("image4.png")
      image5 = pygame.image.load("image5.png")
      image6 = pygame.image.load("image6.png")
      image7 = pygame.image.load("image7.png")
      image8 = pygame.image.load("image8.png")
      image9 = pygame.image.load("image9.png")

      פונקציה להצגת תמונה על המסך

      def display_image(image):
      screen.blit(image, (0, 0))
      pygame.display.update()

      הצגת תמונה 8 בהתחלת המשחק

      display_image(image8)
      pygame.time.delay(3000) # ממתין 3 שניות

      משתני משחק

      scroll_position = 0
      scroll_speed = 0
      running = True
      paused = False

      לולאת המשחק הראשית

      while running:
      for event in pygame.event.get():
      if event.type == pygame.QUIT:
      running = False
      if event.type == pygame.KEYDOWN:
      if event.key == pygame.K_0:
      running = False
      if event.key == pygame.K_RIGHT:
      scroll_speed = 0.25
      paused = False
      if event.key == pygame.K_SPACE and not paused:
      scroll_speed *= 2
      if event.key == pygame.K_7 and paused and scroll_position >= 0.2:
      paused = False
      if event.key == pygame.K_2 and paused and scroll_position >= 0.4:
      paused = False
      if event.key == pygame.K_4 and paused and scroll_position >= 0.6:
      paused = False

              # פתיחת תמונה 9 במידה ונלחץ מקש אחר
              if paused and event.key not in [pygame.K_7, pygame.K_2, pygame.K_4, pygame.K_0]:
                  display_image(image9)
                  pygame.time.delay(2000)
                  paused = True
      
      if not paused:
          # מחשב את המיקום החדש בתמונה 2
          scroll_position += scroll_speed / 100
      
          if scroll_position >= 1.0:
              display_image(image7)
              pygame.time.delay(5000)
              running = False
          elif scroll_position >= 0.8:
              display_image(image6)
              paused = True
          elif scroll_position >= 0.6:
              display_image(image5)
              paused = True
          elif scroll_position >= 0.4:
              display_image(image4)
              paused = True
          elif scroll_position >= 0.2:
              display_image(image3)
              paused = True
      
          # מציג את תמונה 2 ומרכז את תמונה 1
          screen.fill((0, 0, 0))
          image2_cropped = pygame.Surface((screen_height, screen_height))
          image2_cropped.blit(image2, (0, 0), (scroll_position * image2.get_width(), 0, screen_height, screen_height))
          screen.blit(image2_cropped, (0, 0))
          screen.blit(image1, ((screen_width - image1.get_width()) // 2, (screen_height - image1.get_height()) // 2))
          pygame.display.update()
      
      # הקפאת התמונה כשאין לחיצה על מקשים
      else:
          pygame.time.wait(100)
      

      יציאה מהמשחק

      pygame.quit()
      sys.exit()

      יוסף אלחנןי מחובר
      יוסף אלחנןי מחובר
      יוסף אלחנן
      מדריכים
      כתב נערך לאחרונה על ידי
      #4

      @תותחוביץ אתה יכול לשלוח את זה בקובץ?
      או שתסמן את כל הקוד

      ככה
      
      ת תגובה 1 תגובה אחרונה
      0
      • יוסף אלחנןי יוסף אלחנן

        @תותחוביץ אתה יכול לשלוח את זה בקובץ?
        או שתסמן את כל הקוד

        ככה
        
        ת מנותק
        ת מנותק
        תותחוביץ'
        כתב נערך לאחרונה על ידי
        #5

        @יוסף-אלחנן
        זה לא מצורף כאן גם כקובץ?
        עשיתי העתק קוד 0b40aa60-c408-479a-be6a-76c66d6c1354-image.png בלינק
        ועשיתי כאן הדבק
        איך עושים את זה אחרת?

        יוסף אלחנןי תגובה 1 תגובה אחרונה
        0
        • ת תותחוביץ'

          @יוסף-אלחנן
          זה לא מצורף כאן גם כקובץ?
          עשיתי העתק קוד 0b40aa60-c408-479a-be6a-76c66d6c1354-image.png בלינק
          ועשיתי כאן הדבק
          איך עושים את זה אחרת?

          יוסף אלחנןי מחובר
          יוסף אלחנןי מחובר
          יוסף אלחנן
          מדריכים
          כתב נערך לאחרונה על ידי
          #6

          @תותחוביץ תעתיק את כל הטקסט לפתק ואז תעלה

          ת תגובה 1 תגובה אחרונה
          0
          • יוסף אלחנןי יוסף אלחנן

            @תותחוביץ תעתיק את כל הטקסט לפתק ואז תעלה

            ת מנותק
            ת מנותק
            תותחוביץ'
            כתב נערך לאחרונה על ידי
            #7

            @יוסף-אלחנן
            כאילו לקובץ וורד?

            יוסף אלחנןי תגובה 1 תגובה אחרונה
            0
            • ת תותחוביץ'

              @יוסף-אלחנן
              כאילו לקובץ וורד?

              יוסף אלחנןי מחובר
              יוסף אלחנןי מחובר
              יוסף אלחנן
              מדריכים
              כתב נערך לאחרונה על ידי יוסף אלחנן
              #8

              @תותחוביץ לא, לקובץ טקסט.

              תפתח פתקים במחשב

              או בסייר, תבחר הוסף קובץ, ואז קובץ טקסט

              ת תגובה 1 תגובה אחרונה
              0
              • יוסף אלחנןי יוסף אלחנן

                @תותחוביץ לא, לקובץ טקסט.

                תפתח פתקים במחשב

                או בסייר, תבחר הוסף קובץ, ואז קובץ טקסט

                ת מנותק
                ת מנותק
                תותחוביץ'
                כתב נערך לאחרונה על ידי
                #9

                @יוסף-אלחנן
                אתה מתכוון לזה?
                9db072e1-3c86-43ea-b042-7f24338469f6-להלן תוכנה בפייתון שתבצע את המשחק שתיארת.txt

                יוסף אלחנןי תגובה 1 תגובה אחרונה
                1
                • ת תותחוביץ'

                  @יוסף-אלחנן
                  אתה מתכוון לזה?
                  9db072e1-3c86-43ea-b042-7f24338469f6-להלן תוכנה בפייתון שתבצע את המשחק שתיארת.txt

                  יוסף אלחנןי מחובר
                  יוסף אלחנןי מחובר
                  יוסף אלחנן
                  מדריכים
                  כתב נערך לאחרונה על ידי
                  #10

                  @תותחוביץ מעולה!
                  דקה אני אעבור למחשב אני אריץ את זה...

                  תגובה 1 תגובה אחרונה
                  1
                  • ת תותחוביץ'

                    @יוסף-אלחנן
                    תודה רבה רבה
                    import pygame
                    import sys
                    import time

                    אתחול pygame

                    pygame.init()

                    הגדרת גודל המסך

                    screen_width, screen_height = 800, 600
                    screen = pygame.display.set_mode((screen_width, screen_height))

                    טוען את כל התמונות

                    image1 = pygame.image.load("image1.png")
                    image2 = pygame.image.load("image2.png")
                    image3 = pygame.image.load("image3.png")
                    image4 = pygame.image.load("image4.png")
                    image5 = pygame.image.load("image5.png")
                    image6 = pygame.image.load("image6.png")
                    image7 = pygame.image.load("image7.png")
                    image8 = pygame.image.load("image8.png")
                    image9 = pygame.image.load("image9.png")

                    פונקציה להצגת תמונה על המסך

                    def display_image(image):
                    screen.blit(image, (0, 0))
                    pygame.display.update()

                    הצגת תמונה 8 בהתחלת המשחק

                    display_image(image8)
                    pygame.time.delay(3000) # ממתין 3 שניות

                    משתני משחק

                    scroll_position = 0
                    scroll_speed = 0
                    running = True
                    paused = False

                    לולאת המשחק הראשית

                    while running:
                    for event in pygame.event.get():
                    if event.type == pygame.QUIT:
                    running = False
                    if event.type == pygame.KEYDOWN:
                    if event.key == pygame.K_0:
                    running = False
                    if event.key == pygame.K_RIGHT:
                    scroll_speed = 0.25
                    paused = False
                    if event.key == pygame.K_SPACE and not paused:
                    scroll_speed *= 2
                    if event.key == pygame.K_7 and paused and scroll_position >= 0.2:
                    paused = False
                    if event.key == pygame.K_2 and paused and scroll_position >= 0.4:
                    paused = False
                    if event.key == pygame.K_4 and paused and scroll_position >= 0.6:
                    paused = False

                            # פתיחת תמונה 9 במידה ונלחץ מקש אחר
                            if paused and event.key not in [pygame.K_7, pygame.K_2, pygame.K_4, pygame.K_0]:
                                display_image(image9)
                                pygame.time.delay(2000)
                                paused = True
                    
                    if not paused:
                        # מחשב את המיקום החדש בתמונה 2
                        scroll_position += scroll_speed / 100
                    
                        if scroll_position >= 1.0:
                            display_image(image7)
                            pygame.time.delay(5000)
                            running = False
                        elif scroll_position >= 0.8:
                            display_image(image6)
                            paused = True
                        elif scroll_position >= 0.6:
                            display_image(image5)
                            paused = True
                        elif scroll_position >= 0.4:
                            display_image(image4)
                            paused = True
                        elif scroll_position >= 0.2:
                            display_image(image3)
                            paused = True
                    
                        # מציג את תמונה 2 ומרכז את תמונה 1
                        screen.fill((0, 0, 0))
                        image2_cropped = pygame.Surface((screen_height, screen_height))
                        image2_cropped.blit(image2, (0, 0), (scroll_position * image2.get_width(), 0, screen_height, screen_height))
                        screen.blit(image2_cropped, (0, 0))
                        screen.blit(image1, ((screen_width - image1.get_width()) // 2, (screen_height - image1.get_height()) // 2))
                        pygame.display.update()
                    
                    # הקפאת התמונה כשאין לחיצה על מקשים
                    else:
                        pygame.time.wait(100)
                    

                    יציאה מהמשחק

                    pygame.quit()
                    sys.exit()

                    Y מנותק
                    Y מנותק
                    Yehuda 1
                    כתב נערך לאחרונה על ידי
                    #11

                    @תותחוביץ כתב בבקשה | הרצת תוכנה בפייתון:

                    טוען את כל התמונות
                    image1 = pygame.image.load("image1.png")
                    image2 = pygame.image.load("image2.png")
                    image3 = pygame.image.load("image3.png")
                    image4 = pygame.image.load("image4.png")
                    image5 = pygame.image.load("image5.png")
                    image6 = pygame.image.load("image6.png")
                    image7 = pygame.image.load("image7.png")
                    image8 = pygame.image.load("image8.png")
                    image9 = pygame.image.load("image9.png")

                    איך בדיוק זה אמור למצוא במחשב של מר @יוסף-אלחנן את התמונות האלו?

                    ת תגובה 1 תגובה אחרונה
                    1
                    • Y Yehuda 1

                      @תותחוביץ כתב בבקשה | הרצת תוכנה בפייתון:

                      טוען את כל התמונות
                      image1 = pygame.image.load("image1.png")
                      image2 = pygame.image.load("image2.png")
                      image3 = pygame.image.load("image3.png")
                      image4 = pygame.image.load("image4.png")
                      image5 = pygame.image.load("image5.png")
                      image6 = pygame.image.load("image6.png")
                      image7 = pygame.image.load("image7.png")
                      image8 = pygame.image.load("image8.png")
                      image9 = pygame.image.load("image9.png")

                      איך בדיוק זה אמור למצוא במחשב של מר @יוסף-אלחנן את התמונות האלו?

                      ת מנותק
                      ת מנותק
                      תותחוביץ'
                      כתב נערך לאחרונה על ידי
                      #12

                      @Yehuda-1
                      זה לא אמור למצוא
                      זה אמור לפתוח את התמונות האלו שיהיו איתו בתיקייה כלומר שאצלי יש תמונות ואני אשים אותם בתיקייה יחד עם התוכנה וזה יריץ אותם
                      1468097a-a48a-4298-af29-b4f632064318-image.png

                      Y תגובה 1 תגובה אחרונה
                      0
                      • ת תותחוביץ'

                        @Yehuda-1
                        זה לא אמור למצוא
                        זה אמור לפתוח את התמונות האלו שיהיו איתו בתיקייה כלומר שאצלי יש תמונות ואני אשים אותם בתיקייה יחד עם התוכנה וזה יריץ אותם
                        1468097a-a48a-4298-af29-b4f632064318-image.png

                        Y מנותק
                        Y מנותק
                        Yehuda 1
                        כתב נערך לאחרונה על ידי
                        #13

                        @תותחוביץ

                        @תותחוביץ כתב בבקשה | הרצת תוכנה בפייתון:

                        זה אמור לפתוח את התמונות האלו שיהיו איתו בתיקייה כלומר שאצלי יש תמונות

                        ואיך אתה מצפה שהקוד ירוץ בהצלחה אם התמונות האלו נמצאות על המחשב שלך ולא על המחשב של יוסף אלחנן?

                        ת תגובה 1 תגובה אחרונה
                        1
                        • Y Yehuda 1

                          @תותחוביץ

                          @תותחוביץ כתב בבקשה | הרצת תוכנה בפייתון:

                          זה אמור לפתוח את התמונות האלו שיהיו איתו בתיקייה כלומר שאצלי יש תמונות

                          ואיך אתה מצפה שהקוד ירוץ בהצלחה אם התמונות האלו נמצאות על המחשב שלך ולא על המחשב של יוסף אלחנן?

                          ת מנותק
                          ת מנותק
                          תותחוביץ'
                          כתב נערך לאחרונה על ידי
                          #14

                          @Yehuda-1
                          אני לא רוצה שזה יריץ תמונה ספציפית אני רוצה שכל פעם שמפעילים את התוכנה היא תריץ את התמונות שנמצאות באותו הרגע בתיקייה שלה

                          Y יוסף אלחנןי 2 תגובות תגובה אחרונה
                          0
                          • ת תותחוביץ'

                            @Yehuda-1
                            אני לא רוצה שזה יריץ תמונה ספציפית אני רוצה שכל פעם שמפעילים את התוכנה היא תריץ את התמונות שנמצאות באותו הרגע בתיקייה שלה

                            Y מנותק
                            Y מנותק
                            Yehuda 1
                            כתב נערך לאחרונה על ידי
                            #15

                            @תותחוביץ
                            אז הקוד הזה פונה לתמונות מאד ספציפיות... image1.png image2.png וכו'

                            תגובה 1 תגובה אחרונה
                            1
                            • ת תותחוביץ'

                              @Yehuda-1
                              אני לא רוצה שזה יריץ תמונה ספציפית אני רוצה שכל פעם שמפעילים את התוכנה היא תריץ את התמונות שנמצאות באותו הרגע בתיקייה שלה

                              יוסף אלחנןי מחובר
                              יוסף אלחנןי מחובר
                              יוסף אלחנן
                              מדריכים
                              כתב נערך לאחרונה על ידי יוסף אלחנן
                              #16

                              @תותחוביץ בכל אופן, אם אתה רוצה לקמפל את הקוד, שלח לי את התמונות כדי שאוכל לקמפל אותם יחד...

                              אחרת, לא תוכל להפיץ את התוכנה כי הרי לאף אחד אין את התמונות בנתיב המוגדר....

                              ת תגובה 1 תגובה אחרונה
                              1
                              • יוסף אלחנןי יוסף אלחנן

                                @תותחוביץ בכל אופן, אם אתה רוצה לקמפל את הקוד, שלח לי את התמונות כדי שאוכל לקמפל אותם יחד...

                                אחרת, לא תוכל להפיץ את התוכנה כי הרי לאף אחד אין את התמונות בנתיב המוגדר....

                                ת מנותק
                                ת מנותק
                                תותחוביץ'
                                כתב נערך לאחרונה על ידי
                                #17

                                @יוסף-אלחנן
                                זה שאני אשים אח"כ תמונות באותו תיקייה זה לא יספיק?
                                כי עדיין אין לי את התמונות מוכנות רציתי להריץ תוכנה לבדוק שבאמת היא עובדת ע"י תמונות הקראיות ואח"כ לעבוד על לעצב את התמונות

                                יוסף אלחנןי תגובה 1 תגובה אחרונה
                                0
                                • ת תותחוביץ'

                                  @יוסף-אלחנן
                                  זה שאני אשים אח"כ תמונות באותו תיקייה זה לא יספיק?
                                  כי עדיין אין לי את התמונות מוכנות רציתי להריץ תוכנה לבדוק שבאמת היא עובדת ע"י תמונות הקראיות ואח"כ לעבוד על לעצב את התמונות

                                  יוסף אלחנןי מחובר
                                  יוסף אלחנןי מחובר
                                  יוסף אלחנן
                                  מדריכים
                                  כתב נערך לאחרונה על ידי יוסף אלחנן
                                  #18

                                  @תותחוביץ אם התמונת רק אצלך, אז רק אצלך תוכל להריץ את הקוד בהצלחה, אם אתה רוצה לשלוח למישהו את התוכנה, תצטרך לקמפל את הקוד ביחד עם התמונות...

                                  ת תגובה 1 תגובה אחרונה
                                  1
                                  • יוסף אלחנןי יוסף אלחנן

                                    @תותחוביץ אם התמונת רק אצלך, אז רק אצלך תוכל להריץ את הקוד בהצלחה, אם אתה רוצה לשלוח למישהו את התוכנה, תצטרך לקמפל את הקוד ביחד עם התמונות...

                                    ת מנותק
                                    ת מנותק
                                    תותחוביץ'
                                    כתב נערך לאחרונה על ידי
                                    #19

                                    @יוסף-אלחנן
                                    אני יוכל לשלוח לו את כל התיקייה עם התוכנה ועם התמונות, לא?

                                    יוסף אלחנןי תגובה 1 תגובה אחרונה
                                    1
                                    • ת תותחוביץ'

                                      @יוסף-אלחנן
                                      אני יוכל לשלוח לו את כל התיקייה עם התוכנה ועם התמונות, לא?

                                      יוסף אלחנןי מחובר
                                      יוסף אלחנןי מחובר
                                      יוסף אלחנן
                                      מדריכים
                                      כתב נערך לאחרונה על ידי
                                      #20

                                      @תותחוביץ כן, בהחלט!

                                      ת תגובה 1 תגובה אחרונה
                                      1
                                      • יוסף אלחנןי יוסף אלחנן

                                        @תותחוביץ כן, בהחלט!

                                        ת מנותק
                                        ת מנותק
                                        תותחוביץ'
                                        כתב נערך לאחרונה על ידי
                                        #21

                                        @יוסף-אלחנן
                                        אז זה מעולה, זה מספיק לי.

                                        יוסף אלחנןי תגובה 1 תגובה אחרונה
                                        0
                                        • ת תותחוביץ'

                                          @יוסף-אלחנן
                                          אז זה מעולה, זה מספיק לי.

                                          יוסף אלחנןי מחובר
                                          יוסף אלחנןי מחובר
                                          יוסף אלחנן
                                          מדריכים
                                          כתב נערך לאחרונה על ידי
                                          #22

                                          @תותחוביץ רוצה לעבור לפרטי?

                                          ת תגובה 1 תגובה אחרונה
                                          1

                                          • התחברות

                                          • אין לך חשבון עדיין? הרשמה

                                          • התחברו או הירשמו כדי לחפש.
                                          • פוסט ראשון
                                            פוסט אחרון
                                          0
                                          • חוקי הפורום
                                          • פופולרי
                                          • לא נפתר
                                          • משתמשים
                                          • חיפוש גוגל בפורום
                                          • צור קשר