java实现随机产生双色球功能

来源:互联网 发布:ubuntu u盘备份 编辑:程序博客网 时间:2024/05/12 18:11

java实现随机产生双色球功能

基本思路:

1、是否尾号固定

2、接收输入的随机注数

3、产生随机注,并排序

4、打印输出并保存到文件

 

废话不多说,直接上代码。

package com;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.Locale;
import java.util.Random;

public class CreateRandom {
 protected void my8000000$() {
  try {
   SimpleDateFormat sdf = new SimpleDateFormat("",
     Locale.SIMPLIFIED_CHINESE);
   sdf.applyPattern("yyyyMMddHHmmss");
   String str = sdf.format(Long.valueOf(System.currentTimeMillis()));
   BufferedReader reader = new BufferedReader(new InputStreamReader(
     System.in));
   String p = new File("/").getAbsolutePath();
   BufferedWriter writer = new BufferedWriter(new FileWriter(p + str
     + ".txt"));

   int n = 0;
   System.out
     .println("---------------------------- 请选择投注方式:---------------------------");
   System.out
     .println("---------------------------- 尾号固定请输入 1 ---------------------------");
   System.out
     .println("---------------------------- 尾号随机请输入 2 ---------------------------");
   String s = reader.readLine();
   try {
    n = Integer.parseInt(s);
    if (n == 1) {
     System.out
       .println("--------------------------- 你选择的尾号固定的投注方式 ----------------------------");
     System.out
       .println("-------------------------- 请输入尾号(1-16 中间选一个) --------------------------");
     tz1(reader, writer);
    } else if (n == 2) {
     System.out
       .println("--------------------------- 你选择的尾号随机的投注方式 ----------------------------");
     System.out
       .println("---------------------- 请输入随机的双色球注数:(1-9999998) ----------------------");
     tz2(reader, writer);
    } else {
     System.out.println("你太有才了……     *^_^*   ");
     System.out.println("亲,这里只有两种选择呦……  1/2    *^_^*   ");
     my8000000$();
    }
   } catch (Exception e) {
    System.out.println("你太有才了……     *^_^*   ");
    System.out.println("亲,这里只有两种选择呦……  1/2    *^_^*   ");
    my8000000$();
   }

   System.out.println();
   System.out.println("------------------------ 随机产生的号码已保存到" + p + str
     + ".txt" + " ------------------------");
   try {
    Thread.sleep(10000L);
    System.exit(0);
   } catch (InterruptedException e) {
    e.printStackTrace();
   }
  } catch (IOException e) {
   e.printStackTrace();
  }
 }

 private void tz1(BufferedReader reader, BufferedWriter writer) {
  try {
   int n = 0;
   int red = 0;

   red = testred(reader);
   System.out.println("------------------------------ 你输入的尾号为:" + red
     + " -----------------------------");
   System.out.print("\n");

   System.out
     .println("---------------------------- 请输入随机的双色球注数:---------------------------");

   n = testn(reader);
   System.out.println("------------------------------ 你输入的注数为:" + n
     + " 注 -----------------------------");
   System.out.print("\n");

   int[][] ss = randomArr(n, red);
   DecimalFormat df = new DecimalFormat("00");
   for (int j = 0; j < n; ++j) {
    System.out.print("                          ");
    for (int i = 0; i < 7; ++i) {
     writer.write(df.format(ss[j][i]) + "  ");
     System.out.print(df.format(ss[j][i]) + "  ");
    }
    writer.write("\r\n");
    System.out.print("\n");
   }
   reader.close();
   writer.close();
  } catch (IOException e) {
   e.printStackTrace();
  }
 }

 private void tz2(BufferedReader reader, BufferedWriter writer) {
  try {
   int n = 0;

   n = testn(reader);
   System.out.println("------------------------------ 你输入的注数为:" + n
     + " 注 -----------------------------");
   System.out.print("\n");
   int[][] ss = randomArr(n);
   DecimalFormat df = new DecimalFormat("00");
   for (int j = 0; j < n; ++j) {
    System.out.print("                          ");
    for (int i = 0; i < 7; ++i) {
     writer.write(df.format(ss[j][i]) + "  ");
     System.out.print(df.format(ss[j][i]) + "  ");
    }
    writer.write("\r\n");
    System.out.print("\n");
   }
   reader.close();
   writer.close();
  } catch (IOException e) {
   e.printStackTrace();
  }
 }

 private int testn(BufferedReader reader) {
  int n = 0;
  try {
   String s = reader.readLine();
   try {
    n = Integer.parseInt(s);
    if ((n > 9999999) || (n < 0)) {
     System.out.println("请输入注数(1-9999998)     *^_^*   ");
     n = testn(reader);
    }
   } catch (Exception e) {
    System.out.println("请输入正整数……     *^_^*   ");
    n = testn(reader);
   }
  } catch (IOException e) {
   e.printStackTrace();
  }
  return n;
 }

 private int testred(BufferedReader reader) {
  int red = 0;
  try {
   String s = reader.readLine();
   try {
    red = Integer.parseInt(s);
    if ((red > 16) || (red < 0)) {
     System.out.println("请输入尾号(1-16 中间选一个)     *^_^*   ");
     red = testred(reader);
    }
   } catch (Exception e) {
    System.out.println("请输入正整数……     *^_^*   ");
    red = testred(reader);
   }
  } catch (IOException e) {
   e.printStackTrace();
  }
  return red;
 }

 private int[][] randomArr(int num) {
  int[][] arr = new int[num][7];
  for (int j = 0; j < num; ++j) {
   for (int i = 0; i < 6; ++i) {
    arr[j][i] = randomInt(1, 33);

    for (int k = 0; k < i; ++k) {
     if (arr[j][i] == arr[j][k]) {
      k = 0;
      arr[j][i] = randomInt(1, 33);
     }
    }
   }
   arr[j][6] = randomInt(1, 16);
  }

  for (int j = 0; j < num; ++j) {
   for (int i = 0; i < 6; ++i) {
    for (int k = 0; k < 5 - i; ++k) {
     if (arr[j][k] > arr[j][(k + 1)]) {
      int temp = arr[j][k];
      arr[j][k] = arr[j][(k + 1)];
      arr[j][(k + 1)] = temp;
     }
    }
   }
  }
  return arr;
 }

 private int[][] randomArr(int num, int red) {
  int[][] arr = new int[num][7];
  for (int j = 0; j < num; ++j) {
   for (int i = 0; i < 6; ++i) {
    arr[j][i] = randomInt(1, 33);

    for (int k = 0; k < i; ++k) {
     if (arr[j][i] == arr[j][k]) {
      k = 0;
      arr[j][i] = randomInt(1, 33);
     }
    }
   }
   arr[j][6] = red;
  }

  for (int j = 0; j < num; ++j) {
   for (int i = 0; i < 6; ++i) {
    for (int k = 0; k < 5 - i; ++k) {
     if (arr[j][k] > arr[j][(k + 1)]) {
      int temp = arr[j][k];
      arr[j][k] = arr[j][(k + 1)];
      arr[j][(k + 1)] = temp;
     }
    }
   }
  }
  return arr;
 }

 private int randomInt(int min, int max) {
  Random random = new Random();

  return random.nextInt(max - min + 1) + min;
 }

 public static void main(String[] args) {
  CreateRandom tr = new CreateRandom();
  tr.my8000000$();
 }
}

0 0
原创粉丝点击