现在正在学IO流,觉得还挺新鲜的。
过段时间就学完返校了,就可以和张龙交流数据挖掘的知识,和他学习各种大数据分析的技巧。
1.同花顺(炸金花)的评分和鉴定。
这里只给出对应的评分。比较略,得分比较粗糙但是能用,有相关需求或者强迫症可以设置较艺术的得分模型。
2.由递归方法提取目标格式的文件。
这个非常有用,藏得较深的文件忘记了位置可以快速搜索得到.
3,盲文生成(只是给个思想示例,由于比较简单没有完全实行下去);最后:五子棋正在研究中,在网上已经学习了很多五子棋的下法技巧,在不久将会完成;现在仍然在总结各种厉害下法中。
也许是在学习GUI之后。
1,给出同花顺的程序
import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.HashSet; import java.util.Map.Entry; import java.util.Set; public class Demo { static String[] srr = new String[]{"A","2","3","4","5","6","7","8","9","10","J","Q","K"}; static int[] arr = new int[]{14,16,3,4,5,6,7,8,9,10,11,12,13}; //3,4,5,6,7,8,9,10,J ,Q ,K , A,2 // /*{3,4,5,6,7,8,9,10,11,12,13,14,15} * 对应每种牌都有一种花色,用一个class记录; * 第一个元素是值,用作比较,第二个值是花色,对应String * */ static HashSet<Poker> hsp1 = new HashSet<>(); static { hsp1.add(new Poker("6","♥")); hsp1.add(new Poker("7","♠")); hsp1.add(new Poker("8","♣")); } public static void main(String[] args) { int spScore = spScore(hsp1); System.out.println(spScore); } public static int spScore(HashSet<Poker> hsp1){ int s=1; HashSet<String> hs = new HashSet<>(); HashSet<String> hs1 = new HashSet<>(); ArrayList<Integer> hsv = new ArrayList<>();//对应的数值 for(Poker p:hsp1){ hs.add(p.getPai()); hs1.add(p.getColor()); hsv.add(value(p.getPai())); } HashMap<Integer, Integer> hsm2 = new HashMap<>(); Set<Entry<Integer, Integer>> entrySet = hsm2.entrySet(); for(Integer t:hsv){ if(!hsm2.keySet().contains(t)){ hsm2.put(t, 1); }else{ hsm2.put(t, hsm2.get(t)+1); } } System.out.println(hsm2); if(hs.size()==1){ s*=100000*(hsv.get(0));//炸弹 System.out.println("炸弹"); } int min = returnMin(hsv); ArrayList<Integer> hsvm = new ArrayList<>();//连续的3个值 hsvm.add(min); hsvm.add(min+1); hsvm.add(min+2); if(hsvm.containsAll(hsv)&&hsv.containsAll(hsvm)){ s*= (17*min*6);//顺子 System.out.println("顺子"); } if(hs.size()==2){ for(Entry<Integer, Integer> en:entrySet){ if(en.getValue()==2){ s =s*(60*en.getKey());//对子乘以100 }else{ s = s+en.getKey(); } } System.out.println("对子"); } if(hs.size()==3){ Set<Integer> keySet1 = hsm2.keySet(); Object[] array1 = keySet1.toArray(); Arrays.sort(array1); System.out.println(array1[0]+","+array1[1]+","+array1[2]); int jc1=1; for(int i=keySet1.size()-1;i>-1;i--){ Integer c =(Integer) array1[i]; s+=(c*jc1); jc1 = jc1*6; } System.out.println("都是零单"); } if(hs1.size()==1){ s*=100;//花色 System.out.println("同花色"); } return s; } public static int value(String s){ HashMap<String,Integer> hm= new HashMap<>(); for(int i=0;i<arr.length;i++){ hm.put(srr[i], arr[i]); } return hm.get(s); } public static int returnMin(ArrayList<Integer> hs){ int min=10; for(Integer h:hs){ if(h<min){ min = h; } } return min; } }
2.给出搜索txt文件的方法
public static void printTxt(File dir){ if(dir==null) return; File[] listFiles = dir.listFiles(); if(listFiles==null) return ; for(File file:listFiles){ if(file.isFile() && file.getName().toLowerCase().endsWith(".txt")){ System.out.println(file); }else{ printTxt(file); } } }3,给出盲文的一种输出方法;根据输入1-4个1-6的数字输出相应的盲文序列
public class Demo2 { static int[][] arr =new int[][]{{1,4},{2,5},{3,6}}; public static void main(String[] args) { String[][] reChangeAS = Demo2.reChangeAS(Demo2.returnAr2(new MWimput(2,3,4))); Demo2.printArrayS2(reChangeAS); } public static int[][] returnAr2(MWimput mw){ int[][] arr2 = arr; HashSet<Integer> hs = new HashSet<Integer>(); hs.add(mw.a1); hs.add(mw.a2); hs.add(mw.a3); hs.add(mw.a4); for(Integer ii:hs){ for(int i=0;i<3;i++){ for(int j=0;j<2;j++){ if(ii==arr2[i][j]){ arr2[i][j] = 10; } } } } for(int i=0;i<3;i++){ for(int j=0;j<2;j++){ if(arr2[i][j]!=10){ arr2[i][j] = 0; } } } return arr2; } public static String[][] reChangeAS(int[][] arr2){ String[][] srr = new String[arr2.length][]; for(int i=0;i<arr2.length;i++){ srr[i] = new String[arr2[i].length]; for(int j=0;j<arr2[i].length;j++){ if(arr[i][j]==10){ srr[i][j] = "●"; }else{ srr[i][j] = "○"; } } } return srr; } //将两个String[][]横向拼接 public static String[][] pjStringA2(String[][] sr1,String[][] sr2){ String[][] sr = new String[3][]; for(int i=0;i<3;i++){ sr[i] = new String[sr1[i].length+sr2[i].length]; for(int j=0;j<sr1[i].length;j++){ sr[i][j] = sr1[i][j]; } for(int j=0;j<sr2[i].length;j++){ sr[i][j+(sr1[i].length)] = sr2[i][j]; } } return sr; } public static void printArrayS2(String[][] arr){ for(int i=0;i<arr.length;i++){ int k= arr[i].length; for(int j=0;j<k;j++){ System.out.print(arr[i][j]+" "); } System.out.println(); } } }五子棋正在研究中,一月内将会有重大突破,目标达到高级棋手的水准。