Progerasmvs.korobkad3vlast month
Dice
Fundamentals
The tests don't provide for this. I don't know how to fix it :/
import random as r class Dice: def __init__(self, faces):self.faces = r.choice(faces) def __call__(self):return self.faces dice = Dice(["⚀", "⚁", "⚂", "⚃", "⚄", "⚅"])
- import random as r
- class Dice:
def __init__(self, faces):self.faces = facesdef roll(self):return r.choice(self.faces)- def __init__(self, faces):self.faces = r.choice(faces)
- def __call__(self):return self.faces
dice = Dice(["⚀", "⚁", "⚂", "⚃", "⚄", "⚅"])d = lambda :dice.roll()- dice = Dice(["⚀", "⚁", "⚂", "⚃", "⚄", "⚅"])
import codewars_test as test # TODO Write tests import solution # or from solution import example .it("Basic tests") def basic_tests(): valid = ["⚀", "⚁", "⚂", "⚃", "⚄", "⚅"] # roll 100 times for _ in range(100): result = dice() test.expect(result in valid, f"Got {result} but expected one of {valid}")
- import codewars_test as test
- # TODO Write tests
- import solution # or from solution import example
- @test.it("Basic tests")
- def basic_tests():
- valid = ["⚀", "⚁", "⚂", "⚃", "⚄", "⚅"]
- # roll 100 times
- for _ in range(100):
result = d()- result = dice()
- test.expect(result in valid, f"Got {result} but expected one of {valid}")
Why use extra 4 bytes :D
class IsPrimeNumber: """Returns True if n is a prime number, False otherwise""" def __init__(self, n): self.n = n def calculate(self): if self.n > 1: for i in range(2, int(self.n ** 0.5) + 1): if self.n % i == 0: return False return True # If no divisors found, it's prime return False class Fizz(IsPrimeNumber): """Returns True if n is divisible by 3, False otherwise""" def calculate(self): return self.n % 3 == 0 class Buzz(IsPrimeNumber): """Returns True if n is divisible by 5, False otherwise""" def calculate(self): return self.n % 5 == 0 class FizzBuzz(IsPrimeNumber): """Returns True if n is divisible by 3 and 5, False otherwise""" def calculate(self): return Fizz(self.n).calculate() and Buzz(self.n).calculate() class CodeWarKata776: """Executes the Fizz, Bizz, FizzBuzz Prime sequence.""" def __init__(self, n): self.n = n def calculate_prime(self): return IsPrimeNumber(self.n).calculate() def calculate_fizz(self): return Fizz(self.n).calculate() def calculate_buzz(self): return Buzz(self.n).calculate() def calculate_fizzbuzz(self): return FizzBuzz(self.n).calculate() def execute(self): if IsPrimeNumber(self.n).calculate(): return 'Prime' if FizzBuzz(self.n).calculate(): return 'FizzBuzz' elif Fizz(self.n).calculate(): return 'Fizz' elif Buzz(self.n).calculate(): return 'Buzz' return self.n
- class IsPrimeNumber:
- """Returns True if n is a prime number, False otherwise"""
- def __init__(self, n):
- self.n = n
- def calculate(self):
- if self.n > 1:
- for i in range(2, int(self.n ** 0.5) + 1):
- if self.n % i == 0:
- return False
- return True # If no divisors found, it's prime
else:return False- return False
class Fizz:- class Fizz(IsPrimeNumber):
- """Returns True if n is divisible by 3, False otherwise"""
def __init__(self, n):self.n = n- def calculate(self):
- return self.n % 3 == 0
class Buzz:- class Buzz(IsPrimeNumber):
- """Returns True if n is divisible by 5, False otherwise"""
def __init__(self, n):self.n = n- def calculate(self):
- return self.n % 5 == 0
class FizzBuzz:- class FizzBuzz(IsPrimeNumber):
- """Returns True if n is divisible by 3 and 5, False otherwise"""
def __init__(self, n):self.n = n- def calculate(self):
- return Fizz(self.n).calculate() and Buzz(self.n).calculate()
- class CodeWarKata776:
- """Executes the Fizz, Bizz, FizzBuzz Prime sequence."""
- def __init__(self, n):
- self.n = n
- def calculate_prime(self):
- return IsPrimeNumber(self.n).calculate()
- def calculate_fizz(self):
- return Fizz(self.n).calculate()
- def calculate_buzz(self):
- return Buzz(self.n).calculate()
- def calculate_fizzbuzz(self):
- return FizzBuzz(self.n).calculate()
- def execute(self):
- if IsPrimeNumber(self.n).calculate():
- return 'Prime'
- if FizzBuzz(self.n).calculate():
- return 'FizzBuzz'
- elif Fizz(self.n).calculate():
- return 'Fizz'
- elif Buzz(self.n).calculate():
- return 'Buzz'
else:return self.n- return self.n