def sub_ler_jogo(): try: save = open('sudoku.save', 'rb') jogo = pickle.load(save) solucao = pickle.load(save) save.close() os.remove('sudoku.save') except: jogo, solucao = sudoku.inicia_sudoku() #Uso da Biblioteca return jogo, solucao
def novo_jogo(jogo,solucao): import sudoku, curses, pickle menssagem='Deseja iniciar novo jogo? (S/N): ' curses.cbreak() curses.echo() windowt = curses.newwin(2,100,15,0) windowt.addstr(1,1,menssagem) resposta = windowt.getch() resposta = chr (resposta) windowt.refresh() if resposta in ['S', 's']: jogo,solucao = sudoku.inicia_sudoku() else: pass return jogo,solucao
import sudoku, curses, pickle try: arquivo = open ('save.sv', 'rb+') jogo = pickle.load(arquivo) arquivo.close() arquivo = open ('solucao.sv', 'rb+') solucao = pickle.load(arquivo) arquivo.close() except: jogo, solucao = sudoku.inicia_sudoku() arquivo = open('save.sv', 'wb+') pickle.dump(jogo, arquivo) arquivo.close() arquivo = open('solucao.sv', 'wb+') pickle.dump(solucao, arquivo) arquivo.close() ''' Esta biblioteca trata da aparencia da grade do tabuleiro. ''' def desenha_sudoku(window, grade, selecao): curses.init_pair(1, curses.COLOR_BLACK, curses.COLOR_WHITE) curses.init_pair(2, curses.COLOR_YELLOW, curses.COLOR_BLACK) for lin_grade in range(3): for col_grade in range(3): regiao = grade[lin_grade][col_grade]
window.refresh() ''' Exemplo de uso da biblioteca sudoku ''' try: arquivo = open('jogo.save', 'rb') jogo = pickle.load(arquivo) solucao = pickle.load(arquivo) arquivo.close() os.remove('jogo.save') except: jogo, solucao = sudoku.inicia_sudoku() arquivo = open('jogo.save', 'wb') pickle.dump(jogo, arquivo) pickle.dump(solucao, arquivo) arquivo.close() stdscr = curses.initscr() curses.start_color() curses.noecho() curses.cbreak() curses.curs_set(False) stdscr.clear()
def interacao(jogo, solucao): janela0 = curses.newwin(14, 28, 0, 0) #Janela das Regras janela1 = curses.newwin(14, 26, 2, 31) #Janela do Tabuleiro janela2 = curses.newwin(14, 27, 0, 60) #Janela das Instruções janela3 = curses.newwin(1, 12, 0, 38) #Janela do Titulo cursor = 1 tecla = '' d_cursor = '' teclas = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '.'] teclas_limpar = ['0', '.'] sub_interface(janela0, janela1, janela2, janela3) while True: if tecla in ['w', 'W']: if (cursor - 9) >= 1: cursor = cursor - 9 elif tecla in ['s', 'S']: if (cursor + 9) <= 81: cursor = cursor + 9 elif tecla in ['a', 'A']: if (cursor - 1) >= 1: cursor = cursor - 1 elif tecla in ['d', 'D']: if (cursor + 1) <= 81: cursor = cursor + 1 elif tecla in ['n', 'N']: janela0.addstr(10, 8, 'Deseja iniciar') janela0.addstr(11, 7, 'novo jogo? (S/N)') janela0.refresh() while True: tecla2 = janela0.getkey() if tecla2 in ['s', 'S']: jogo, solucao = sudoku.inicia_sudoku() break elif tecla2 in ['n', 'N']: break elif tecla in teclas: sub_alterar(d_cursor, tecla, teclas, jogo) elif tecla in teclas_limpar: sub_alterar(d_cursor, '.', teclas_limpar, jogo) elif tecla in ['x', 'X']: if sub_comparacao(jogo, solucao) == True: janela0.addstr(10, 4, '!Parabéns você ganhou!') janela0.addstr(11, 8, 'Deseja iniciar') janela0.addstr(12, 7, 'novo jogo? (S/N)') janela0.refresh() while True: tecla2 = janela1.getkey() if tecla2 in ['s', 'S', 'n', 'N']: break if tecla2 in ['s', 'S']: jogo, solucao = sudoku.inicia_sudoku() continue else: janela0.addstr(10, 8, 'Tem algo errado') janela0.refresh() tecla = janela1.getkey() continue elif tecla in ['z', 'Z']: tecla = sub_salvar_jogo(jogo, solucao, janela0) continue elif tecla in ['f', 'F']: janela0.addstr(10, 3, 'Deseja sair do jogo (S/N)') janela0.refresh() while True: tecla2 = janela0.getkey() if tecla2 in ['s', 'S', 'n', 'N']: break if tecla2 in ['s', 'S']: break tecla = '' d_cursor = sub_tabuleiro(jogo, janela1, cursor) for y in range(3): for x in range(28): janela0.addstr(y + 10, x, ' ') janela0.refresh() tecla = janela1.getkey()