1、程序规则要求
1、1中奖规则
3D中奖可分为三种情况:单选、组选3和组选6。
"单选"奖:投注号码与当期公布的中奖号码的3位数按位数全部相同;
即中得直选奖。如开奖号是123,中出123
"组选3"奖:当期摇出的中奖号码3位数中有任意两位数字相同的;
且投注号码与中奖号码的数字相同,顺序不限,即中得"组选3"奖。
如开奖号是122,中出212、221、122。
"组选6"奖:当期摇出的中奖号码中3位数各不相同;
且投注号码的三个数字与当期中奖号码相同,顺序不限,
即中得"组选6"奖。如开奖号为123,中出321、132、213、231、312、123。
1、2奖金分配
"单选"投注:中奖金额除北京每注980元,其他省市每注1000元;
"组选3"投注:中奖金额为每注320元(上海每注333元);
"组选6"投注:中奖金额为每注160元(上海每注166元)。
2、过程分析
1、3D的中奖号码使用Math.random()生成随机数实现,该方法使用本意是随机生成一个
【0,1)的小数,用其乘以10再强转为int类型,即可得到【0,10)之间的整数;
随机三次模拟得到系统生成的三位中奖号码;
2、当用户输入其选择的号码时,只有一种三个一致的豹子可以直接确定用户购买的为直选;
中奖号码唯一,无需询问用户直选或组选;
3、当用户输入非豹子号码,引入变量存储用户选择直选或组选,直选则需号码依次相等;
4、当用户确定为组选时,优先以组6的规则判断该号码是否中奖(组6范围大于组3,组6中奖,组3一定中奖);
组6中奖有6种情况可以中奖;
例如:中奖号假设123 则有123 132 213 312 231 321 此包含了组3组6。
5、若中奖后再判断中的金额为组3还是组6;
3、程序代码实现
import java.util.Scanner;
public class TestTicket{
public static void main(String[] args){
int a1 = (int)(Math.random()*10);
int a2 = (int)(Math.random()*<