Advertisement
phiron

Jogo

Nov 13th, 2012
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.86 KB | None | 0 0
  1. '''
  2. Created on 13/11/2012
  3.  
  4. @author: phiron
  5. '''
  6. from random import choice
  7. from datetime import datetime
  8. from io import StringIO
  9.  
  10. class Jogo:
  11.     '''
  12.    classe que instancia e cria um novo jogo
  13.    '''
  14.     def __init__(self, dezenas = 6, qtd_escolhas = 60, quantidade = 1):
  15.         '''
  16.        Construtor da classe, inicia o jogo com as dezenas em lista,
  17.        quantidade de escolhas, que e a quantidade possivel de dezenas
  18.        e a quantidade de jogos a se realizar
  19.        '''
  20.         self.dezenas = int(dezenas)
  21.         self.qtd_escolhas = int(qtd_escolhas)
  22.         self.quantidade = int(quantidade)
  23.         self.jogos = self.get_jogos()
  24.  
  25.     def __lista_em_string__(self, lista):
  26.         '''
  27.        pega uma lista e a transforma em lista de strings...
  28.        '''
  29.         ls = []
  30.         for item in lista:
  31.             ls.append(str(item))
  32.         return ls
  33.    
  34.     def __gerarJogo__(self):
  35.         '''
  36.        gera um jogo e retorna
  37.        '''
  38.         ls = [x + 1 for x in range(self.qtd_escolhas)]
  39.         jg = []
  40.         for i in range(self.dezenas):
  41.             x = choice(ls)
  42.             jg.append(x)
  43.             ls.remove(x)
  44.         return  sorted(jg)
  45.    
  46.     def get_jogos(self):
  47.         '''
  48.        gera todos os jogos solicitados
  49.        e retorna uma lista com listas de jogos...
  50.        '''
  51.         jogos = []
  52.         i = self.quantidade
  53.         while  i > 0:
  54.             jg = self.__gerarJogo__()
  55.             if jg not in jogos:
  56.                 jogos.append(jg)
  57.                 i = i - 1
  58.         return jogos
  59.    
  60.     def get_texto(self, diretorio, tipo_jogo = None):
  61.         '''
  62.        retorna o jogo em forma de arquivo...
  63.        '''
  64.         jogos = self.jogos
  65.         texto = StringIO()
  66.         agora = datetime.now()
  67.         cabecalho = "Jogo criado em {0}/{1}/{2} às {3}:{4}hs\n\n".format(agora.day, agora.month, agora.year,
  68.                                                                    agora.hour, agora.minute)
  69.         texto.write('%s' % cabecalho)
  70.         for jogo in jogos:
  71.             texto.write(" - ".join(self.__lista_em_string__(jogo)))#crio uma string no formato:"1 - 2 - 3 - 4 - 10 ..." e insiro na variável texto
  72.             texto.write("\n")#dou uma quebra de linha no texto
  73.         file = open(diretorio, 'w')#crio ou gravo o arquivo no diretório dado...
  74.         file.write(texto.getvalue())
  75.         texto.close()
  76.         file.close()
  77.         return None
  78.    
  79.     def retornaHtml(self, tipo_jogo = ""):
  80.         '''
  81.        gera uma string em formato html dos jogos...
  82.        '''
  83.         jogo = self.jogos
  84.         pagina = StringIO()
  85.         pagina.write('<!DOCTYPE html>\
  86.                                <html>\
  87.                                    <head>\
  88.                                        <meta charset="utf-8" />\
  89.                                            <title>Jogo gerado</title>\
  90.                                            <style>\
  91.                                                table.bordasimples {border-collapse: collapse;}\
  92.                                                table.bordasimples tr td {border:1px solid black;}\
  93.                                                table.bordasimples thead th {border:1px solid black;\
  94.                                                font: bold;\
  95.                                                vertical-align: left;}\
  96.                                            </style>\
  97.                                    </head>\
  98.                                    <body>')
  99.         colunas = len(self.jogos[0])
  100.         agora = datetime.now()
  101.         pagina.write('<p>\
  102.                                    <table class="bordasimples">\
  103.                                            <thead>\
  104.                                                <tr>\
  105.                                                    <th colspan="{colunas}" ><strong>Jogo:{tipo_jogo} </strong></th>\
  106.                                                </tr>\
  107.                                                <tr>\
  108.                                                    <th colspan="{colunas}"><strong>Gerado no dia: {dia}/{mes}/{ano} dezenas abaixo:</strong></th>\
  109.                                                </tr> '.format(colunas = colunas, tipo_jogo = tipo_jogo, dia = agora.day, mes = agora.month, ano = agora.year))
  110.         pagina.write('<tr>')#escrevendo o cabeçalhos das dezenas...
  111.         for i in range(colunas):
  112.             pagina.write("<td>{0}</td>".format(i + 1))
  113.         else:
  114.             pagina.write("</tr></thead>\
  115.                <tbody>")
  116.        
  117.         for jg in jogo:
  118.             pagina.write('<tr>')
  119.             for dezena in jg:
  120.                 pagina.write("<td>{0}</td>".format(dezena))
  121.             else:
  122.                 pagina.write("</tr>")
  123.         else:
  124.             pagina.write('</tbody></p></body></html>')
  125.        
  126.         return pagina.getvalue()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement