728x90
반응형

python 105

[pygame] 09. 텍스트 사용

🙆‍♂️ 변수 설정 """ 3. 게임 내 필요한 설정 """ . . . #적기 격추 = shootDown shootDown=0 #적기 놓침 = missed missed=0 #포인트값 #point = (shootDown*100)-(missed-50) point=0 . . . """ 4. 메인 이벤트 """ . . . """ 4-3. 입력과 시간에 따른 변화 """ . . . for i in cd_del_enemList: del enemList[i] #적기 제거 shootDown += 1 #적군 격추 시 증가 point += 100 #적군 격추 시 포인트 100 증가 for i in del_enemList: del enemList[i] missed+=1 #적기 놓치면 증가 point-=50 #적기 놓치면 -..

앱 개발/pygame 2022.11.09

[자료구조] 스택 - 중위표현식 후위표현식으로 변환

🙆‍♂️ 후위표현식으로 변환하기 """ 스택 클래스 Stack def emt : 스택에 값이 없다면 True를 반환 있다면 False를 반환 def size : 스택의 현재 길이를 반환 def clear : 스택 값을 초기화 def push : 입력 요소 ch를 스택에 입력 def pop : 스택의 최상단 값을 삭제 def peek : 스택의 최상단 값 반환 def disply : 스택의 상태를 출력 """ class Stack: def __init__(self): self.stack=[] def emt(self): return len(self.stack)==0 def size(self): return len(self.stack) def clear(self): self.stack=[] def push(s..

[파이썬] 문자열에서 숫자와 특수문자 나누기 (수학식 문자열을 리스트에)

🙆‍♂️파이썬 string = input("input num : ") string = re.split('([^0-9])',string) string = ' '.join(string).split() print(string) string = re.split('([^0-9])',string) 이 코드로 숫자와 연산자를 구분할 수 있습니다. 그러나 위 코드만 사용하면 결과가 이렇게 괄호 앞 뒤로 공백이 생깁니다. string = ' '.join(string).split() 그래서 위의 코드로 리스트의 공백요소를 제거해주면 깔끔해집니다.

[웹 크롤링 프로젝트] 02. 웹 크롤링 데이터 MongoDB에 저장

🙆‍♂️ DB와 연동 파이썬은 만능입니다. pymongo 라이브러리를 활용하면 됩니다. 저는 Anaconda의 Jupyter Notebook을 사용하기 때문에 간단하게 설치했습니다. #requests import import requests #bs4 import from bs4 import BeautifulSoup def notices(targetUrl,page_index): #targetURL base_url=targetUrl #post param post_params = {'page':page_index} #응답 값은 response에 res = requests.post(base_url,data=post_params) #응답에 실패하면 if res.status_code != 200: #그냥 print..

[웹크롤링] post방식 requset 웹 크롤링하기

🙆‍♂️개념 #requests import import requests #bs4 import from bs4 import BeautifulSoup def notices(targetUrl,page_index): #targetURL base_url=targetUrl #post param post_params = {'page':page_index} #응답 값은 response에 res = requests.post(base_url,data=post_params) #응답에 실패하면 if res.status_code != 200: #그냥 print print("Can't") #응답에 성공하면 else: #결과 저장 리스트 results=[] #BeautifulSoup 생성해서 soup으로 사용 soup=Beauti..

[pygame] 08. 피격 판정

🙆‍♂️ 피격 판정 객체 삽입한 이미지들 끼리 만난다면 특별한 이벤트를 진행하는 방향으로 설정합니다. 총알과 적군이 충돌하면 적군이 사라지도록 적군과 본체가 충돌하면 게임이 끝나도록 등이 있는데 우선 총알과 적군이 충돌하면 적군이 사라지도록 하고 적군의 HP를 늘려서 특정 값 이상 맞아야 사라지도록 해보겠습니다. 충돌의 범위는 이렇습니다. b.x의 범위는 a.x-b.oX < b.x < a.x+a.oX b.y의 범위는 a.y-b.oY < b.y < a.y+a.oY 입니다. 한국어로 풀어쓰면 A의 좌표 - B의 좌표 < b.x, b.y < A의 반대편 좌표(저기 빨간 동그라미 부분) 입니다. 🙆‍♂️ 적군, 총알 충돌 판정 #충돌 탐지 함수 """ 충돌 탐지 함수 서로 다른 이미지들이 충돌하면 True값을 ..

앱 개발/pygame 2022.09.29

[pygame] 07. 적 생성

🙆‍♂️ 적 생성 먼저 적기로 사용할 png 파일을 해당 경로에 저장합니다. import random # 4. 메인 이벤트 . . . #적군 리스트 enemList=[] # 4.3 입력과 시간에 따른 변화 . . . #랜덤 적기 생성 if random.random() >0.9: enemy1 = createObj() enemy1.insertImg(r'image\enemy1.png') enemy1.setSize(50,80) enemy1.x = random.randrange(size[0]-enemy1.oX)#-round(hero.oX/2) enemy1.y = 15 enemy1.move = 10 enemList.append(enemy1) 우선 적기 객체를 위와 같이 생성할 수 있습니다. 전에 했던 총알 만드는 ..

앱 개발/pygame 2022.09.27

[pygame] 06. 총알 쏘기

🙆‍♂️ 총알 쏘기 먼저 저는 총알로 사용할 png 파일을 이 프로젝트 파일 밑에 있는 image 폴더에 넣었습니다. 코드를 작성해보면 먼저 키 입력 부분을 설정해줍니다. #KeyDown되면 활성화 if event.type == pygame.KEYDOWN: . . . if event.key == 32 or event.key == 107: shot = True #KeyUp 되면 비활성화 elif event.type == pygame.KEYUP: . . . if event.key == 32 or event.key == 107: shot = False 키 입력하는 부분에 space bar가 입력될 때(event.key==32)와 k가 입력될 때(event.key==107)를 변수 설정을 해줍니다. ###초기화..

앱 개발/pygame 2022.09.22

[pygame] 05. 캐릭터 움직이기

🙆‍♂️ 입력 감지 #입력 감지 for event in pygame.event.get(): . . print(event) 이렇게 입력 감지를 해볼 수 있습니다. 실행을 하고 a키와 d키를 눌러보니 이렇게 출력이 됐습니다. 신기한거는 마우스 이동에 따른 좌표도 기록되는 것이였습니다. 이를 통해서 다른 게임도 만들 수 있겠네요. 이제 이 입력된 키를 특정해보는 코드를 작성해보겠습니다. if event.type == pygame.KEYDOWN: print(event) 위 처럼 이벤트가 KEYDOWN인 것만 필터링 해서 보면 잘 나오는 모습입니다. 이번에는 a키만 입력됐을 때만 출력하게 하면 if event.type == pygame.KEYDOWN: if event.key == 97: print("Insert ..

앱 개발/pygame 2022.09.22

[웹크롤링] 04. beautifulSoup 좀더 자세히

🙆‍♂️ 코드 리뷰 from requests import get from bs4 import BeautifulSoup base_url="https://community.bu.ac.kr/info/1787/subview.do" response = get(f"{base_url}") if response.status_code != 200: print("Can't") else: soup=BeautifulSoup(response.text,"html.parser") print(soup.find_all('td',class_="_artclTdTitle")) 현재 이코드로 돌리면 정제되지 않은 불필요한 정보도 얻을 수 있습니다. 출력값이 list 형태인 것을 생각해보고 다시 코드를 작성하면 from requests imp..

728x90
반응형