黑马程序员技术交流社区
标题:
基础班前五天知识写的双色球游戏.
[打印本页]
作者:
yikwing
时间:
2016-5-16 23:40
标题:
基础班前五天知识写的双色球游戏.
本帖最后由 yikwing 于 2016-5-16 23:43 编辑
/**
* Created by yikwing on 2016/5/15.
*/
import java.util.*;
class lottery {
public static void main(String[] args) {
arrTools at = new arrTools(); //引入外界方法arrTools
int[] sysRedBall = new int[6]; //定义系统红球数组
int sysBlueBall = 0; //定义系统蓝球
int[] userRedBall = new int[6]; //定义系统蓝球数组
int userBlueBall = 0; //定义系统蓝球
int redCount = 0; //正确的红球个数
int blueCount = 0; //正确的蓝球个数
Random r = new Random();
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};
int index = 0; //定义数组下标
//生成系统红球
for (int i = 0; i < sysRedBall.length; i++) {
while (true) {
index = r.nextInt(33);
if (redBall[index] != -1) {
sysRedBall[i] = redBall[index];
redBall[index] = -1;
break;
}
}
}
at.kuaisu(sysRedBall); //使用外界方法(快速排序)数组
//生成系统蓝球
sysBlueBall = r.nextInt(16) + 1;
//接收用户红球
System.out.println("红球");
Scanner in = new Scanner(System.in);
for (int i = 0; i < userRedBall.length; i++) {
userRedBall[i] = in.nextInt();
}
at.kuaisu(userRedBall);
//接收用户蓝球
System.out.println("蓝球");
userBlueBall = in.nextInt();
//验证是否中奖
for (int i = 0; i < sysRedBall.length; i++) {
for (int j = 0; j < userRedBall.length; j++) {
if (sysRedBall[i] == userRedBall[j]) {
redCount++;
break;
}
}
}
if (sysBlueBall == userBlueBall) {
blueCount++;
}
//判断是否中奖
System.out.print("系统红球为: ");
at.PrintArray(sysRedBall); //调用外界方法(遍历数组)
System.out.println("系统蓝球为: " + sysBlueBall);
System.out.println("-----------------------------------------------");
System.out.print("您购买红球为: ");
at.PrintArray(userRedBall); //调用外界方法(遍历数组)
System.out.println("您购买蓝球为: " + userBlueBall);
System.out.println("-----------------------------------------------");
System.out.println("你的红球中奖数目为: " + redCount);
System.out.println("你的蓝球中奖数目为: " + blueCount);
if (redCount == 6 && blueCount == 1) {
System.out.println("一等奖,恭喜中一百万");
} else if (redCount == 6) {
System.out.println("二等奖,恭喜中三十万");
} else if (redCount == 5 && blueCount == 1) {
System.out.println("三等奖,恭喜中九十万");
} else if (redCount == 5 || redCount == 4 && blueCount == 1) {
System.out.println("四等奖,恭喜中二十万");
} else if (redCount == 4 || redCount == 3 && blueCount == 1) {
System.out.println("五等奖,恭喜中一万");
} else if (blueCount == 1) {
System.out.println("六等奖,恭喜中十块");
} else {
System.out.println("很遗憾您没有获奖,感谢您的参与.");
}
}
}
复制代码
作者:
yikwing
时间:
2016-5-16 23:42
/**
* Created by yikwing on 2016/5/14.
* 这是一个数组工具类,里面封装了查找数组最大值,遍历数组,数组反转的方法.
*
* @author yikwing
* @veision 0.1
*/
public class arrTools {
//数组遍历
/**
* 这是数组遍历的方法
*
* @param arr 接收一个int类型数组
*/
public static void PrintArray(int[] arr) {
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + ", ");
}
System.out.println("");
}
//数组位置交换
/**
* 这是数组交换的方法
*
* @param arr 接收一个int类型数组
*/
public static void reverseArray(int[] arr) {
for (int i = 0; i < arr.length / 2; i++) {
Swap(arr, i, arr.length - 1 - i);
}
}
public static void Swap(int[] arr, int i, int j) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
//获取数组最大值
/**
* 这是数组获取最大值的方法
*
* @param arr 接收一个int类型数组
*/
public static void getMax(int[] arr) {
int max = arr[0];
for (int i = 1; i < arr.length; i++) {
if (max < arr[i]) {
max = arr[i];
}
}
System.out.println(max);
}
//快速排序
public static void kuaisu(int arr[]) {
for (int i = 0; i < arr.length - 1; i++) {
int minIndex = i;
for (int j = i + 1; j < arr.length; j++) {
if (arr[minIndex] > arr[j]) {
minIndex = j;
}
}
if (minIndex != i) {
Swap(arr, i, minIndex);
}
}
}
}
复制代码
作者:
yikwing
时间:
2016-5-17 00:05
这个算是一个综合性的案例,基本用到了前五天的所有知识,建议基础班的同学们可以练习这个加强知识的记忆.
作者:
cxl1694095035
时间:
2016-5-17 11:11
不错,赞一个
作者:
董改名
时间:
2016-5-17 11:36
赞一个,
作者:
yikwing
时间:
2016-5-17 22:29
面向過程幾封裝,構造函數重載
class Text_ShouJi { //定義類名為Text_ShouJi的主函數
public static void main(String[] args) {
ShouJi s = new ShouJi(); //創建新的物件,並把位址賦給s
s.setBrand("三星"); //賦值
s.setPrice(998); //賦值
s.show();
ShouJi s1 = new ShouJi("iphone6s",5588);
s1.show();
}
}
class ShouJi {
private String brand; //定義兩個私有成員變數屬性
private int price;
public ShouJi() { //創建無參構造函數
System.out.println("無參構造");
}
public ShouJi(String brand,int price) { //創建有參構造函數
this.brand =brand;
this.price = price ;
}
public void setBrand (String brand) { //設置品牌
this.brand = brand;
}
public String getBrand () { //獲取品牌
return brand;
}
public void setPrice (int price) { //設置價格
if (price > 0) {
this.price = price;
} else {
System.out.println("這樣價格的手機你給我一個唄");
}
}
public int getPrice () { //獲取價格
return price;
}
public void call() { //創建行為
System.out.println("可以打電話");
}
public void massage() {
System.out.println("可以發短信");
}
public void picther() {
System.out.println("可以拍照片");
}
public void show(){
System.out.println("手機型號為:"+brand+"..價格為: "+price);
}
}
复制代码
作者:
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