- Видео 331
- Просмотров 94 147
충남대 소프트웨어중심대학사업단
Добавлен 20 сен 2018
Видео
12강. SHapley Additive exPlanations (1)
Просмотров 2410 месяцев назад
12강. SHapley Additive exPlanations (1)
10강 .Local Interpretable Model-Agnostic Explanation (2)
Просмотров 1610 месяцев назад
10강 .Local Interpretable Model-Agnostic Explanation (2)
13강. SHapley Additive exPlanations (2)
Просмотров 610 месяцев назад
13강. SHapley Additive exPlanations (2)
9강. Local Interpretable Model-Agnostic Explanation (1)
Просмотров 1410 месяцев назад
9강. Local Interpretable Model-Agnostic Explanation (1)
8강. 전이 학습 (Transfer learning)을 통한 이미지 분류기 성능 향상 (2)
Просмотров 2310 месяцев назад
8강. 전이 학습 (Transfer learning)을 통한 이미지 분류기 성능 향상 (2)
7강. 전이 학습 (Transfer learning)을 통한 이미지 분류기 성능 향상 (1)
Просмотров 910 месяцев назад
7강. 전이 학습 (Transfer learning)을 통한 이미지 분류기 성능 향상 (1)
좋아요 감사합니다
안녕하세요 ! 저도 만들어보고 싶어서 한번 만들어봤습니다. 그런데 실행했을때 명령 변수의 대답이 이 영상처럼 한글이아닌 영어로 인식되어서 작동이 안됩니다. 혹시 이럴때는 어떻게 해야되는지 아실까요..?
좋은 영상이네요!
우연찮게 왔는데, 조곤조곤 친절히 설명해주셔서 많이 배웠습니다. 감사합니다.
import sys from math import sqrt, ceil import random import pygame from pygame.locals import QUIT, KEYDOWN, K_UP, K_LEFT, K_RIGHT, K_DOWN, K_SPACE, K_ESCAPE from material import * # block class class Block: def __init__(self, name): self.turn = 0 self.type = BLOCKS[name] self.data = self.type[self.turn] self.size = int(sqrt(len(self.data))) self.xpos = (WIDTH - self.size)//2 self.ypos = 0 self.stop = 0 def update(self): global BLOCK erased = 0 if is_overlapped(self.xpos, self.ypos+1, self.turn): for y_offset in range(self.size): for x_offset in range(self.size): if ((0 <= self.xpos+x_offset < WIDTH) and (0 <= self.ypos+y_offset < HEIGHT)): val = self.data[y_offset*self.size + x_offset] if val != 'B' : FIELD[self.ypos+y_offset][self.xpos+x_offset] = val BLOCK = get_block() erased = erase_line() sound_fall.play() else: self.stop = self.stop + 1 if self.stop > FPS/DIFFICULT: self.stop = 0 self.ypos = self.ypos + 1 return erased def draw(self): for index in range(len(self.data)): xpos = index % self.size ypos = index // self.size val = self.data[index] if ((0 <= ypos + self.ypos < HEIGHT) and (0 <= xpos + self.xpos < WIDTH) and (val != 'B')): x_pos = 25 + (xpos + self.xpos) * 25 y_pos = 25 + (ypos + self.ypos) * 25 pygame.draw.rect(SURFACE, COLORS[val], (x_pos, y_pos, 24, 24)) def left(self): if not is_overlapped(self.xpos-1, self.ypos, self.turn): self.xpos = self.xpos - 1 def right(self): if not is_overlapped(self.xpos+1, self.ypos, self.turn): self.xpos = self.xpos + 1 def down(self): if not is_overlapped(self.xpos, self.ypos+1, self.turn): self.ypos = self.ypos + 1 def up(self): if not is_overlapped(self.xpos, self.ypos, (self.turn+1)%4): self.turn = (self.turn+1)%4 self.data = self.type[self.turn] def hard_drop(self): ypos = self.ypos while not is_overlapped(self.xpos, ypos+1, self.turn): ypos = ypos + 1 self.ypos = ypos def get_block(): global BLOCK_QUEUE while len(BLOCK_QUEUE) < len(BLOCKS.keys()) + 1: new_blocks= list() for name in BLOCKS.keys(): new_blocks.append(Block(name)) random.shuffle(new_blocks) BLOCK_QUEUE.extend(new_blocks) return BLOCK_QUEUE.pop(0) def is_overlapped(xpos, ypos, turn): data = BLOCK.type[turn] for y_offset in range(BLOCK.size): for x_offset in range(BLOCK.size): if ((0 <= xpos+x_offset < WIDTH) and (0 <= ypos+y_offset < HEIGHT)): if ((data[y_offset*BLOCK.size + x_offset] != 'B') and (FIELD[ypos+y_offset][xpos+x_offset] != 'B')): return True return False def is_game_over(): filled = 0 for cell in FIELD[0]: if cell != 'B' : filled += 1 return filled > 2 def erase_line(): erased = 0 ypos = HEIGHT-1 while ypos >= 0: if FIELD[ypos].count('B') == 0 and FIELD[ypos].count('W') == 2: erased = erased + 1 del FIELD[ypos] new_line = ['B']*(WIDTH-2) new_line.insert(0, 'W') new_line.append('W') FIELD.insert(0, new_line) sound_line.play() else: ypos = ypos - 1 return erased #전역변수 pygame.init() pygame.mixer.init() pygame.mixer.music.load('sound/Tetris_theme.wav') pygame.mixer.music.play(-1, 0) sound_line = pygame.mixer.Sound('sound/Rip.wav') sound_fall = pygame.mixer.Sound('sound/taag.wav') SURFACE = pygame.display.set_mode([600, 600]) FPSCLOCK = pygame.time.Clock() WIDTH = 10 + 2 HEIGHT = 20 + 1 FIELD = [[0 for _ in range(WIDTH)] for _ in range(HEIGHT)] BLOCK = None BLOCK_QUEUE = list() FPS = 15 DIFFICULT = 1 #메인배경,글씨 등을 정의 def main(): global BLOCK score = 0 if BLOCK is None: BLOCK = get_block() smallfont = pygame.font.SysFont(None, 36) largefont = pygame.font.SysFont(None, 72) message_over = largefont.render("GAME OVER", True, (255, 255, 255)) message_rect = message_over.get_rect() message_rect.center = (300, 300) for ypos in range(HEIGHT): for xpos in range(WIDTH): FIELD[ypos][xpos] = 'W'if xpos == 0 or xpos == WIDTH - 1 else'B' for index in range(WIDTH): FIELD[HEIGHT-1][index] = 'W' # 게임 무한 루프를 실행 while True: # 이벤트 루프를확인 key = None for event in pygame.event.get(): if event.type == QUIT: # 종료 이벤트 pygame.quit() sys.exit() elif event.type == KEYDOWN: key = event.key if key == K_ESCAPE: pygame.quit() sys.exit() # 게임오버 확인 if is_game_over(): SURFACE.blit(message_over, message_rect) pygame.mixer.music.stop() else: if key == K_UP: BLOCK.up() elif key == K_RIGHT: BLOCK.right() elif key == K_LEFT: BLOCK.left() elif key == K_DOWN: BLOCK.down() elif key == K_SPACE: BLOCK.hard_drop() SURFACE.fill((0, 0, 0)) for ypos in range(HEIGHT): for xpos in range(WIDTH): value = FIELD[ypos][xpos] pygame.draw.rect(SURFACE, COLORS[value],(xpos*25 + 25,ypos*25 + 25, 24, 24)) # Landing and erase line erased = BLOCK.update() if erased > 0: score = score + 2**erased DIFFCULT = min(ceil(score/10), 15) BLOCK.draw() # Draw next BLOCKS ymargin = 0 for next_block in BLOCK_QUEUE[0:7]: ymargin = ymargin + 1 for ypos in range(next_block.size): for xpos in range(next_block.size): value = next_block.data[xpos+ypos*next_block.size] pygame.draw.rect(SURFACE, COLORS[value],(xpos*15+460, ypos*15+75*ymargin, 15, 15)) # 점수 나타내기 score_str = str(score).zfill(6) score_image = smallfont.render(score_str, True, (180, 180, 180)) SURFACE.blit(score_image, (500, 30)) # 언제나그렇듯 화면을 업데이트 pygame.display.update() FPSCLOCK.tick(FPS) # 종합 프로젝트 실행 if __name__ == '__main__': main() 여기에서 실행하면 다 잘되고 그 연속으로 키 되는건 제가 아직 미숙해서 없앴고요(pygame.key.set_repeat) 근데 여기서 빨간색 블럭이 몇번이상 회전하면 Traceback (most recent call last): File "C:\Users\user\AppData\Local\Programs\Python\Python39\테트리스0.1.py", line 229, in <module> main() File "C:\Users\user\AppData\Local\Programs\Python\Python39\테트리스0.1.py", line 185, in main BLOCK.up() File "C:\Users\user\AppData\Local\Programs\Python\Python39\테트리스0.1.py", line 69, in up if not is_overlapped(self.xpos, self.ypos, (self.turn+1)%4): File "C:\Users\user\AppData\Local\Programs\Python\Python39\테트리스0.1.py", line 99, in is_overlapped if ((data[y_offset*BLOCK.size + x_offset] != 'B') and IndexError: tuple index out of range 이런 문구가 뜹니다. 여기 코드에 문제가 있는 건가요 아니면 material.py 에 문제가 있는 건가요 알려주세요
우와 정말 놀라워요!!!
코드는 어떻게 짜나요?
코바늘로 짜시면 됩니다
@@주호-r7t ㅋㅋㅋㅋ
팬더가 넘 귀여워요!! 좋아요 꾹~
성공 감사..
SURFACE = pygame.display.set._mode((400, 300)) AttributeError: module 'pygame.display' has no attribute 'set'
SURFACE = pygame.display.set._mode((400, 300)) AttributeError: module 'pygame.display' has no attribute 'set'
SURFACE = pygame.display.set._mode((400, 300)) AttributeError: module 'pygame.display' has no attribute 'set'
내이름은김극육
내이름은김극육
내이름은김극육
내이름은김극육
내이름은김극육
내이름은김극육
내이름은김극육
왜 소리가 울리나요? 귀가 아파요 ㅠㅠ
실래 합니다... 열심히 따라 했는데... PersonalImageClassifier >> GetModelLabels, 와 PersonalImageClassifier >> LabelsReady, 가 안보이는데요.. 다른 PC 에서. 똑같이 따라해 봤는데. 안보여요..
pip3 install pygame를 명령 프롬프트에 입력을 했더니 오류가 뜹니다.
저두요
python 3 맞나요? 일단 python이 아닙니다 ;|
pip3 말고 pip install pygame라고 해보셈
@@s_u_n_t_v C:\Users\User>pip install pygame 'pip'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다.
@@강바다-q9v cmd 창 관리자 권한으로 하셔야됩니다.
감사합니다!
안녕하세요 1편부터 따라서 만들었는데 녹스 플레이어에서 앱 실행시 소리가 나지 않습니다ㅠㅠ 이유가 무엇일까요ㅠㅠㅠ
발표자분 계란 후라이 기가 막히게 잘하게 생기셨네요 ^^
발표자분 목소리가 좋네요^^
amazing content
관련 Repo입니다. github.com/IMHOJEONG/ChungNamMoGakCo
material 모듈은 직접 작성하신 건가요~? 너무 길어서 그런데... 파일공유 부탁드려도 될지요~?
BLOCKS = {'J': [('B', 'B', 'J', 'J', 'J', 'J', 'B', 'B', 'B'), ('B', 'J', 'B', 'B', 'J', 'B', 'B', 'J', 'J'), ('B', 'B', 'B', 'J', 'J', 'J', 'J', 'B', 'B'), ('J', 'J', 'B', 'B', 'J', 'B', 'B', 'J', 'B')], 'L': [('L', 'B', 'B', 'L', 'L', 'L', 'B', 'B', 'B'), ('B', 'L', 'L', 'B', 'L', 'B', 'B', 'L', 'B'), ('B', 'B', 'B', 'L', 'L', 'L', 'B', 'B', 'L'), ('B', 'L', 'B', 'B', 'L', 'B', 'L', 'L', 'B')], 'T': [('B', 'T', 'B', 'T', 'T', 'T', 'B', 'B', 'B'), ('B', 'T', 'B', 'B', 'T', 'T', 'B', 'T', 'B'), ('B', 'B', 'B', 'T', 'T', 'T', 'B', 'T', 'B'), ('B', 'T', 'B', 'T', 'T', 'B', 'B', 'T', 'B')], 'Z': [('Z', 'Z', 'B', 'B', 'Z', 'Z', 'B', 'B', 'B'), ('B', 'B', 'Z', 'B', 'Z', 'Z', 'B', 'Z', 'B'), ('B', 'B', 'B', 'Z', 'Z', 'B', 'B', 'Z', 'Z'), ('B', 'Z', 'B' 'Z', 'Z', 'B' 'Z', 'B', 'B')], 'S': [('B', 'S', 'S', 'S', 'S', 'B', 'B', 'B', 'B'), ('B', 'S', 'B', 'B', 'S', 'S', 'B', 'B', 'S'), ('B', 'B', 'B', 'B', 'S', 'S', 'S', 'S', 'B'), ('S', 'B', 'B', 'S', 'S', 'B', 'B', 'S', 'B')], 'O': [('O', 'O', 'O', 'O'), ('O', 'O', 'O', 'O'), ('O', 'O', 'O', 'O'), ('O', 'O', 'O', 'O')], 'I': [('B', 'I', 'B', 'B', 'B', 'I', 'B', 'B', 'B', 'I', 'B', 'B', 'B', 'I', 'B', 'B'), ('B', 'B', 'B', 'B', 'I', 'I', 'I', 'I', 'B', 'B', 'B', 'B', 'B', 'B', 'B', 'B'), ('B', 'B', 'I', 'B', 'B', 'B', 'I', 'B', 'B', 'B', 'I', 'B', 'B', 'B', 'I', 'B'), ('B', 'B', 'B', 'B', 'B', 'B', 'B', 'B', 'I', 'I', 'I', 'I', 'B', 'B', 'B', 'B')] } COLORS = {'J': (239, 160, 0), 'L': (1, 1, 240), 'T': (160, 0, 241), 'Z': (240, 1, 0), 'S': (0, 240, 0), 'O': (239, 240, 5), 'I': (1, 240, 241), 'B': (0, 0, 0), 'W': (127, 127, 127)}
다적느라 죽는줄 알았습니다. 이 영상 더 볼 사람 얼마나 있을지는 모르겠지만... 그분들을 위해서
와 감사합니다
좋은 강의 감사합니다!! 똑같이 해서 핸드폰에 깔아보았는데 게임 성공이나 실패 알람이 안 뜨더라고요ㅠㅜ 어떻게 해야되는지 알 수 있을까요?