Advertisement
Guest User

Untitled

a guest
Mar 31st, 2020
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.43 KB | None | 0 0
  1. def safe_pawns(pawns: set) -> int:
  2.  
  3. safe=set()
  4. for i in pawns:
  5. #vezi daca apara ceva
  6. a,b= getDiag(i)
  7. if a in pawns:
  8. safe.add(a)
  9. if b in pawns:
  10. safe.add(b)
  11.  
  12. #print(safe)
  13. return len(safe)
  14.  
  15. def getDiag(pawn):
  16.  
  17. diag1=None
  18. diag2=None
  19.  
  20. if pawn.endswith('8'):
  21. #no options
  22. return diag1, diag2
  23. elif pawn.startswith('a'):
  24. # one diag right upper
  25. diag2="b"+str(int(pawn[1])+1)
  26. return diag1, diag2
  27. elif pawn.startswith('h'):
  28. # one diag left upper
  29. diag1="g"+str(int(pawn[1])+1)
  30. return diag1, diag2
  31. else:
  32. #somewhere on the board
  33. diag1=getNextLeter(pawn[0]) + str(int(pawn[1])+1);
  34. diag2=getPrevLeter(pawn[0]) + str(int(pawn[1])+1);
  35.  
  36. return diag1, diag2
  37.  
  38. def getNextLeter(c):
  39. i=ord(c);
  40. i=i+1;
  41.  
  42. return chr(i)
  43.  
  44. def getPrevLeter(c):
  45. i=ord(c);
  46. i=i-1;
  47.  
  48. return chr(i)
  49.  
  50.  
  51. if __name__ == '__main__':
  52.  
  53. # safe_pawns({"b4", "d4", "f4", "c3", "e3", "g5", "d2"})
  54. #These "asserts" using only for self-checking and not necessary for auto-testing
  55. assert safe_pawns({"b4", "d4", "f4", "c3", "e3", "g5", "d2"}) == 6
  56. assert safe_pawns({"b4", "c4", "d4", "e4", "f4", "g4", "e5"}) == 1
  57. print("Coding complete? Click 'Check' to review your tests and earn cool rewards!")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement