java语言程序设计 第七章(7.21、7.35)

来源:互联网 发布:淘宝差评拦截在哪设置 编辑:程序博客网 时间:2024/05/21 11:29

程序小白,希望和大家多交流,共同学习
(豆机)也叫作梅花瓶或高尔顿瓶

import java.util.Scanner;import java.util.Arrays;public class BeanSorter{    public static void main(String [] args)    {        Scanner input = new Scanner(System.in);        System.out.print("Enter the number of balls to drop: ");        int drop = input.nextInt();        System.out.print("Enter the number of slots in bean maches: ");        int solt = input.nextInt();        printResult(drop, solt);    }    public static void printResult(int drop, int solt)    {        int[] record = new int[solt];        Arrays.fill(record, 0);        for (int i = 0; i < drop; i++)        {            record[sorter(solt) - 1]++;        }        //System.out.println(Arrays.toString(record));        printResult(record);    }    public static int  sorter(int solt)    {        if (solt % 2 != 0)        {            double everyTime = (solt + 1) / 2;            for (int i = 1; i < solt; i++)            {                int bomb  = (int)(Math.random() * 2);                if (bomb == 0)                {                    System.out.print("L");                    everyTime -= 0.5;                }                else                 {                    System.out.print("R");                    everyTime += 0.5;                }            }            System.out.println();            return (int)everyTime;        }        else         {            double everyTime = solt / 2;            for (int i = 1; i < solt; i++)            {                int bomb  = (int)(Math.random() * 2);                if (bomb == 0)                {                    System.out.print("L");                    everyTime -= 0.5;                }                else                 {                    System.out.print("R");                    everyTime += 0.5;                }            }            System.out.println();            //System.out.print((int)everyTime + " ");            return (int)everyTime;        }    }    public static void printResult(int[] record)    {        int max = findMax(record);        int totalLine = max;        System.out.println(Arrays.toString(record));        for (int i = 0; i < totalLine; i++)        {            for (int j = 0; j < record.length; j++)            {                if (record[j] < max)                {                    System.out.printf("%2s", " ");                }                else if (record[j] == max)                {                    System.out.printf("%2s", "0");                    record[j]--;                }            }            max--;            System.out.println();        }    }    public static int findMax(int[] record)    {        int max = record[0];        for (int i = 1; i < record.length; i++)        {            if (record[i] > max)            {                max = record[i];            }        }        //System.out.println(max);        return max;    }}

(猜字游戏)编写一个猜字游戏。随机产生一个单词,提示哟用户一次猜测一个字母。单词中的每个字母显示为一个星号。当用户猜测正确后,正确的字母显示出来。当用户猜出一个单词,显示猜错的次数,并且询问用户是否继续对另一个单词进行游戏。声明一个数组来存储单词,例如:String[] words = {“write”, “that”, …};

import java.util.Scanner;public class GuessWord{    public static void main(String [] args)    {        playGame();    }    public static void playGame()    {        Scanner choose = new Scanner(System.in);        String[] words = {"school", "class", "program", "judge"};        boolean con = true;        while (con)        {            subject(words[(int)(Math.random() * (words.length))]);            System.out.print("Do you want to guess another word? Enter y or n > ");            char an = choose.next().charAt(0);            con = answer(an);        }    }    public static void subject(String letter)    {        Scanner input = new Scanner(System.in);        String answer = "";        for (int i = 0; i < letter.length(); i++)        {            answer += "*";        }        int count = 0;        char guess = ' ';        boolean succ = true;        while (succ)        {            System.out.print("(Guess) Enter a letter in word " + answer + " > ");            guess = input.next().charAt(0);            int index = judge(letter, answer, guess);            //-2表示已经存在            //-1表示不存在            if (index != -1 && index != -2)            {                answer = add(answer, letter.charAt(index), index);            }            else if (index == -1)            {                count++;                System.out.println(guess + " is not in the word");            }            else if (index == -2)            {                System.out.println(guess + " is already in the word");            }            if (isFillUp(answer))            {                System.out.println("The word is " + letter + " You missed " + count + " time");                succ = false;            }        }    }    public static int judge(String letter, String answer, char guess)    {        boolean exist = false;        for (int i = 0; i < letter.length(); i++)        {            if (guess == letter.charAt(i))            {                exist = true;                if (answer.charAt(i) == '*')                {                    return i;                }            }        }        if (!exist)        {            return -1;        }        else            return -2;    }    public static boolean isFillUp(String answer)    {        for (int i = 0; i < answer.length(); i++)        {            if (answer.charAt(i)  == '*')            {                return false;            }        }        return true;    }    public static String add(String answer, char guess, int index)    {        return (answer.substring(0, index) + guess + answer.substring(index + 1, answer.length()));    }    public static boolean answer(char an)    {        return (an == 'Y' || an == 'y') ? true : false;    }}
原创粉丝点击