Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.*;
- import java.util.Scanner;
- public class game {
- public static void main(String[] args) throws IOException {
- Scanner input = new Scanner(System.in);
- BufferedReader questionReader = new BufferedReader(new FileReader("./questions.txt"));
- questionReader.readLine();
- PrintWriter questionWriter = new PrintWriter(new BufferedWriter(new FileWriter("./questions.txt")));
- BufferedReader scoresReader = new BufferedReader(new FileReader("./scores.txt"));
- scoresReader.readLine();
- PrintWriter scoresWriter = new PrintWriter(new BufferedWriter(new FileWriter("./scores.txt")));
- admin database = new admin();
- leaderboard lead = new leaderboard();
- String option, attempt, question, answer, answer1, answer2, answer3, line;
- String username;
- int numCorrect, numAnswered, index;
- int correctAnswered = 0;
- int numberAnswered = 0;
- int tries = 2;
- String password = "hawks";
- while ((line = questionReader.readLine()) != null) {
- question = line;
- answer = questionReader.readLine();
- answer1 = questionReader.readLine();
- answer2 = questionReader.readLine();
- answer3 = questionReader.readLine();
- database.addQandA(question, answer, answer1, answer2, answer3);
- }
- while ((line = scoresReader.readLine()) != null) {
- username = line;
- numCorrect = Integer.parseInt(scoresReader.readLine());
- numAnswered = Integer.parseInt(scoresReader.readLine());
- leaderboard.addLeaderboard(username, numCorrect, numAnswered);
- }
- while (true) {
- lead.sortBoard();
- System.out.println("Welcome to my Trivia Game!\n");
- System.out.println("1) Play Game");
- System.out.println("2) Leaderboard");
- System.out.println("3) Administrator");
- System.out.println("4) exit");
- System.out.println("\nChoose an Option");
- option = input.nextLine().trim();
- if (option.equals("1")) {//play game option.
- if (database.databaseSize() < 10) {
- System.out.println("You can't play the game. Not enough questions have been inputted");
- } else {
- numberAnswered = 0;
- correctAnswered = 0;
- password = "";
- database.randomizeQAndA();
- database.createGame();
- System.out.println("Do you wish to play?");
- option = input.nextLine().trim();
- if (option.equalsIgnoreCase("yes")) {
- System.out.println("You will be asked a series of 10 questions");
- System.out.println("Answer one correctly and you get a point");
- System.out.println("Are you ready type \"yes\" to start the game\nOr \"exit\" to go to main menu");
- option = input.nextLine().trim();
- if (!option.equals("exit")) {
- for (int i = 0; i < 10; i++) {
- int questionnumber = i + 1;
- System.out.println("Question " + questionnumber);
- System.out.println(database.getQuestion(i));
- System.out.println("A)" + database.getAnswer1(i));
- System.out.println("B)" + database.getAnswer2(i));
- System.out.println("C)" + database.getAnswer3(i));
- System.out.println("D)" + database.getAnswer4(i));
- System.out.println("Enter an answer choice");
- option = input.nextLine().trim().toLowerCase();
- if (!(option.equalsIgnoreCase("a")) && !(option.equalsIgnoreCase("b")) && !(option.equalsIgnoreCase("c")) && !(option.equalsIgnoreCase("d")) && !(option.equalsIgnoreCase("1")) && !(option.equalsIgnoreCase("2")) && !(option.equalsIgnoreCase("3")) && !(option.equalsIgnoreCase("4"))) {
- System.out.println("Enter either \"A\" \"B\" \"C\" or \"D\"");
- System.out.println("Enter either \"1\" \"2\" \"3\" or \"4\"");
- } else {
- if (option.equalsIgnoreCase("a")) {
- for (int x = 0; x < database.databaseSize(); x++) {
- if (database.getQuestion(i).equals(database.displayQuestion(x))) {
- if (database.getAnswer1(i).equals(database.displayCorAns(x))) {
- System.out.println("Correct!");
- correctAnswered++;
- numberAnswered++;
- } else {
- System.out.println("Wrong!");
- numberAnswered++;
- }
- }
- }
- } else if (option.equalsIgnoreCase("b")) {
- for (int x = 0; x < database.databaseSize(); x++) {
- if (database.getQuestion(i).equals(database.displayQuestion(x))) {
- if (database.getAnswer3(i).equals(database.displayCorAns(x))) {
- System.out.println("Correct!");
- correctAnswered++;
- numberAnswered++;
- } else {
- System.out.println("Wrong!");
- numberAnswered++;
- }
- }
- }
- } else if (option.equalsIgnoreCase("c")) {
- for (int x = 0; x < database.databaseSize(); x++) {
- if (database.getQuestion(i).equals(database.displayQuestion(x))) {
- if (database.getAnswer3(i).equals(database.displayCorAns(x))) {
- System.out.println("Correct!");
- correctAnswered++;
- numberAnswered++;
- } else {
- System.out.println("Wrong!");
- numberAnswered++;
- }
- }
- }
- } else if (option.equalsIgnoreCase("d")) {
- for (int x = 0; x < database.databaseSize(); x++) {
- if (database.getQuestion(i).equals(database.displayQuestion(x))) {
- if (database.getAnswer4(i).equals(database.displayCorAns(x))) {
- System.out.println("Correct!");
- correctAnswered++;
- numberAnswered++;
- } else {
- System.out.println("Wrong!");
- numberAnswered++;
- }
- }
- }
- }
- }
- }
- }
- System.out.println("You got " + correctAnswered + " answers correct out of " + numberAnswered);
- System.out.println("Would you like to save your score?");
- System.out.println("If yes, type \"1\" or type \"yes\"");
- System.out.println("If no, type \"2\" or type \"exit\"");
- option = input.nextLine();
- if (option.equals("1") || option.equals("yes")) {
- if(lead.returnNumUsers()==0){
- System.out.println("Enter a username: ");
- username = input.nextLine();
- System.out.println("Score: \n\tNumber Correct: " + correctAnswered+"\n\tNumber Answered: " + numberAnswered);
- lead.addLeaderboard(username,correctAnswered,numberAnswered);
- } else {
- System.out.println("Enter a username: ");
- username = input.nextLine();
- for (int i = 0; i < lead.returnNumUsers(); i++) {
- System.out.println("test");
- if (username.equals(lead.displayUsername(i))) {
- System.out.println("This user already exists, if this is you enter the password");
- password = input.nextLine();
- System.out.println("Confirm if this is you type \"yes\" or \"1\" to add score to this user or type \"no\" or \"2\" to create new user");
- if(password.equals("yes")||password.equals("1")){
- System.out.println("Score: \n\tNumber Correct: " + correctAnswered+"\n\tNumber Answered: " + numberAnswered + "\n\tAverage: " + lead.getScore(i));
- lead.setLeaderboard(username,correctAnswered,numberAnswered,i);
- break;
- } else if(password.equals("no")||password.equals("2")){
- System.out.println("Enter a new username");
- username = input.nextLine();
- System.out.println("Score: \n\tNumber Correct: " + correctAnswered+"\n\tNumber Answered: " + numberAnswered + "\n\tAverage: " + lead.getScore(i));
- lead.setLeaderboard(username,correctAnswered,numberAnswered,i);
- }
- } else {
- System.out.println("Creating user: " + username);
- System.out.println("\tNumber Correct: " + correctAnswered);
- System.out.println("\tNumber Answered: " + numberAnswered);
- System.out.println("\tScore: " + (correctAnswered/numberAnswered));
- lead.addLeaderboard(username,correctAnswered,numberAnswered);
- }
- }
- }
- }
- }
- }
- } else if (option.equals("2")) {//leaderboard option
- while (true) {
- System.out.println("1) View top 10 players");
- System.out.println("2) Search for a player score");
- System.out.println("3) View entire leaderboard");
- System.out.println("4) exit");
- option = input.nextLine().trim();
- if (option.equals("1")) {
- for (int i = 0; i < 10; i++) {
- int playerNum = i + 1;
- System.out.println("Rank " + playerNum + ":\n\tUsername: " + lead.displayUsername(i));
- System.out.println("\tCorrect Answers: " + lead.displayNumCor(i));
- System.out.println("\tTotal Questions: " + lead.displayNumAns(i));
- System.out.println("\tScore: " + lead.getScore(i));
- }
- } else if (option.equals("2")) {
- System.out.println("Enter the username or rank of the user you want to view");
- option = input.nextLine().trim();
- lead.searchUser(option);
- } else if (option.equals("3")) {
- lead.viewLeaderboard();
- } else if (option.equals("4")) {
- break;
- } else {
- System.out.println("Please choose an option available");
- }
- }
- } else if (option.equals("3")) {//admin option
- System.out.println("Please enter the password or type \"exit\" to leave: ");
- attempt = input.nextLine();
- if (!attempt.equals(password)) {
- while (!attempt.equals(password)) {
- tries--;
- System.out.println("Incorrect password. Try again.\nYou have: " + (tries + 1) + " attempts left.");
- attempt = input.nextLine();
- if (tries == 0) {
- questionWriter.println();
- scoresWriter.println();
- for (int i = 0; i < database.databaseSize(); i++) {
- questionWriter.println(database.displayQuestion(i));
- questionWriter.println(database.displayCorAns(i));
- questionWriter.println(database.displayWrongOne(i));
- questionWriter.println(database.displayWrongTwo(i));
- questionWriter.println(database.displayWrongThree(i));
- }
- for (int i = 0; i < lead.returnNumUsers(); i++) {
- scoresWriter.println(lead.displayUsername(i));
- scoresWriter.println(lead.displayNumCor(i));
- scoresWriter.println(lead.displayNumAns(i));
- }
- questionWriter.close();
- scoresWriter.close();
- System.exit(0);
- }
- }
- }
- tries = 3;
- while (true) {
- System.out.println("1) Add a question?");
- System.out.println("2) Remove a question?");
- System.out.println("3) View the database?");
- System.out.println("4) Exit");
- option = input.nextLine().trim();
- if (option.equalsIgnoreCase("add") || option.equals("1")) {
- do {
- System.out.println("Enter your question: ");
- question = input.nextLine();
- System.out.println("Enter correct answer: ");
- answer = input.nextLine();
- System.out.println("Enter 3 incorrect answers: ");
- answer1 = input.nextLine();
- answer2 = input.nextLine();
- answer3 = input.nextLine();
- database.addQandA(question, answer, answer1, answer2, answer3);
- System.out.println("Do you want to enter new question?");
- option = input.nextLine().trim();
- } while (option.equalsIgnoreCase("yes"));
- } else if (option.equalsIgnoreCase("view") || option.equals("3")) {
- if (database.databaseSize() == 0) {
- System.out.println("The database is empty");
- } else {
- for (int i = 0; i < database.databaseSize(); i++) {
- database.printDatabase(i);
- }
- }
- } else if (option.equalsIgnoreCase("remove") || option.equals("2")) {
- if (database.databaseSize() == 0) {
- System.out.println("The database is empty");
- } else {
- for (int i = 0; i < database.databaseSize(); i++) {
- database.printDatabase(i);
- }
- }
- System.out.println("Enter the question number you want to remove");
- option = input.nextLine().trim();
- if (admin.isNumeric(option)) {
- index = Integer.parseInt(option);
- admin.removeQuestion(index - 1);
- } else {
- System.out.println("There is no question with that number");
- }
- } else if (!(option.equals("4")) || !(option.equalsIgnoreCase("exit"))) {
- break;
- } else {
- System.out.println("Please enter a choice provided");
- }
- }
- } else if (option.equals("4") || option.equalsIgnoreCase("exit")) {
- System.out.println("Thanks for playing!");
- questionWriter.println();
- scoresWriter.println();
- for (int i = 0; i < database.databaseSize(); i++) {
- questionWriter.println(database.displayQuestion(i));
- questionWriter.println(database.displayCorAns(i));
- questionWriter.println(database.displayWrongOne(i));
- questionWriter.println(database.displayWrongTwo(i));
- questionWriter.println(database.displayWrongThree(i));
- }
- for (int i = 0; i < lead.returnNumUsers(); i++) {
- scoresWriter.println(lead.displayUsername(i));
- scoresWriter.println(lead.displayNumCor(i));
- scoresWriter.println(lead.displayNumAns(i));
- }
- break;
- } else {//catch user error
- System.out.println("Please choose a choice available");
- }
- }
- questionWriter.close();
- scoresWriter.close();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement