InteligentnySaper/classes/ai.py

51 lines
1.4 KiB
Python
Raw Normal View History

2022-03-10 00:13:14 +01:00
import pygame
from classes import minesweeper, system
from random import randrange
class AI:
window:system.Window
2022-03-24 11:28:11 +01:00
current_map:minesweeper.Map
2022-03-10 00:13:14 +01:00
saper:minesweeper.Minesweeper
#jak True to można się poruszać strzałkami, jak False sam się porusza
user_controlled=False
2022-03-24 11:28:11 +01:00
def __init__(self, window, current_map, saper):
2022-03-10 00:13:14 +01:00
self.window = window
2022-03-24 11:28:11 +01:00
self.current_map = current_map
2022-03-10 00:13:14 +01:00
self.saper = saper
#co ma zrobić tylko na początku
def ready(self):
2022-03-24 11:28:11 +01:00
self.saper.set_map(self.current_map)
2022-03-10 00:13:14 +01:00
#co ma robić przy każdym FPS'ie
def update(self):
if self.user_controlled:
self.minesweeper_controls()
return
self.chaos_controls()
def minesweeper_controls(self):
keys = pygame.key.get_pressed()
if keys[pygame.K_DOWN]:
2022-03-24 11:28:11 +01:00
self.saper.move(0)
2022-03-10 00:13:14 +01:00
elif keys[pygame.K_UP]:
2022-03-24 11:28:11 +01:00
self.saper.move(180)
2022-03-10 00:13:14 +01:00
elif keys[pygame.K_LEFT]:
2022-03-24 11:28:11 +01:00
self.saper.move(270)
2022-03-10 00:13:14 +01:00
elif keys[pygame.K_RIGHT]:
2022-03-24 11:28:11 +01:00
self.saper.move(90)
2022-03-10 00:13:14 +01:00
def chaos_controls(self):
dir = randrange(4)
if dir==0:
2022-03-24 11:28:11 +01:00
self.saper.move(0)
2022-03-10 00:13:14 +01:00
elif dir==1:
2022-03-24 11:28:11 +01:00
self.saper.move(180)
2022-03-10 00:13:14 +01:00
elif dir==2:
2022-03-24 11:28:11 +01:00
self.saper.move(270)
2022-03-10 00:13:14 +01:00
elif dir==3:
2022-03-24 11:28:11 +01:00
self.saper.move(90)