163
elif self.state == STATE_WON:
self.show_message("YOU WON! PRESS ENTER TO
PLAY AGAIN")
self.draw_bricks()
pygame.draw.rect(self.screen,
BLUE,
self.paddle)
pygame.draw.circle(self.screen,
WHITE,
(self.ball.left + BALL_RADIUS, self.ball.top + BALL_
RADIUS), BALL_RADIUS)
self.show_stats()
pygame.display.flip()
if __name__ == "__main__":
Bricka().run()
Нә ти же сі былай көрінеді (
39-су рет
):
39-су рет.
Прог рам ма нә ти жесі
Ұпай лар ды есеп теу ал го рит мін іс ке асы ру үшін score=0
ай ны ма лы ен гі зі ле ді, сон дай-ақ lives = 3
ай ны ма лы сы бар, ол
қал ған өмір са ны на жауап бе ре ді.
State
ай ны ма лысы ой ын
қан дай күй де еке нін көр се те ді. Бар лы ғы 4 күй анық тал ды:
АРМАН
-
ПВ
баспасы
Все
учебники
Казахстана
на
OKULYK.KZ
*
Книга
предоставлена
исключительно
в
образовательных
целях
согласно
Приказа
Министра
образования
и
науки
Республики
Казахстан
от
17
мая
2019
года
№
217
164
STATE_BALL_IN_PADDLE =
0 –
тақ та да ғы доп
STATE_PLAYING =
1 – ой ын жү ріп
жа тыр
STATE_WON =
2 – ұтыс
STATE_GAME_OVER =
3 – ой ын со ңы
self.lives = 3
self.score = 0
self.state = STATE_BALL_IN_PADDLE
Бұл функция ұпай лар ды есеп тей ді. Егер доп кір піш ке түс се,
ұпай дың жал пы са ны на 3 ұпай қо сы ла ды. Ал кір піш ой ын ала-
ңы нан жой ыла ды.
Егер эк ран да ғы кір піш тің са ны 0 бол са,
он да ой ын ның
күйі «же ңім паз» жағдайына ауысады жә не ой ын шы жең ді деп
жа рияла на ды.
Доп тың тақ та дан құ лауы жағ дай ын да
өмір дің са ны тек се-
рі ле ді.
Lives
ай ны ма лысы нөл ден көп бол са, ой ын «тақ та да ғы
доп» күйі не ауы са ды жә не ой ын жа ңар ты ла ды. Егер өмір бол-
ма са, «ой ын со ңы» жа рияла на ды.
def handle_collisions(self):
for brick in self.bricks:
if self.ball.colliderect(brick):
self.score += 3
self.ball_vel[1] = -self.ball_vel[1]
self.bricks.remove(brick)
break
if len(self.bricks) == 0:
self.state = STATE_WON
if self.ball.colliderect(self.paddle):
self.ball.top = PADDLE_Y - BALL_DIAMETER
self.ball_vel[1] = -self.ball_vel[1]
elif self.ball.top > self.paddle.top:
self.lives -= 1
if self.lives > 0:
self.state = STATE_BALL_IN_PADDLE
else:
self.state = STATE_GAME_OVER
Достарыңызбен бөлісу: