Java基础~双色球游戏(规则:红色球号码从1--33中选择;蓝色球号码从1--16中选择,每次注投注号码由6个红色球号码和1个蓝色球号码组成)附:运行结果截图

7 篇文章 0 订阅
2 篇文章 0 订阅

目录

 ArrayList.java

Ball.java

BallColor.java 这是枚举类型

Test1.java  我的主方法文件

运行截图:​编辑


双色球游戏:游戏规则红色球号码从1--33中选择;蓝色球号码从1--16中选择,每注投注号码由6个红色球号码和1个蓝色球号码组成

 ArrayList.java

package com.yan4;

import java.util.Arrays;

public class ArrayList {
	private Ball[] arr;
	private int size = 0;

	public ArrayList() {
		this(10);
	}

	public ArrayList(int length) {
		arr = new Ball[length];
	}

	public void add(Ball data) {
		arr[size++] = data;
		if (size >= arr.length)
			resize();
	}

	/**
	 * @param index 需要删除的数据下标
	 */
	public Ball delete(int index) {
		if (index >= size || size < 0)
			throw new ArrayIndexOutOfBoundsException();
		Ball res = arr[index];
		System.arraycopy(arr, index + 1, arr, index, arr.length - index - 1);
		arr[size - 1] = null;
		size--;
		return res;
	}

	public void update(int index, Ball data) {
		if (index >= size || size < 0)
			throw new ArrayIndexOutOfBoundsException();
		arr[index] = data;
	}

	public Ball[] getData() {
		Ball[] res = new Ball[size];
		System.arraycopy(arr, 0, res, 0, size);
		return res;
	}

	public String toString() {
		return Arrays.toString(arr);
	}

	public void resize() {
		Ball[] res = new Ball[arr.length * 3 / 2];
		System.arraycopy(arr, 0, res, 0, arr.length);
		this.arr = res;
	}

	public int size() {
		return this.size;
	}

	public Ball[] sort() {
		Ball[] res = getData();
		Arrays.sort(res, (o1, o2) -> {
			int res1 = o1.getColor().compareTo(o2.getColor());
			if (res1 == 0) {
				res1 = o1.getNumber() - o2.getNumber();
			}
			res1 *= -1;
			return res1;
		});
		return res;
	}

}

Ball.java

package com.yan4;

public final class Ball {
	private final int number;
	private final BallColor color;

	public Ball(int num, BallColor color) {
		this.number = num;
		this.color = color;
	}

	public int getNumber() {
		return number;
	}

	public BallColor getColor() {
		return color;
	}

	@Override
	public String toString() {
		return "(" + number + "," + color + ")";
	}

}

BallColor.java 这是枚举类型

package com.yan4;

public enum BallColor {
	RED("红球"), BLUE("蓝球");

	private String name;

	private BallColor(String name) {
		this.name = name;
	}

	@Override
	public String toString() {
		return this.name;
	}
}

Test1.java  我的主方法文件

package com.yan4;

import java.util.Arrays;
import java.util.Random;

public class Test1 {
	public static void main(String[] args) {
		ArrayList list1 = new ArrayList();
		for (int i = 1; i <= 33; i++)
			list1.add(new Ball(i, BallColor.RED));
		ArrayList list3 = new ArrayList(7);
		Random r = new Random();
		for (int i = 0; i < 6; i++) {
			int pos = r.nextInt(list1.size());
			Ball data = list1.delete(pos);
			list3.add(data);
		}
		list3.add(new Ball(r.nextInt(16) + 1, BallColor.BLUE));
		list3.sort();
		Ball[] res = list3.getData();
		System.out.println(Arrays.toString(res));
	}
}

运行截图:​​​​​​​

 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值