2.6综合案例 五子棋 双色球

    科技2022-09-04  111

    import java.util.Random; import java.util.Scanner; //五子棋 public class Demo3 { public static void main(String[] args) { //绘制棋盘 int[][] nums = new int[16][16]; for(int i=0;i<nums.length;i++) { nums[0][i] = i; nums[i][0] = i; } // nums[1][11]=1; // nums[1][12]=1; // nums[1][13]=1; // nums[1][14]=1; // // nums[2][11]=1; // nums[3][11]=1; // nums[4][11]=1; // // nums[2][12]=1; // nums[3][13]=1; // nums[4][14]=1; nums[4][10]=1; nums[3][9]=1; nums[2][8]=1; nums[1][7]=1; game:while(true) { for(int i=0;i<nums.length;i++) { //打印棋盘 for(int j=0;j<nums.length;j++) { System.out.print(nums[i][j]+" "); } System.out.println(); } //下子 Scanner input = new Scanner(System.in); int[] blackPoint = new int[2]; //建立一个数组存放黑方下子坐标 int[] whitePoint = new int[2]; //建立一个数组存放白方下子坐标 boolean v = true; while(v){ System.out.println("请黑方下子(请输入下子的坐标):"); for(int i = 0;i<blackPoint.length;i++) { blackPoint[i] = input.nextInt(); } if(nums[blackPoint[1]][blackPoint[0]]==0) { nums[blackPoint[1]][blackPoint[0]] = 1; //在此处插入判断条件 v = victory(nums,blackPoint[0],blackPoint[1]); if(v==false) { System.out.println("黑方胜利!!"); break game; } break; }else if(blackPoint[1]==0 || blackPoint[0]==0 || blackPoint[1]>=nums.length || blackPoint[0]>=nums.length){ System.out.println("您的坐标输入有误!请重新输入!"); continue; }else { System.out.println("该位置已有子!请重新输入!"); continue; } } for(int i=0;i<nums.length;i++) { //黑方下子后打印一次 for(int j=0;j<nums.length;j++) { System.out.print(nums[i][j]+" "); } System.out.println(); //System.out.println(); } while(v) { System.out.println("请白方下子(请输入下子的坐标):"); for(int i = 0;i<whitePoint.length;i++) { whitePoint[i] = input.nextInt(); } if(nums[whitePoint[1]][whitePoint[0]]==0) { nums[whitePoint[1]][whitePoint[0]] = 2; //在此处插入判断条件 v = victory(nums,whitePoint[0],whitePoint[1]); if(v==false) { System.out.println("白方胜利!!"); break game; } break; }else if(whitePoint[1]==0 || whitePoint[0]==0 || whitePoint[1]>=nums.length || whitePoint[0]>=nums.length){ System.out.println("您的坐标输入有误!请重新输入!"); continue; }else { System.out.println("该位置已有子!请重新输入!"); continue; } } } //判断是否胜利 } public static boolean victory(int[][] nums, int point1,int point2){ //判断落子的邻近是否可以有形成的五个连续的子 //如果有即放回false给v; int leftNumber = 0; //定义落子的左边连续相同的个数 int rightNumber = 0; //定义落子的右边连续相同的个数 int upperNumber = 0; //定义落子的上边连续相同的个数 int lowerNumber = 0; //定义落子的下边连续相同的个数 int leftUpperNumber = 0; //定义落子的左上连续相同的个数 int leftLowerNumber = 0; //定义落子的左下连续相同的个数 int rightUpperNumber = 0; //定义落子的右上连续相同的个数 int rightLowerNumber = 0; //定义落子的右下连续相同的个数 for(int i=1;point1-i>0;i++) { //往左边数有多少个是连续相同的 if(nums[point2][point1]==nums[point2][point1-i]) { leftNumber++; }else { break; } } for(int i=1;point1+i<nums.length;i++) { //往右边数有多少个是连续相同的 if(nums[point2][point1]==nums[point2][point1+i]) { rightNumber++; }else { break; } } for(int i=1;point2-i>0;i++) { //往上边数有多少个是连续相同的 if(nums[point2][point1]==nums[point2-i][point1]) { upperNumber++; }else { break; } } for(int i=1;point2+i<nums.length;i++) { //往下边数有多少个是连续相同的 if(nums[point2][point1]==nums[point2+i][point1]) { lowerNumber++; }else { break; } } for(int i=1;point1-i>0 && point2-i>0;i++) { //往左上边数有多少个是连续相同的 if(nums[point2][point1]==nums[point2-i][point1-i]) { leftUpperNumber++; }else { break; } } for(int i=1;point1+i<nums.length && point2+i<nums.length;i++) { //往右下数有多少个是连续相同的 if(nums[point2][point1]==nums[point2+i][point1+i]) { rightLowerNumber++; }else { break; } } for(int i=1;point1-i>0 && point2+i<nums.length;i++) { //往左下边数有多少个是连续相同的 if(nums[point2][point1]==nums[point2-i][point1-i]) { leftLowerNumber++; }else { break; } } for(int i=1;point1+i<nums.length && point2-i>0;i++) { //往右上数有多少个是连续相同的 if(nums[point2][point1]==nums[point2+i][point1+i]) { rightUpperNumber++; }else { break; } } //判断 if(leftNumber+rightNumber==4 || upperNumber+lowerNumber==4 || leftUpperNumber+rightLowerNumber==4 || leftLowerNumber+rightUpperNumber==4) { return false; }else { return true; } } } 双色球 package com.atkaikeba; import java.util.Random; import java.util.Scanner; public class Shuangseqiu { public static void main(String[] args) { Random r=new Random(); Scanner s=new Scanner(System.in); //制造随机球号 int []arr1=new int [7]; for(int i=0;i<6;i++) { arr1[i]=r.nextInt(33)+1; } //检查球号有没有重复的,有则改正 for(int i=0;i<6;i++) { for(int j=1;j<6;j++) { if(i!=j) { while(arr1[i]==arr1[j]) { arr1[i]=r.nextInt(33)+1; } } } } //确认蓝色球号 arr1[6]=r.nextInt(16)+1; //制造储存用户球号的数组 int []arr2=new int[7]; for(int i=0;i<6;i++) { System.out.println("请输入一个1-33的数字并按回车发送(已经输入的数字不要再重复输入):"); arr2[i]=s.nextInt(); //这里应该可以加入一个判断用户输入的是否有误 } System.out.println("请再输入一个1-16的数字"); arr2[6]=s.nextInt(); //声明用户中球个数的变量 int n1=0,n2=0; //判断正确的红球号个数 for(int i=0;i<6;i++) { for(int j=0;j<6;j++) { if(arr2[i]==arr1[j]) { n1++; } } } //判断正确的蓝球号 if(arr2[6]==arr1[6]) { n2++; } System.out.println("红色球开奖号码为:"+arr1[0]+","+arr1[1]+","+arr1[2]+","+arr1[3]+","+arr1[4]+","+arr1[5]+"。"); System.out.println("蓝色球开奖号码为:"+arr1[6]+"。"); switch(n1) { case 0:if(n2==0) { System.out.println("恭喜你!获得了安慰奖!");break; } case 1:if(n2==0) { System.out.println("恭喜你!获得了安慰奖!");break; }else { System.out.println("恭喜你!获得了六等奖!");break; } case 2:if(n2==1) { System.out.println("恭喜你!获得了六等奖!"); break; }else { System.out.println("恭喜你!获得了安慰奖!"); break; } case 3:if(n2==1) { System.out.println("恭喜你!获得了五等奖!"); break; }else { System.out.println("恭喜你!获得了安慰奖!"); break; } case 4:if(n2==0) { System.out.println("恭喜你!获得了五等奖!");break; }else { System.out.println("恭喜你!获得了四等奖!");break; } case 5:if(n2==0) { System.out.println("恭喜你!获得了四等奖!");break; }else { System.out.println("恭喜你!获得了三等奖!");break; } case 6:if(n2==0) { System.out.println("恭喜你!获得了二等奖!");break; }else { System.out.println("恭喜你!获得了一等奖!");break; } } } }
    Processed: 0.011, SQL: 9