田忌赛马优化版

田忌赛马优化版
田忌赛马的故事背景相信大家都知道,齐威王用上中下三等马和田忌的上中下三等马比赛,其中同等级的马齐威王的马跑的更快。
要求田忌的马出场顺序要输入,齐威王的马出场顺序已确定。田忌输入的马出场顺序,和齐威王的马确定的出场顺序比赛,输出最后结果,齐威王获胜还是田忌获胜。
代码和注释如下

import java.util.Scanner;
public class Races
{
    public static void main(String[] args)
    {
        Races rs = new Races();
        int i;

        int[] qi ={ 3,1,2 };
        System.out.print("齐威王马的出场顺序: ");
        for (i = 1; i <=3; i++)
        {
            String st = rs.chineseFormatFromInt(qi[i-1]);//调用chineseFormatFromInt方法,将qi[]数组中的数字转换成相应的汉字
            System.out.print(st);
        }
        System.out.println();
        int[] tian = rs.tianjiArray();//将输入的数据导入数组
        rs.saima(qi, tian);//用saima方法齐威王和田忌的马比赛
    }
    //定义一个方法chineseFormatFromInt,将数字转换成汉字输出
    public String chineseFormatFromInt(int j)
    {
        String chinese = null;
        switch (j)
        {
        case 1:
            chinese = "下等马  ";
            break;
        case 2:
            chinese = "中等马  ";
            break;
        case 3:
            chinese = "上等马  ";
            break;
        }
        return chinese;//方法返回数字对应的汉字

    }
    //定义一个方法intFormatFromChinese,将汉字转换成数字输出,以便放入田忌马的数组里
    public int intFormatFromChinese(String chinese)
    {
        int num = 0;
        switch (chinese)
        {
        case "下等马":
            num = 1;
            break;
        case "中等马":
            num = 2;
            break;
        case "上等马":
            num = 3;
            break;
        }
        return num;//返回汉字对应的数字
    }
    //定义saima方法,比较齐威王和田忌的胜负
    void saima(int[] qi, int[] tian)
    {
        int j;
        System.out.println();
        int qicount = 0, tiancount = 0;
        for (j = 0; j < 3; j++)
        {

            if (qi[j] >= tian[j])
            {
                System.out.println("第" + (j + 1) + "局" + "齐威王上场" +chineseFormatFromInt(qi[j]) + "田忌上场"
                        +chineseFormatFromInt(tian[j]) + "齐威王胜 ");//输出每局双方上场的马等级,并输出每局胜利者
                qicount++;
            } else
            {
                System.out.println("第" + (j + 1) + "局" + "齐威王上场" +chineseFormatFromInt(qi[j])  + "田忌上场"
                        +chineseFormatFromInt(tian[j])+ "田忌胜 ");
                tiancount++;
            }
        }
        System.out.print("赛马结果:");//赛马结果
        if (qicount > tiancount)
        {
            System.out.println("齐威王胜");
        } else
        {
            System.out.println("田忌胜");
        }
    }

    public int[] tianjiArray()//创建tianjiArray方法
    {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输出第一场出场的马等级:");
        String first = sc.nextLine();
        System.out.println("请输出第二场出场的马等级:");
        String second = sc.nextLine();
        System.out.println("请输出第三场出场的马等级:");
        String third = sc.nextLine();
        int firstNum = intFormatFromChinese(first);//将接收的汉字转换成对应的数字,通过调用intFormatFromChinese实现
        int secondNum = intFormatFromChinese(second);
        int thirdNum = intFormatFromChinese(third);
        int[] tian = new int[3];//创建tian数组,将接收的数组存入数组
        tian[0] = firstNum;
        tian[1] = secondNum;
        tian[2] = thirdNum; 
        return tian;//返回tian数组
        }
}

运行结果如图
田忌赛马优化版_第1张图片

你可能感兴趣的:(田忌赛马优化版)