prog2_klasy_plansze

1951 days ago by macieksk

import sys, random import time from PyQt4 import QtGui, QtCore 
       
class Colors(QtGui.QWidget): def __init__(self, parent=None, ): QtGui.QWidget.__init__(self, parent) #Window setup self.setGeometry(300, 300, 350, 280) self.setWindowTitle('Colors') #Refresh timer setup self.timer = QtCore.QTimer(self) self.connect(self.timer, QtCore.SIGNAL("timeout()"), self, QtCore.SLOT("update()")) # to decyduje o tym co ile bedzie sie wykonywac metoda paintEvent self.timer.start(tdiff) self.losowe_plansze = LosowePlansze() def paintEvent(self, event): """ Tu nalezy umiescic losowanie, ktora plansza ma sie rysowac Ponizsze fragmenty rysujace prostokaty sluza tylko zeby sie z nich nauczyc jak rysowac prostokac o okreslonych wymiarach i kolorze. mozna je przeniesc odpowiednio zmodyfikowane do odpowiednich funkcji """ paint = QtGui.QPainter() paint.begin(self) plansza = self.losowe_plansze.daj_losowa_plansze() plansza.rysuj_plansze(paint) if plansza.jest_specjalna(): TODO paint.end() specjalna_reprezentacja = [1,1,1,0,0,0,1,1,1] class Plansza(): def __init__(self,lista): self.reprezentacja = lista def rysuj_plansze(self, paint): ''' przerobic aby rysowala plansze wg reprezentacji ''' color = QtGui.QColor(0, 0, 0) color.setNamedColor('#d4d4d4') paint.setPen(color) paint.setBrush(QtGui.QColor(255, 0, 0, 80)) paint.drawRect(10, 15, 90, 60) paint.setBrush(QtGui.QColor(255, 0, 0, 160)) paint.drawRect(130, 15, 90, 60) paint.setBrush(QtGui.QColor(255, 0, 0, 255)) paint.drawRect(250, 15, 90, 60) paint.setBrush(QtGui.QColor(10, 163, 2, 55)) paint.drawRect(10, 105, 90, 60) paint.setBrush(QtGui.QColor(160, 100, 0, 255)) paint.drawRect(130, 105, 90, 60) paint.setBrush(QtGui.QColor(60, 100, 60, 255)) paint.drawRect(250, 105, 90, 60) paint.setBrush(QtGui.QColor(50, 50, 50, 255)) paint.drawRect(10, 195, 90, 60) paint.setBrush(QtGui.QColor(50, 150, 50, 255)) paint.drawRect(130, 195, 90, 60) paint.setBrush(QtGui.QColor(223, 135, 19, 255)) paint.drawRect(250, 195, 90, 60) def jest_specjalna(self): return self.reprezentacja == specjalna_reprezentacja class SpecjalnaPlansza(Plansza): def __init__(self): Plansza.__init__(self, specjalna_reprezentacja) def jest_specjalna(self): return True class LosowePlansze(): def __init__(self,kolory=5,rozmiar=3): ''' Zainincjuj zmienne losowa plansza ''' self.specjalna_plansza = SpecjalnaPlansza() self.kolory=kolory self.rozmiar=5 self.ustaw_nastepne(10) def __prawdziwie_losowa_plansza(self): return Plansza(np.random.randint(0, self.kolory,self.rozmiar)) def ustaw_nastepne(self, ile=10): self.nastepne = [self.__prawdziwie_losowa_plansza() for i in range(ile)] '''Trzeba jeszcze zapewnic by byla dokladnie 1 losowa plansza''' return ... def daj_losowa_plansze(self): ''' zwraca nie do konca losowa plansze TODO ''' if len(self.nastepne)==0: self.ustaw_nastepne() return self.nastepne.pop() 
       
class DaneLogowane(): def __init__(self,nazwa,plik='data/log.txt'): self.plik = plik import logging self.logger = logging.getLogger(nazwa) hdlr = logging.FileHandler(self.plik) formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') hdlr.setFormatter(formatter) #Make sure there is only one handler for this file for h in self.logger.handlers: self.logger.removeHandler(h) self.logger.addHandler(hdlr) self.logger.setLevel(logging.DEBUG) def log(self,tekst): self.logger.info(tekst) 
       
import os os.system('rm data/log.txt') tlog=DaneLogowane('testlog') tlog2=DaneLogowane('drugitestlog') tlog.log('pierwszy log') tlog2.log('drugi log') tlog.log('pierwszy log 2') os.system('cat data/log.txt') 
       
2013-03-14 10:53:44,694 - testlog - INFO - pierwszy log
2013-03-14 10:53:44,694 - drugitestlog - INFO - drugi log
2013-03-14 10:53:44,694 - testlog - INFO - pierwszy log 2
0
app = QtGui.QApplication(sys.argv) dt = Colors() dt.show() app.exec_()