Answered step by step
Verified Expert Solution
Question
1 Approved Answer
I have a question about File Writing in java. I'm writing a code that Master Mind Game and also, I want to make a file(.txt
I have a question about File Writing in java.
I'm writing a code that Master Mind Game and also, I want to make a file(.txt or .pdf) and record about how this game would play and what did user input to answer secret numbers in a file that I make. However, I have no idea how to make a file and write a result of game.
This is my code.
import java.util.Scanner; public class MasterMind{ public static void main(String[] args){ int[] number = makeArray(10); //make number of array for(int i = number.length - 1; i > 0; i--){ //shuffle int r = (int)(Math.random() * (i + 1)); int tmp = number[i]; number[i] = number[r]; number[r] = tmp; } int playNumber = 4; // digits int[] answer = new int[playNumber]; if(number[0] == 0){ for (int i = 0; i < answer.length; i++){ answer[i] = number[i + 1]; } }else{ for(int i = 0; i < answer.length; i++){ answer[i] = number[i]; } } /*for(int a: answer){ System.out.print(a + "\t"); } */ System.out.println(); runGame(number, answer, 4); } private static int[] makeArray(int size){ int[] numbers = new int[size]; for(int i = 0; i < size; i++) numbers[i] = generateNumber(); return numbers; } private static int generateNumber(){ return (int)(Math.random() * 10) + 1; // make secret number } private static void runGame(int[] number, int[] answer, int playNumber){ int hit = 0; int blow = 0; int count = 0; int maxPlay = 5; boolean gameEnd = false; while(!gameEnd){ hit = 0; blow = 0; int[] userGuess = new int[playNumber]; boolean checkValid = false; while(!checkValid){ System.out.println("enter your guess"); //ask user to get guess number Scanner keyboard = new Scanner(System.in); int[] inNum = new int[playNumber]; String guess = keyboard.nextLine(); int n = Integer.parseInt(guess); String putNumber = guess.substring(0, 1); //set 1st int digits = Integer.toString(n).length(); creatArray(inNum,n); digits = Integer.toString(n).length(); if(putNumber.equals("0")){ System.out.println("you cannot enter 0 first"); }else if(digits != playNumber){ if(digits < playNumber || n < Math.pow(10, playNumber - 1)) System.out.println(digits); System.out.println("It is not enough digits"); }else if(digits > playNumber){ System.out.println("It is too much"); }else{ checkValid = true; userGuess = inNum; } } for(int i = 0; i < playNumber; i++){ //check hit if(answer[i] == userGuess[i]){ hit++; } } for(int i = 0; i < playNumber; i++){ //check blow for(int k = 0; k < playNumber; k++){ if(answer[i] == userGuess[k]){ blow++; } } } if(hit == playNumber){ System.out.println("It is correct"); System.out.println("you enter " + count); gameEnd = true; }else{ System.out.println(hit + "hit" + (blow - hit) + "Blow"); count++; } if(count == maxPlay){ System.out.println("You reach" + maxPlay + "Game Over"); gameEnd = true; } } } private static void creatArray(int[] inNum, int n){ for(int j = inNum.length - 1; j >= 0; j--){ int d = n / 10; int k = n - d * 10; n = d; inNum[j] = k; } } }
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started