string => list
list => set 으로 변환
'Python' 카테고리의 다른 글
야구게임 Lab (0) | 2017.05.05 |
---|---|
난수발생, 코드테스트 (0) | 2017.04.13 |
반복문 (0) | 2017.04.12 |
파이썬 조건문(if-else문법) (0) | 2017.04.10 |
화면 입출력 및 배열 (0) | 2017.04.10 |
string => list
list => set 으로 변환
야구게임 Lab (0) | 2017.05.05 |
---|---|
난수발생, 코드테스트 (0) | 2017.04.13 |
반복문 (0) | 2017.04.12 |
파이썬 조건문(if-else문법) (0) | 2017.04.10 |
화면 입출력 및 배열 (0) | 2017.04.10 |
# -*- coding: utf-8 -*- import random def get_random_number(): # Helper Function - 지우지 말 것 # 100부터 999까지 수를 램덤하게 반환함 return random.randrange(100, 1000) def is_digit(user_input_number): # ''' # Input: # - user_input_number : 문자열 값 # Output: # - user_input_number가 정수로 변환 가능할 경우는 True, # 그렇지 않을 경우는 False # Examples: # >>> import baseball_game as bg # >>> bg.is_digit("551") # True # >>> bg.is_digit("103943") # True # >>> bg.is_digit("472") # True # >>> bg.is_digit("1032.203") # False # >>> bg.is_digit("abc") # False # ''' # ===Modify codes below============= # 조건에 따라 변환되어야 할 결과를 result 변수에 할당 result = user_input_number.isdigit() # ================================== return result def is_between_100_and_999(user_input_number): # ''' # Input: # - user_input_number : 문자열 값 # 입력된 값은 숫자형태의 문자열 값임이 보장된다. # Output: # - user_input_number가 정수로 변환하여 100이상 1000미만일 경우 True, # 그렇지 않을 경우는 False # Examples: # >>> import baseball_game as bg # >>> bg.is_between_100_and_999("551") # True # >>> bg.is_between_100_and_999("103943") # False # >>> bg.is_between_100_and_999("472") # True # >>> bg.is_between_100_and_999("0") # False # ''' # ===Modify codes below============= # 조건에 따라 변환되어야 할 결과를 result 변수에 할당 result = (int(user_input_number) >= 100 and int(user_input_number) < 1000) # ================================== return result def is_duplicated_number(three_digit): # ''' # Input: # - three_digit : 문자열로 된 세자리 양의 정수 값 # 문자열로 된 세자리 양의 정수값의 입력이 보장된다. # Output: # - three_digit 정수로 변환하였을 경우 중복되는 수가 있으면 True, # 그렇지 않을 경우는 False # ex) 117 - True, 123 - False, 103 - False, 113 - True # Examples: # >>> import baseball_game as bg # >>> bg.is_duplicated_number("551") # True # >>> bg.is_duplicated_number("402") # False # >>> bg.is_duplicated_number("472") # False # >>> bg.is_duplicated_number("100") # True # ''' # ===Modify codes below============= # 조건에 따라 변환되어야 할 결과를 result 변수에 할당 result = False for d in three_digit: if three_digit.count(d) > 1: result = True break # ================================== return result def is_validated_number(user_input_number): # ''' # Input: # - user_input_number : 문자열 값 # Output: # - user_input_number 값이 아래 조건이면 True, 그렇지 않으면 False를 반환 # 1) 숫자형 문자열이며, 2) 100이상 1000미만이며, 3) 중복되는 숫자가 없을 경우 # Examples: # >>> import baseball_game as bg # >>> bg.is_validated_number("amvd") # False # >>> bg.is_validated_number("402") # True # >>> bg.is_validated_number("472") # True # >>> bg.is_validated_number("100") # False # >>> bg.is_validated_number("1000") # False # ''' # ===Modify codes below============= # 조건에 따라 변환되어야 할 결과를 result 변수에 할당 result = False if is_digit(user_input_number) and is_between_100_and_999(user_input_number) and not is_duplicated_number(user_input_number): result = True # ================================== return result def get_not_duplicated_three_digit_number(): # ''' # Input: # - None : 입력값이 없음 # Output: # - 중복되는 숫자가 없는 3자리 정수값을 램덤하게 생성하여 반환함 # 정수값으로 문자열이 아님 # Examples: # >>> import baseball_game as bg # >>> bg.get_not_duplicated_three_digit_number() # 125 # >>> bg.get_not_duplicated_three_digit_number() # 634 # >>> bg.get_not_duplicated_three_digit_number() # 583 # >>> bg.get_not_duplicated_three_digit_number() # 381 # ''' # ===Modify codes below============= # 조건에 따라 변환되어야 할 결과를 result 변수에 할당 # get_random_number() 함수를 사용하여 random number 생성 result = 0 while True: result = get_random_number() if is_validated_number(str(result)): break # ================================== return result def get_strikes_or_ball(user_input_number, random_number): # ''' # Input: # - user_input_number : 문자열값으로 사용자가 입력하는 세자리 정수 # - random_number : 문자열값으로 컴퓨터가 자동으로 생성된 숫자 # Output: # - [strikes, ball] : 규칙에 따라 정수형 값인 strikes와 ball이 반환됨 # 변환 규칙은 아래와 같음 # - 사용자가 입력한 숫자와 컴퓨터가 생성한 숫자의 # 한 숫자와 자릿수가 모두 일치하면 1 Strike # - 자릿수는 다르나 입력한 한 숫자가 존재하면 1 Ball # - 세자리 숫자를 정확히 입력하면 3 Strike # Examples: # >>> import baseball_game as bg # >>> bg.get_strikes_or_ball("123", "472") # [0, 1] # >>> bg.get_strikes_or_ball("547", "472") # [0, 2] # >>> bg.get_strikes_or_ball("247", "472") # [0, 3] # >>> bg.get_strikes_or_ball("742", "472") # [1, 2] # >>> bg.get_strikes_or_ball("472", "472") # [3, 0] # ''' # ===Modify codes below============= # 조건에 따라 변환되어야 할 결과를 result 변수에 할당 strike = 0 ball = 0 for ui in range(0, len(user_input_number)): if user_input_number[ui] in random_number[ui]: strike += 1 elif user_input_number[ui] in random_number: ball += 1 result = [strike, ball] # ================================== return result def is_yes(one_more_input): # ''' # Input: # - one_more_input : 문자열값으로 사용자가 입력하는 문자 # Output: # - 입력한 값이 대소문자 구분없이 "Y" 또는 "YES"일 경우 True, # 그렇지 않을 경우 False를 반환함 # Examples: # >>> import baseball_game as bg # >>> bg.is_yes("Y") # True # >>> bg.is_yes("y") # True # >>> bg.is_yes("Yes") # True # >>> bg.is_yes("YES") # True # >>> bg.is_yes("abc") # False # >>> bg.is_yes("213") # False # >>> bg.is_yes("4562") # False # ''' # ===Modify codes below============= # 조건에 따라 변환되어야 할 결과를 result 변수에 할당 result = False upper_input = one_more_input.upper() if upper_input == "Y" or upper_input == "YES": result = True # ================================== return result def is_no(one_more_input): # ''' # Input: # - one_more_input : 문자열값으로 사용자가 입력하는 문자 # Output: # - 입력한 값이 대소문자 구분없이 "N" 또는 "NO"일 경우 True, # 그렇지 않을 경우 False를 반환함 # Examples: # >>> import baseball_game as bg # >>> bg.is_no("Y") # False # >>> bg.is_no("b") # False # >>> bg.is_no("n") # True # >>> bg.is_no("NO") # True # >>> bg.is_no("nO") # True # >>> bg.is_no("1234") # False # >>> bg.is_no("yes") # False # ''' # ===Modify codes below============= # 조건에 따라 변환되어야 할 결과를 result 변수에 할당 result = False upper_input = one_more_input.upper() if upper_input == "N" or upper_input == "NO": result = True # ================================== return result def main(): print("Play Baseball") user_input = 999 EndGame = False while EndGame is False: strikeAndBalls = [0,0] random_number = str(get_not_duplicated_three_digit_number()) print("Random Number is : ", random_number) # ===Modify codes below============= # 위의 코드를 포함하여 자유로운 수정이 가능함 while strikeAndBalls[0] < 3: user_input = input("Input guess number : ") if user_input == "0": EndGame = True break elif is_validated_number(user_input): strikeAndBalls = get_strikes_or_ball(user_input, random_number) print("Strikes : ", strikeAndBalls[0], " , Balls : ", strikeAndBalls[1]) else: print("Wrong Input, Input again") while EndGame is False: OneMore = input("You win, one more(Y/N) ?") if is_no(OneMore): EndGame = True break elif is_yes(OneMore): break else: print("Wrong Input, Input again") # ================================== print("Thank you for using this program") print("End of the Game") if __name__ == "__main__": main()
string to list, list to set (0) | 2017.05.06 |
---|---|
난수발생, 코드테스트 (0) | 2017.04.13 |
반복문 (0) | 2017.04.12 |
파이썬 조건문(if-else문법) (0) | 2017.04.10 |
화면 입출력 및 배열 (0) | 2017.04.10 |
[Player.cs]
using UnityEngine; public class Player : MonoBehaviour { public int id; public string playerName; public string backStory; public float health; public float damage; public float weapon1Damage, weapon2Damage; public string shoesName; public int shoesSize; public string shoesType; // Use this for initialization void Start () { health = 50; } // Update is called once per frame void Update () { } }
[PlayerInspector2.cs] - Editor폴더에 존재
using UnityEngine; using UnityEditor; [CustomEditor(typeof(Player))] [CanEditMultipleObjects] public class PlayerInspector2 : Editor { Player player; SerializedProperty playerName; SerializedProperty playerHealth; private void OnEnable() { player = (Player)target; playerName = serializedObject.FindProperty("playerName"); playerHealth = serializedObject.FindProperty("health"); } public override void OnInspectorGUI() { serializedObject.Update(); EditorGUILayout.BeginVertical(); EditorGUILayout.PropertyField(playerName); if(playerHealth.floatValue < 20) { GUI.color = Color.red; } if (playerHealth.floatValue > 80) { GUI.color = Color.green; } EditorGUILayout.PropertyField(playerHealth); GUI.color = Color.white; EditorGUILayout.EndVertical(); serializedObject.ApplyModifiedProperties(); } }
FSM 엔진 (0) | 2017.06.11 |
---|---|
Custom Inspector (0) | 2017.05.03 |
EditorWindow 사용예 (0) | 2017.05.02 |
Custom Editor Window - GUI (0) | 2017.05.02 |
Editor Scripting Tip [Built-in Attribute] (0) | 2017.05.02 |