가바보 구 드들 보면 문 많 나 구 if 문 복된 경가 많다.
문 나는 것나 구가 반복되는 것나 모두 "나 "(
BadSmell )다. 라 나 가 나면 바로바로 를 다. 대, 반복되는 문 블 로그래밍(Table/Data Driven Programming)로 결 다.
그리고, 고 구들 극로 기 바랍다. 다그램나, 는 x,y 를 는 것, 브루 문를 문(subproblem)로 나는 것 륭 고 구가 됩다 -- 문 복를 낮기 때문.
대, 다과 같 문가 겠:
- 로부 력료 고 기
- 둘 가 겼는 단기
- 람로 긴 , 기
- 결과 보기
~cpp
GAWI=1
BAWI=2
BO=3
def getWinner(p1,p2):
"""return 1 when p1 wins, 2 when p2 wins, 0 when a tie"""
if p1>=p2:
return p1-p2
else:
return p1-p2+3
기 단 더 리링 가능까?
def getWinner(p1,p2):
"""return 1 when p1 wins, 2 when p2 wins, 0 when a tie"""
return (p1+2*p2)%3
>>> getWinner(GAWI,BO)
1
>>> getWinner(BO,GAWI)
2
>>> getWinner(BAWI,GAWI)
1
>>> getWinner(BO,BO)
0









