python (paper,rock,scissor) game

Ahmed Farid • منذ 8 أشهر

الكود دا مطلوب مني اعمل عليه Code Style الكود شغال وكل حاجه تمام بس انا مش عارف ,, لو عملتو كوبي وبيست ف الموقع دا http://pep8online.com  هتظهر الاخطاء وانا مش فاهم هيا فين او مش عارف اعمل code style 

import random

moves = ['rock', 'paper', 'scissors']

class Player:  
    def move(self):
        return 'rock'

    def learn(self, my_move, their_move):
        pass
        
class RandomPleyer(Player):
    def move(self):
        return moves[random.randint(0,2)]

class ReflectPleyer(Player):
    ref_move = 'rock'
    def move(self):
        return self.ref_move
    
    def learn(self, my_move, their_move):
        self.ref_move = their_move

class CyclePleyer(Player):
    cycle_move = 'rock'
    def move(self):
        return self.cycle_move
    
    def learn(self, my_move, their_move):
        if my_move == 'rock':
            self.cycle_move = 'paper'
        elif my_move == 'paper':
            self.cycle_move = 'scissors'
        elif my_move == 'scissors':
            self.cycle_move = 'rock'

class HumanPlayer(Player):
    def move(self):
        while True:
            self.user_input = input('rock, paper, scissors? > ')
            if self.user_input in moves:
                break
        return self.user_input

def beats(one, two):
    return ((one == 'rock' and two == 'scissors') or
            (one == 'scissors' and two == 'paper') or
            (one == 'paper' and two == 'rock'))

class Game:
    def __init__(self, p1, p2):
        self.p1 = p1
        self.p2 = p2
        self.p1_score = 0
        self.p2_score = 0

    def play_round(self):
        move1 = self.p1.move()
        move2 = self.p2.move()
        print(f"Player 1: {move1}  Player 2: {move2}")
        if move1 == move2:
            print('** TIE **')
        elif beats(move1, move2):
            print('** PLAYER ONE WIN **')
            self.p1_score += 1
        else:
            print('** PLAYER TWO WIN **')
            self.p2_score += 1
        print(f'Score: Player One {self.p1_score} , Player Two {self.p2_score}')
        self.p1.learn(move1, move2)
        self.p2.learn(move2, move1)

    def match_rounds(self):
        while True:
            try:
                self.user_input = int(input('How many rounds you want to play? > '))
                break
            except ValueError:
                print("Please Enter a number")
                continue
            else:
                break
        return self.user_input

    def play_game(self):
        self.rounds = self.match_rounds()
        print("Game start!")
        for round in range(self.rounds):
            print(f"Round {round}:")
            self.play_round()
        print("Game over!")

if __name__ == '__main__':
    game = Game(HumanPlayer(), CyclePleyer())
    game.play_game()
 

كلمات دليلية: python

الإجابة الصحيحة

عمار الخوالدة • منذ 8 أشهر

وانا مش فاهم هيا فين او مش عارف اعمل code style 

هي أخطاء في التنسيق فقط ( بناء على معيار PEP8 )، بالنسبة للموقع الذي وضعته، يمكنك الضغط على الخطأ، وسينقلك الى مكانه، ثم قم بتصحيحه يدويا، مثال "expected 2 blank lines, found 1" هذا يعني أن كل class يجب أن يكون قبله سطران فارغان ( اضغط enter مرتين ) وتوجد معايير أخرى، مثلا السطر الفارغ لا يجب أن يحتوي على مسافات، قم بتعديلها يدويا، أو استخدم موقعا كهذا: https://yapf.now.sh/ حيث يقوم بتصحيح الأخطاء بنفسه بدلا من تنبيهك عليها فقط.
 

الإجابات (1)

عمار الخوالدة • منذ 8 أشهر
الإجابة الصحيحة

وانا مش فاهم هيا فين او مش عارف اعمل code style 

هي أخطاء في التنسيق فقط ( بناء على معيار PEP8 )، بالنسبة للموقع الذي وضعته، يمكنك الضغط على الخطأ، وسينقلك الى مكانه، ثم قم بتصحيحه يدويا، مثال "expected 2 blank lines, found 1" هذا يعني أن كل class يجب أن يكون قبله سطران فارغان ( اضغط enter مرتين ) وتوجد معايير أخرى، مثلا السطر الفارغ لا يجب أن يحتوي على مسافات، قم بتعديلها يدويا، أو استخدم موقعا كهذا: https://yapf.now.sh/ حيث يقوم بتصحيح الأخطاء بنفسه بدلا من تنبيهك عليها فقط.
 

Ahmed Farid: تمام شكراً اخي الكريم ، جزاك الله كل خطر

لايوجد لديك حساب في عالم البرمجة؟

تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !