黑马程序员技术交流社区

标题: 基础班前五天知识写的双色球游戏. [打印本页]

作者: yikwing    时间: 2016-5-16 23:40
标题: 基础班前五天知识写的双色球游戏.
本帖最后由 yikwing 于 2016-5-16 23:43 编辑
  1. /**
  2. * Created by yikwing on 2016/5/15.
  3. */

  4. import java.util.*;

  5. class lottery {
  6.     public static void main(String[] args) {

  7.         arrTools at = new arrTools();          //引入外界方法arrTools

  8.         int[] sysRedBall = new int[6];         //定义系统红球数组
  9.         int sysBlueBall = 0;                   //定义系统蓝球
  10.         int[] userRedBall = new int[6];        //定义系统蓝球数组
  11.         int userBlueBall = 0;                  //定义系统蓝球
  12.         int redCount = 0;                     //正确的红球个数
  13.         int blueCount = 0;                    //正确的蓝球个数
  14.         Random r = new Random();
  15.         int[] redBall = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33};

  16.         int index = 0;                            //定义数组下标

  17.         //生成系统红球
  18.         for (int i = 0; i < sysRedBall.length; i++) {
  19.             while (true) {
  20.                 index = r.nextInt(33);
  21.                 if (redBall[index] != -1) {
  22.                     sysRedBall[i] = redBall[index];
  23.                     redBall[index] = -1;
  24.                     break;
  25.                 }
  26.             }
  27.         }

  28.         at.kuaisu(sysRedBall);                    //使用外界方法(快速排序)数组

  29.         //生成系统蓝球
  30.         sysBlueBall = r.nextInt(16) + 1;

  31.         //接收用户红球
  32.         System.out.println("红球");
  33.         Scanner in = new Scanner(System.in);
  34.         for (int i = 0; i < userRedBall.length; i++) {
  35.             userRedBall[i] = in.nextInt();
  36.         }
  37.         at.kuaisu(userRedBall);

  38.         //接收用户蓝球
  39.         System.out.println("蓝球");
  40.         userBlueBall = in.nextInt();

  41.         //验证是否中奖
  42.         for (int i = 0; i < sysRedBall.length; i++) {
  43.             for (int j = 0; j < userRedBall.length; j++) {
  44.                 if (sysRedBall[i] == userRedBall[j]) {
  45.                     redCount++;
  46.                     break;
  47.                 }
  48.             }
  49.         }

  50.         if (sysBlueBall == userBlueBall) {
  51.             blueCount++;
  52.         }

  53.         //判断是否中奖

  54.         System.out.print("系统红球为: ");
  55.         at.PrintArray(sysRedBall);                          //调用外界方法(遍历数组)
  56.         System.out.println("系统蓝球为: " + sysBlueBall);
  57.         System.out.println("-----------------------------------------------");
  58.         System.out.print("您购买红球为: ");
  59.         at.PrintArray(userRedBall);                         //调用外界方法(遍历数组)
  60.         System.out.println("您购买蓝球为: " + userBlueBall);
  61.         System.out.println("-----------------------------------------------");
  62.         System.out.println("你的红球中奖数目为: " + redCount);
  63.         System.out.println("你的蓝球中奖数目为: " + blueCount);

  64.         if (redCount == 6 && blueCount == 1) {
  65.             System.out.println("一等奖,恭喜中一百万");
  66.         } else if (redCount == 6) {
  67.             System.out.println("二等奖,恭喜中三十万");
  68.         } else if (redCount == 5 && blueCount == 1) {
  69.             System.out.println("三等奖,恭喜中九十万");
  70.         } else if (redCount == 5 || redCount == 4 && blueCount == 1) {
  71.             System.out.println("四等奖,恭喜中二十万");
  72.         } else if (redCount == 4 || redCount == 3 && blueCount == 1) {
  73.             System.out.println("五等奖,恭喜中一万");
  74.         } else if (blueCount == 1) {
  75.             System.out.println("六等奖,恭喜中十块");
  76.         } else {
  77.             System.out.println("很遗憾您没有获奖,感谢您的参与.");
  78.         }

  79.     }
  80. }
复制代码


作者: yikwing    时间: 2016-5-16 23:42
  1. /**
  2. * Created by yikwing on 2016/5/14.
  3. * 这是一个数组工具类,里面封装了查找数组最大值,遍历数组,数组反转的方法.
  4. *
  5. * @author yikwing
  6. * @veision 0.1
  7. */

  8. public class arrTools {


  9.     //数组遍历

  10.     /**
  11.      * 这是数组遍历的方法
  12.      *
  13.      * @param arr 接收一个int类型数组
  14.      */
  15.     public static void PrintArray(int[] arr) {
  16.         for (int i = 0; i < arr.length; i++) {
  17.             System.out.print(arr[i] + ", ");
  18.         }
  19.         System.out.println("");
  20.     }

  21.     //数组位置交换

  22.     /**
  23.      * 这是数组交换的方法
  24.      *
  25.      * @param arr 接收一个int类型数组
  26.      */
  27.     public static void reverseArray(int[] arr) {
  28.         for (int i = 0; i < arr.length / 2; i++) {
  29.             Swap(arr, i, arr.length - 1 - i);
  30.         }
  31.     }

  32.     public static void Swap(int[] arr, int i, int j) {
  33.         int temp = arr[i];
  34.         arr[i] = arr[j];
  35.         arr[j] = temp;
  36.     }

  37.     //获取数组最大值

  38.     /**
  39.      * 这是数组获取最大值的方法
  40.      *
  41.      * @param arr 接收一个int类型数组
  42.      */
  43.     public static void getMax(int[] arr) {
  44.         int max = arr[0];
  45.         for (int i = 1; i < arr.length; i++) {
  46.             if (max < arr[i]) {
  47.                 max = arr[i];
  48.             }
  49.         }
  50.         System.out.println(max);
  51.     }


  52.     //快速排序
  53.     public static void kuaisu(int arr[]) {
  54.         for (int i = 0; i < arr.length - 1; i++) {
  55.             int minIndex = i;
  56.             for (int j = i + 1; j < arr.length; j++) {
  57.                 if (arr[minIndex] > arr[j]) {
  58.                     minIndex = j;
  59.                 }
  60.             }

  61.             if (minIndex != i) {
  62.                 Swap(arr, i, minIndex);
  63.             }
  64.         }
  65.     }


  66. }
复制代码

作者: yikwing    时间: 2016-5-17 00:05
这个算是一个综合性的案例,基本用到了前五天的所有知识,建议基础班的同学们可以练习这个加强知识的记忆.
作者: cxl1694095035    时间: 2016-5-17 11:11
不错,赞一个
作者: 董改名    时间: 2016-5-17 11:36
赞一个,
作者: yikwing    时间: 2016-5-17 22:29
面向過程幾封裝,構造函數重載

  1. class Text_ShouJi {                                                        //定義類名為Text_ShouJi的主函數
  2.     public static void main(String[] args) {
  3.         ShouJi s = new ShouJi();                                                                                        //創建新的物件,並把位址賦給s
  4.         s.setBrand("三星");                                                                 //賦值
  5.         s.setPrice(998);                                                           //賦值
  6.         s.show();
  7.                 ShouJi s1 = new ShouJi("iphone6s",5588);       
  8.                 s1.show();
  9.     }
  10. }
  11. class ShouJi {
  12.     private String brand;        //定義兩個私有成員變數屬性
  13.     private int price;

  14.     public ShouJi() {                                                                //創建無參構造函數
  15.         System.out.println("無參構造");
  16.     }
  17.        
  18.         public ShouJi(String brand,int price) {                        //創建有參構造函數
  19.         this.brand =brand;
  20.                 this.price = price        ;       
  21.     }
  22.        
  23.        

  24.     public void setBrand (String brand) {                //設置品牌
  25.         this.brand = brand;
  26.     }

  27.     public String getBrand () {                //獲取品牌
  28.         return brand;
  29.     }

  30.     public void setPrice (int price) {        //設置價格
  31.         if (price > 0) {
  32.             this.price = price;
  33.         } else {
  34.             System.out.println("這樣價格的手機你給我一個唄");
  35.         }
  36.     }

  37.     public int getPrice () {                //獲取價格
  38.         return price;
  39.     }

  40.     public void call() {                //創建行為
  41.         System.out.println("可以打電話");
  42.     }

  43.     public void massage() {
  44.         System.out.println("可以發短信");
  45.     }

  46.     public void picther() {
  47.         System.out.println("可以拍照片");
  48.     }
  49.        
  50.         public void show(){
  51.                 System.out.println("手機型號為:"+brand+"..價格為: "+price);
  52.         }

  53. }
复制代码

作者: w19941102    时间: 2016-5-18 00:05
已收藏,很实用,谢楼主
作者: w19941102    时间: 2016-5-18 00:12
哇,大神级人物啊,棒
作者: 我有上将潘凤    时间: 2016-5-18 00:53
不错,赞一个,格式满分
作者: cwj150505    时间: 2016-5-18 01:23
看着好复杂啊。又开始怀疑自己的学习能力了
作者: 一念地狱    时间: 2016-5-18 01:30
赞一个
作者: woshijingke    时间: 2016-5-18 09:27
不错,赞一个
作者: HEIMAZGP    时间: 2016-5-18 13:37
留着慢慢看

作者: werty510    时间: 2016-5-18 14:10
都是基础知识,但是要单独做出来还是挺有难度的啊




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2