From f5a3757368a803adf9b8cf83ba4e069e403885e3 Mon Sep 17 00:00:00 2001 From: En Yi Date: Fri, 20 Jul 2018 13:43:20 +0800 Subject: [PATCH] Add File checking --- gameplay/sudoku_gameplay.py | 28 ++++++++++++++++---------- gameplay/test_board.txt | 2 +- general/highscore.txt | 29 --------------------------- graphic_components/scoreboard.py | 10 +++++++-- graphic_components/sudoku_graphics.py | 4 ++-- 5 files changed, 28 insertions(+), 45 deletions(-) delete mode 100644 general/highscore.txt diff --git a/gameplay/sudoku_gameplay.py b/gameplay/sudoku_gameplay.py index adee963..65fa3c2 100644 --- a/gameplay/sudoku_gameplay.py +++ b/gameplay/sudoku_gameplay.py @@ -1,3 +1,4 @@ +import os import numpy as np from . import Sudoku_Generator as sdk_gen @@ -108,20 +109,25 @@ class SudokuSystem: self.offending_cells[row][col] = bad_cells - def generate_test_board(self): - with open(test_dir, 'r') as f: - lines = f.readlines() + def generate_test_board(self, difficulty): + try: + with open(test_dir, 'r') as f: + lines = f.readlines() - values = [] - for line in lines: - values.append([int(val) for val in line.strip('\n').split(',')]) + values = [] + for line in lines: + values.append([int(val) for val in line.strip('\n').split(',')]) - self.number_grid[:] = values - self.cell_status[:] = FIXED - row, col = np.where(self.number_grid == 0) + self.number_grid[:] = values + self.cell_status[:] = FIXED + row, col = np.where(self.number_grid == 0) - for r, c in zip(row, col): - self.cell_status[r, c] = EMPTY + for r, c in zip(row, col): + self.cell_status[r, c] = EMPTY + except Exception as e: + print(e) + print('Something went wrong loading the test file. Generating a random board instead') + self.generate_random_board(difficulty) def generate_random_board(self, difficulty): self.clear_grid() diff --git a/gameplay/test_board.txt b/gameplay/test_board.txt index 58b36d3..08676d6 100644 --- a/gameplay/test_board.txt +++ b/gameplay/test_board.txt @@ -6,4 +6,4 @@ 8,9,1,2,3,4,5,6,7 3,4,5,6,7,8,9,1,2 6,7,8,9,1,2,3,4,5 -9,1,2,3,4,5,6,7,0 \ No newline at end of file +9,1,2,3,4,5,6,7, \ No newline at end of file diff --git a/general/highscore.txt b/general/highscore.txt deleted file mode 100644 index 7082a29..0000000 --- a/general/highscore.txt +++ /dev/null @@ -1,29 +0,0 @@ -A,01:00:0 -B,02:00:0 -C,03:00:0 -D,04:00:0 -E,05:00:0 ---- -AA,02:00:0 -BB,04:00:0 -CC,06:00:0 -DD,08:00:0 -EE,10:00:0 ---- -AAA,03:00:0 -BBB,06:00:0 -CCC,09:00:0 -DDD,12:00:0 -EEE,15:00:0 ---- -AAAA,04:00:0 -BBBB,08:00:0 -CCCC,12:00:0 -DDDD,16:00:0 -EEEE,20:00:0 ---- -AAAAA,05:00:0 -BBBBB,10:00:0 -CCCCC,15:00:0 -DDDDD,20:00:0 -EEEEE,25:00:0 \ No newline at end of file diff --git a/graphic_components/scoreboard.py b/graphic_components/scoreboard.py index 892a3dc..4f6a992 100644 --- a/graphic_components/scoreboard.py +++ b/graphic_components/scoreboard.py @@ -1,18 +1,24 @@ import random import sys +import os from PyQt5.Qt import QApplication from PyQt5.QtCore import (QAbstractAnimation, Qt, QPropertyAnimation, pyqtProperty, pyqtSignal, QTimer) from PyQt5.QtWidgets import (QWidget, QLineEdit, QHBoxLayout, QGridLayout, QVBoxLayout, QPushButton, QLabel) if not __name__ == "__main__": - sys.path.append("~/PycharmProjects/sudoku") - hs_file = "/home/eyt21/PycharmProjects/sudoku/general/highscore.txt" + current_dir = os.getcwd() + sys.path.append(current_dir) + hs_file = current_dir + "/general/highscore.txt" else: hs_file = "./sudoku/general/highscore.txt" from general import highscore as hs +if not os.path.exists(hs_file): + print('Missing High Score file. Generating one. ') + hs.generate_highscore_file(hs_file) + BACKWARD = 1 FORWARD = -1 diff --git a/graphic_components/sudoku_graphics.py b/graphic_components/sudoku_graphics.py index b4a8806..e6946f6 100644 --- a/graphic_components/sudoku_graphics.py +++ b/graphic_components/sudoku_graphics.py @@ -147,8 +147,8 @@ class SudokuGrid(BaseSudokuItem): self.anim.start() def generate_new_grid(self, difficulty): - self.sudoku_grid.generate_random_board(difficulty) - #self.sudoku_grid.generate_test_board() + #self.sudoku_grid.generate_random_board(difficulty) + self.sudoku_grid.generate_test_board(difficulty) self.update() def replace_cell_number(self, val):