Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 3d2
- < //Skrevet av Jan-kenneth Bekkemellem
- 4a4,6
- > import java.io.FileNotFoundException;
- > import java.util.ArrayList;
- > import java.util.InputMismatchException;
- 8c10,27
- < public class Innlevering3 {
- ---
- > /**
- > * Innlevering 3 - Oppgave 1
- > *
- > * Du skal lage et program som skal teste brukeren i bøyning av engelske verb.
- > *
- > * INFORMASJON TIL SENSOR: verb.txt må ligge i mappen som Verb.java blir bygget
- > * til. Ellers må du skrive fil stien når du spesifiserer verb filen. Eks: Oppgi
- > * navnet på verb filen: nith/blystad/innlevering3/verb.txt
- > *
- > * @author Arne-Christian Blystad
- > *
- > */
- > public class Verb {
- >
- > private static Scanner verbFile, input;
- > private static ArrayList<String[]> verbs = new ArrayList<String[]>();
- > private static Random random = new Random(System.currentTimeMillis());
- > private static int numRounds = 0;
- 11,14c30,49
- < askForFile();
- < }
- <
- < public static void askForFile() {
- ---
- > input = new Scanner(System.in);
- > verbFile = getFile(
- > "Oppgi navnet på verb filen", "Kan ikke finne filen. Vennligst skriv inn navnet på en fil som allerede eksisterer.");
- >
- > /*
- > * Bryt ned fila, linje for linje til en Array
- > *
- > * en array rad inneholder 3 arrayer. Feks vil
- > *
- > * Arrays.toString(verbs.get(0)) spytte ut [Be, Was, Been]
- > */
- > while (verbFile.hasNextLine())
- > verbs.add(verbFile.nextLine().split("\\s+"));
- >
- > System.out.println("\n");
- >
- > System.out.println("Velkommen til Verb-o-nator 2000 som tester deg i bøyning av engelske verb.");
- > System.out.printf("Du kan velge opp til %d å bli testet i\n", verbs.size());
- > System.out.println("Du vil få en vurdering når testen er ferdig.");
- > System.out.println();
- 16,35c51,61
- < try {
- < Scanner input = new Scanner(System.in);
- < System.out.print("Oppgi navn på verbfil: ");
- < String fileName = input.next();
- < Scanner textInput = new Scanner(new File(fileName));
- < lineSkip();
- < lineSkip();
- < lineSkip();
- < System.out
- < .println("Velkommen til programmet som tester deg i bøyning av engelske verb.\nDu kan velge opp til 88 verb å bli testet i.\nDu vil få en vurdering når testen er ferdig.");
- <
- < Random rand = new Random();
- < String anwser;
- < String fasit = null;
- < double score = 0;
- < String name = null;
- < int antallVerb = 0;
- < String tryit;
- < lineSkip();
- < do {
- ---
- > /*
- > * Skap en uendlig loop som kun stopper når brukeren er ferdig (finished
- > * = true)
- > */
- > boolean finished = false;
- > while (!finished) {
- > /*
- > * Spør om brukeren vil være med å spille. Første gang så er
- > * meldingen forskjellig fra de andre gangene.
- > */
- > if (numRounds == 0)
- 37,38c63,64
- < tryit = input.next();
- < } while (!tryit.equalsIgnoreCase("ja") && !tryit.equalsIgnoreCase("nei"));
- ---
- > else
- > System.out.print("Ønsker du å prøve dette en gang til? (ja/nei): ");
- 40,41c66,80
- < lineSkip();
- < double sumScore;
- ---
- > String answerYesNo = input.next();
- > if (answerYesNo.equalsIgnoreCase("ja")) {
- > /*
- > * Yay, brukern vil spille, lets play then!
- > */
- > int numVerbsTest = 0;
- > boolean numVerbsTestCorrect = false;
- >
- > /*
- > * Hvor mange verb vil brukeren testes i? Om det er fler enn det
- > * filen inneholder, si ifra til brukeren.
- > */
- > while (!numVerbsTestCorrect) {
- > numVerbsTest = getPositiveInt(
- > "Oppgi ønsket antall verb", String.format("Antall verb må være et tall mellom 1 og %d", verbs.size()));
- 43,49c82,84
- < while (tryit.equalsIgnoreCase("ja")) {
- < score = 0;
- < do
- < try {
- < System.out.print("Oppgi antall verb: ");
- < input.nextLine();
- < antallVerb = input.nextInt();
- ---
- > if (numVerbsTest > 0 && numVerbsTest <= verbs.size())
- > numVerbsTestCorrect = true;
- > }
- 51,52c86,110
- < } catch (Exception e) {
- < System.out.println("Skriv et heltall.");
- ---
- > /*
- > * Etabler variabler for antall spørsmål og poeng brukeren har.
- > */
- > int numQuestions = 0, numPoints = 0;
- > for (int i = 0; i < numVerbsTest; i++) {
- > numQuestions++;
- >
- > /*
- > * Finn det svaret som skal være korrekt.
- > */
- > int rand = random.nextInt(2);
- > String correctAnswer = verbs.get(i)[rand];
- >
- > /*
- > * Skriv ut verb, ett av de tre verbene skal tilfeldigvis
- > * erstattes av ...
- > */
- > for (int x = 0; x < 3; x++) {
- > if (x != rand)
- > System.out.print(verbs.get(i)[x]);
- > else
- > System.out.print("...");
- >
- > if (x != 2)
- > System.out.print(" - ");
- 54d111
- < while (antallVerb <= 0);
- 56,68d112
- < lineSkip();
- < for (int j = 0; j < antallVerb && textInput.hasNext(); j++) {
- < int hidden = rand.nextInt(3) + 1;
- < for (int i = 1; i <= 3; i++)
- < if (hidden == i) {
- < System.out.print(" ... ");
- < fasit = textInput.next();
- < }
- < else {
- < String file = textInput.next();
- < System.out.print(file);
- < System.out.print(" ");
- < }
- 70,73c114,117
- < System.out.print("Skriv formen som mangler: ");
- < anwser = input.next();
- < if (fasit.equalsIgnoreCase(anwser))
- < score++;
- ---
- >
- > String answer = getString("Skriv inn formen som mangler");
- > if (answer.equalsIgnoreCase(correctAnswer))
- > numPoints++; // +1 poeng
- 75c119
- < System.out.println("Feil: " + fasit);
- ---
- > System.out.println("Feil. Riktig svar var: " + correctAnswer);
- 77,82c121,134
- < lineSkip();
- < System.out.print("Oppgi navnet ditt: ");
- < input.nextLine();
- < name = input.nextLine();
- < lineSkip();
- < sumScore = (score) / antallVerb * 100;
- ---
- >
- > String name = getString("\n" + "Oppgi navnet ditt");
- > double score = ((double) numPoints / (double) numQuestions) * 100;
- >
- > /*
- > * Regn ut karakter basert på hvor mange prosent riktig brukeren
- > * har.
- > */
- > String grade = getGrade(score);
- >
- > /*
- > * Skriv ut highscores
- > */
- > System.out.println();
- 84,97c136,137
- < System.out.println("Score: " + sumScore + "%");
- < if (sumScore >= 90)
- < System.out.println("Karakter: A");
- < else if (sumScore >= 80)
- < System.out.println("B");
- < else if (sumScore >= 60)
- < System.out.println("C");
- < else if (sumScore >= 40)
- < System.out.println("D");
- < else if (sumScore >= 20)
- < System.out.println("E");
- < else
- < System.out.println("F");
- < lineSkip();
- ---
- > System.out.println(String.format("Score: %.2f", score) + "%");
- > System.out.println(String.format("Karakter: %s", grade) + "\n");
- 99,107c139
- < if (tryit.equalsIgnoreCase("ja")) {
- < System.out.print("Vil du prøve igjen: ");
- < tryit = input.next();
- < lineSkip();
- < }
- < else if (tryit.equalsIgnoreCase("nei"))
- < System.out.print("Try again soon!");
- < else
- < System.out.print("Skriv ja eller nei");
- ---
- > numRounds++;
- 109c141,144
- <
- ---
- > else if (answerYesNo.equalsIgnoreCase("nei"))
- > finished = true;
- > else
- > System.out.println("Du må svare enten ja, eller nei.");
- 112,114c147,169
- < catch (Exception e) {
- < e.printStackTrace();
- < }
- ---
- > /* Si hadebra */
- > System.out.println("Takk for at du spilte Verb-o-nator 2000.");
- > }
- >
- > /**
- > * @param score
- > * Poengsum i prosent
- > * @return Karakter basert på poengsum
- > */
- > private static String getGrade(double score) {
- > String grade = new String();
- > if (score < 50)
- > grade = "F";
- > else if (score < 65)
- > grade = "E";
- > else if (score < 75)
- > grade = "D";
- > else if (score < 83)
- > grade = "C";
- > else if (score < 89)
- > grade = "B";
- > else
- > grade = "A";
- 115a171
- > return grade;
- 118,119c174,235
- < public static void lineSkip() {
- < System.out.println();
- ---
- > /**
- > * @param message
- > * Melding som blir skrevet ut, før brukeren skriver inn input.
- > * @return input som blir skrevet inn etter setningen
- > */
- > private static String getString(String message) {
- > System.out.print(message + ": ");
- > String string = input.next();
- > return string;
- > }
- >
- > /**
- > * @param message
- > * Melding som blir skrevet ut, før brukeren skriver inn input.
- > * @param errorMessage
- > * Melding som blir skrevet ut, om filen ikke finnes.
- > * @return Filen lastet inn i en scanner som kan bli lest
- > */
- > private static Scanner getFile(String message, String errorMessage) {
- > boolean correctInput = false;
- >
- > Scanner scanner = null;
- > while (!correctInput)
- > try {
- > System.out.print(message + ": ");
- > File file = new File(input.next());
- > scanner = new Scanner(file);
- > correctInput = true;
- > } catch (FileNotFoundException e) {
- > System.out.println(errorMessage);
- > }
- >
- > return scanner;
- > }
- >
- > /**
- > * @param message
- > * Melding som blir skrevet ut, før brukerne skriver inn input.
- > * @param errorMessage
- > * Melding som blir skrevet ut, om verdien ikke er en positiv
- > * integer eller ikke en integer i det hele tatt.
- > * @return En integer som er positiv.
- > */
- > private static int getPositiveInt(String message, String errorMessage) {
- > int integer = 0;
- > boolean correctInput = false;
- >
- > while (!correctInput && integer <= 0) {
- > System.out.print(message + ": ");
- > try {
- > integer = input.nextInt();
- >
- > if (integer <= 0)
- > System.out.println(errorMessage);
- > else
- > correctInput = true;
- > } catch (InputMismatchException e) {
- > System.out.println(errorMessage);
- > input.next();
- > }
- > }
- > return integer;
Advertisement
Add Comment
Please, Sign In to add comment