【转】Java数字抽奖游戏核心代码
1. [代码][Java]代码
package com.luiszhang.test;
import java.util.Arrays;
/**
* NumberLotteryGame
* 一个简单的数字彩票游戏类
* @author LuisZhang
* 参考了core java 8th中的例3-7的设计思想
*/
public class NumberLotteryGame {
private int gamesNumber; // 生成游戏的数量,为以后多线程扩展做考虑
private int numbersLength; // 数字序列的总长度
private int winningNumbersLength; // 中奖的数字序列的长度
/**
* Constructor with three parameters
* 初始化3个参数的构造方法
* @param gamesNumber
* @param numbersLength
* @param winningNumbersLength
*/
public NumberLotteryGame(int gamesNumber, int numbersLength, int winningNumbersLength) {
this.gamesNumber = gamesNumber;
this.numbersLength = numbersLength;
this.winningNumbersLength = winningNumbersLength;
}
/**
* Generate a number Array
* 生成一个产生中奖序列所需的数字序列
* @param length 数字序列的长度
* @return numbers 产生的数字序列
*/
public static int[] generateNumberArray(int length) {
int[] numbers = new int[length];
for (int i = 0; i < numbers.length; i++) {
numbers[i] = i + 1;
}
return numbers;
}
/**
* Generate a winning number array
* 根据生成的数字序列,产生不重复的中奖数字序列
* @param length 中奖数字序列的长度
* @return result 中奖数字数组
*/
public int[] generateWinningNumberArray(int length) {
int[] numbers = NumberLotteryGame.generateNumberArray(numbersLength);
int[] result = new int[length];
int n = numbersLength;
// 该for循环为产生不重复的中奖序列的核心代码
for(int i = 0; i < result.length; i++) {
int r = (int) (Math.random() * n); // 随机产生一个从0——(n-1)的数字,Math.random()
// 随机产生一个[0, 1)范围的double型数值,
result[i] = numbers[r]; // 将该随机数字作为数组的下标,
// 将该下标对应的值赋给result[i]
numbers[r] = numbers[n - 1]; // 将numbers数组的numbers[n-1]的值,赋给刚已赋
// 值过的numbers[r]。
n--; // 将n-1,从而下一次循环产生的随机的原数组下标的范围从0——(n-1)-1,
// 保证了上一步中,已经赋值给数组中其他数的numbers[n-1],不会在下次循环中给取
// 得,从而保证了产生的中奖数组result为不重复的。
}
return result;
}
/**
* Show winning NumberArray
* 显示中将数组美女
*/
public void showWinningNumberArray() {
int[] winningNumbers = this.generateWinningNumberArray(winningNumbersLength);
Arrays.sort(winningNumbers);http://www.enterdesk.com/special/sexygirl/
for(int r : winningNumbers) {
System.out.print(r + " ");
}
System.out.println();
}
/**
* @return the gamesNumber
*/
public int getGamesNumber() {
return gamesNumber;
}
/**
* @param gamesNumber the gamesNumber to set
*/
public void setGamesNumber(int gamesNumber) {
this.gamesNumber = gamesNumber;
}
/**
* @return the numbersLength
*/
public int getNumbersLength() {
return numbersLength;
}
/**
* @param numbersLength the numbersLength to set
*/
public void setNumbersLength(int numbersLength) {
this.numbersLength = numbersLength;
}
/**
* @return the winningNumbersLength
*/
public int getWinningNumbersLength() {
return winningNumbersLength;
}
/**
* @param winningNumbersLength the winningNumbersLength to set
*/
public void setWinningNumbersLength(int winningNumbersLength) {
this.winningNumbersLength = winningNumbersLength;
}
/**
* Main method
* 用于测试该类的main方法
* @param args
*/
public static void main(String[] args) {
int i = 20; // int i = Integer.parseInt(args[0]);
for(int j = 0; j < i; j++) {
NumberLotteryGame game1 = new NumberLotteryGame(1, 15, 7);
game1.showWinningNumberArray();
}
}
}
【转】Java数字抽奖游戏核心代码的更多相关文章
- 通过游戏学python 3.6 第一季 第九章 实例项目 猜数字游戏--核心代码--猜测次数--随机函数和屏蔽错误代码--优化代码及注释--简单账号密码登陆--账号的注册查询和密码的找回修改--锁定账号--锁定次数--菜单功能'menufile
通过游戏学python 3.6 第一季 第九章 实例项目 猜数字游戏--核心代码--猜测次数--随机函数和屏蔽错误代码--优化代码及注释--简单账号密码登陆--账号的注册查询和密码的找回修改--锁 ...
- 通过游戏学python 3.6 第一季 第八章 实例项目 猜数字游戏--核心代码--猜测次数--随机函数和屏蔽错误代码--优化代码及注释--简单账号密码登陆--账号的注册查询和密码的找回修改--锁定账号--锁定次数
通过游戏学python 3.6 第一季 第八章 实例项目 猜数字游戏--核心代码--猜测次数--随机函数和屏蔽错误代码--优化代码及注释--简单账号密码登陆--账号的注册查询和密码的找回修改--锁定账 ...
- 通过游戏学python 3.6 第一季 第三章 实例项目 猜数字游戏--核心代码--猜测次数--随机函数和屏蔽错误代码 可复制直接使用 娱乐 可封装 函数
猜数字游戏--核心代码--猜测次数--随机函数和屏蔽错误代码 #猜数字--核心代码--猜测次数--随机函数和屏蔽错误代码 import random secrst = random.rand ...
- 通过游戏学python 3.6 第一季 第二章 实例项目 猜数字游戏--核心代码--猜测次数 可复制直接使用 娱乐 可封装 函数
猜数字游戏--核心代码--猜测次数 #猜数字--核心代码--猜测次数 number=33 amount=3 count=0 while count<=amount: conversion ...
- 通过游戏学python 3.6 第一季 第七章 实例项目 猜数字游戏--核心代码--猜测次数--随机函数和屏蔽错误代码--优化代码及注释--简单账号密码登陆--账号的注册查询和密码的找回修改--锁定账号
#猜数字--核心代码--猜测次数--随机函数和屏蔽错误代码---优化代码及注释--简单账号密码登陆--账号的注册查询和密码的找回修改--锁定账号 #猜数字--核心代码--猜测次数--随机函数和屏蔽错误 ...
- 通过游戏学python 3.6 第一季 第六章 实例项目 猜数字游戏--核心代码--猜测次数--随机函数和屏蔽错误代码--优化代码及注释--简单账号密码登陆--账号的注册查询和密码的找回修改 可复制直接使用 娱乐 可封装 函数
#猜数字--核心代码--猜测次数--随机函数和屏蔽错误代码---优化代码及注释--简单账号密码登陆--账号的注册查询和密码的找回修改 #猜数字--核心代码--猜测次数--随机函数和屏蔽错误代码---优 ...
- 通过游戏学python 3.6 第一季 第五章 实例项目 猜数字游戏--核心代码--猜测次数--随机函数和屏蔽错误代码--优化代码及注释--简单账号密码登陆 可复制直接使用 娱乐 可封装 函数
#猜数字--核心代码--猜测次数--随机函数和屏蔽错误代码---优化代码及注释--账号密码登陆 #!usr/bin/env python #-*-coding:utf-8-*- #QQ12411129 ...
- 通过游戏学python 3.6 第一季 第四章 实例项目 猜数字游戏--核心代码--猜测次数--随机函数和屏蔽错误代码--优化代码及注释 可复制直接使用 娱乐 可封装 函数
#猜数字--核心代码--猜测次数--随机函数和屏蔽错误代码---优化代码及注释 #!usr/bin/env python #-*-coding:utf-8-*- #QQ124111294 import ...
- 通过游戏学python 3.6 第一季 第一章 实例项目 猜数字游戏--核心代码 可复制直接使用 娱乐 可封装 函数
本文实例讲述了python实现的简单猜数字游戏.分享给大家供大家参考.具体如下: 给定一个1-99之间的数,让用户猜数字,当用户猜错时会提示用户猜的数字是过大还是过小,知道用户猜对数字为止,猜对数字用 ...
随机推荐
- LoadBitmap(IDB_BITMAP1) -- 未定义标识符 IDB_BITMAP1
错误原因:1:头文件没有加入 #include"resource.h" 2:没有导入该资源或者资源ID错误
- 在echars上发布的半圆环形图
http://gallery.echartsjs.com/editor.html?c=xBJvoMcPfz&v=1
- Codeforces Round #278 (Div. 2) B. Candy Boxes [brute force+constructive algorithms]
哎,最近弱爆了,,,不过这题还是不错滴~~ 要考虑完整各种情况 8795058 2014-11-22 06:52:58 njczy2010 B - Ca ...
- 再看c语言之getchar/putchar
- UI小结
第一.UIButton的定义 UIButton *button=[[UIButton buttonWithType:(UIButtonType); 能够定义的button类型有以下6种, ...
- VS2017不能生成Database Unit Test项目
问题描述: VS2017生成Database Unit Test项目时,报出如下错误,但该项目在VS2015中能正常生成: 主要是因为下面两个程序集找不到引用: Microsoft.Data.Tool ...
- Camtasia Studio录制屏幕字迹不清晰的原因
Camtasia Studio这是一个很优秀的屏幕录像软件,功能强大且录制效果出色,支持众多格式输出: 之前一直用它录制视频的都很正常,但这次换系统后再重新安装后录制视频时,发现输出的视频画质不佳,文 ...
- SolidWorks如何绘制抽壳零件
1 绘制一个零件,点击抽壳 2 你可以一个一个面选,也可以直接选中一个零件,对他的所有面都薄壳处理(右击弹出菜单选择确定即可) 3 可以用剖视图检查是否抽壳成功 4 对于复杂的零件,一个一 ...
- 手机加载优化 - 2x、3x图
人们常说,现在的流量不值钱了,图越大越好咯! 我想说的是,浏览器虽然不值钱了,但速度还是略快吧! 文章来自:UI妹儿 icon_alipay.png→iPhone 1-3代的手机(已经不考虑了) ic ...
- HDOJ 1217 Arbitrage(拟最短路,floyd算法)
Arbitrage Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total ...