package com.xt.lesson19;
import java.util.Scanner;
import java.util.Set;
import java.util.TreeSet;
/**
* 转轮盘游戏
使用TreeSet存储【奖品】(自定义类Prize,需要用积分属性)
(1) 设置10个奖品,并为每个奖品设定一个积分。
例如:
奖
品 奖品
1 奖品
2 奖品
3 奖品
4 奖品
5 奖品
6 奖品
7 奖品
8 奖品
9 奖品
10
积
分 25分 30分 55分 60分 15分 45分 50分 20分 35分 40分
(2) 首先显示TreeSet中的奖品(遍历输出)
用户根据轮盘上剩余的奖品输入一个数字(例如轮盘上只剩下7个奖品,则选择1~7)。
用户输入后,程序自动生成一个随机数字(范围也根据遍历结果),
【猜对】如果生成的随机数与用户输入的数字相同,则将TreeSet中本次对应的奖品积分累计到用户积分、并将该奖品从TreeSet中移除(此时TreeSet的size会减1)。
【猜错】如果生成的随机数与用户输入的数字不同,则TreeSet不变,继续游戏。
(3) 用户有10次猜测机会,累计积分超过100则表示游戏胜利,否则失败。
* @author LENOVO
*
*/
public class MatchRole {
static int sum=0;
static int m=10;
static int k=1;
public void matchRole(){
Set<Prize> ts=new TreeSet<Prize>();
ts.add(new Prize( 1,1,25));
ts.add(new Prize(2,2,30));
ts.add(new Prize(3,3,55));
ts.add(new Prize(4,4,60));
ts.add(new Prize(5,5,15));
ts.add(new Prize(6,6,45));
ts.add(new Prize(7,7,50));
ts.add(new Prize(8,8,20));
ts.add(new Prize(9,9,35));
ts.add(new Prize(10,10,40));
for(Prize prize:ts){
System.out.println(prize);
}
first :for(int i=0;i<10;i++){
System.out.println("请您输入一个数字,这个数字的范围是1到"+m+" !!");
Scanner scanner =new Scanner(System.in);
int guNum=scanner.nextInt();
int rdNum=m-(int)(Math.random()*(m-0));
System.out.println("请您转盘,您转盘得到的数字是:"+rdNum);
second :for (Prize pr:ts){
if(guNum==rdNum){
System.out.println("恭喜您,您答对了!!");
sum=sum+pr.getScore();
ts.remove(pr);
m--;
for(Prize pr1:ts){
pr1.setNum(k++);
}
for(Prize prize:ts){
System.out.println(prize);
}
System.out.println("您目前的积分是:"+sum);
continue first;
}
}
}
System.out.println("您已经用完了您的十次机会!您的总积分:"+sum);
if(sum>100){
System.out.println("胜利!!");
}
else {
System.out.println("失败!!");
}
}
public static void main(String[] args) {
MatchRole mr=new MatchRole();
mr.matchRole();
}
}
package com.xt.lesson19;
/**
* @author LENOVO
*
*/
public class Prize implements Comparable{
private int num;
private int prize;
private int score;
public Prize(int num, int prize, int score) {
super();
this.num = num;
this.prize = prize;
this.score = score;
}
/**
* @return the num
*/
public int getNum() {
return num;
}
/**
* @param num the num to set
*/
public void setNum(int num) {
this.num = num;
}
/**
* @return the prize
*/
public int getPrize() {
return prize;
}
/**
* @param prize the prize to set
*/
public void setPrize(int prize) {
this.prize = prize;
}
/**
* @return the score
*/
public int getScore() {
return score;
}
/**
* @param score the score to set
*/
public void setScore(int score) {
this.score = score;
}
/* (non-Javadoc)
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
return "编号:" + num + ", 奖品 " + prize + ", 积分 " + score + "分";
}
/* (non-Javadoc)
* @see java.lang.Comparable#compareTo(java.lang.Object)
*/
@Override
public int compareTo(Object o) {
if(o!=null){
if(o instanceof Prize){
Prize ano=(Prize)o;
if(this.getPrize()==ano.getPrize()){
return 0;
}
else {return prize-ano.getPrize();}
}
}
return 0;
}
}