Little Alchemy 是个用四个基本元素组合生成的小游戏。。。连Excalibur都可以有

写的代码是从这个游戏的hint页面得到答案的

  1 import java.io.*;
  2 import java.net.URL;
  3 import java.util.*;
  4
  5 public class Main {
  6
  7     public static void main(String[] args) {
  8         String urlStr = "https://littlealchemy.com/cheats/?element=";
  9         String mark = "<a href=\"?element=";
 10
 11         Map<String, Integer> map = new HashMap<String, Integer>();
 12         String[][] c = new String[600][3];
 13
 14
 15         try{
 16             int cnt = 0;
 17             String curr = "christmas stocking";
 18             URL url = new URL(urlStr + curr.replaceAll(" ", "%20"));
 19
 20             Scanner in = new Scanner(new File("result.txt"));
 21             while(in.hasNext()){
 22                 String line;
 23                 line = in.nextLine();
 24                 String[] ss = line.split(" [=\\+] ");
 25                 map.put(ss[0], cnt);
 26                 c[cnt][0] = ss[0];
 27                 c[cnt][1] = ss[1];
 28                 c[cnt][2] = ss[2];
 29                 cnt++;
 30             }
 31             in.close();
 32
 33 //            550-4
 34             int maxn = 525;//找到maxn个条目就停止
 35             int times = 0;
 36             while(map.size() < maxn) {
 37                 ++times;
 38                 if(times % 100 == 0){
 39                     System.out.println(times);
 40                 }
 41                 BufferedInputStream stream = new BufferedInputStream(url.openStream());
 42                 byte[] data = new byte[10000];
 43                 stream.read(data);
 44                 stream.close();
 45
 46                 String str = new String(data);
 47                 int start = str.indexOf(mark) + mark.length();
 48                 int end = str.indexOf("\" class=\"randomButtonTop\">try random element</a>");
 49                 if(start > 0 && end > 0) {
 50
 51                     int e1s = str.indexOf(mark, start);
 52                     int e1e = str.indexOf("\"><img class=\"elementImg\"", e1s>0?e1s:0);
 53                     e1s += mark.length();
 54
 55                     int e2s = str.indexOf(mark, e1e);
 56                     int e2e = str.indexOf("\"><img class=\"elementImg\"", e2s>0?e2s:0);
 57                     e2s += mark.length();
 58
 59
 60 //                    if(!map.containsKey(curr)){
 61 //                        System.out.println(curr);
 62 //                    }
 63 //                    if(e1s>start && e1e>e1s && !map.containsKey(str.substring(e1s, e1e))){
 64 //                        System.out.println(str.substring(e1s, e1e));
 65 //                    }
 66 //                    if(e2s>e1e && e2e>e2s && !map.containsKey(str.substring(e2s, e2e))){
 67 //                        System.out.println(str.substring(e2s, e2e));
 68 //                    }
 69
 70                     if(!map.containsKey(curr) && e1s>start && e1e>e1s && e2s>e1e && e2e>e2s){
 71                         map.put(curr, cnt);
 72                         c[cnt][0] = curr;
 73                         c[cnt][1] = str.substring(e1s, e1e);
 74                         c[cnt][2] = str.substring(e2s, e2e);
 75                         cnt++;
 76                         System.out.println(cnt+". "+curr+" = "+str.substring(e1s, e1e)+" + "+str.substring(e2s, e2e));
 77                     }
 78
 79                     String next = str.substring(start, end);
 80                     url = new URL(urlStr + next.replaceAll(" ", "%20"));
 81                     curr = next;
 82                 }
 83                 else {
 84 //                    System.out.println("\tWAITING...");
 85                     Thread.sleep(2000);
 86                 }
 87             }
 88
 89             Arrays.sort(c, 0, cnt, new Comparator<String[]>() {
 90                 @Override
 91                 public int compare(String[] o1, String[] o2) {
 92                     return o1[0].compareTo(o2[0]);
 93                 }
 94             });
 95             PrintWriter out = new PrintWriter("result.txt");
 96             for(int i = 0; i < cnt; ++i){
 97                 out.printf("%s = %s + %s\n", c[i][0], c[i][1], c[i][2]);
 98 //                System.out.printf("%d. %s = %s + %s\n", i+1, c[i][0], c[i][1], c[i][2]);
 99             }
100             out.close();
101         }
102         catch (Exception e){
103             e.printStackTrace();
104         }
105     }
106 }

转载于:https://www.cnblogs.com/heiqi2piao/p/5113539.html

Little Alchemy 游戏 - 扒答案。。 Java相关推荐

  1. Java 游戏开发:关于Java面向对象的知识(一)

    Java 游戏开发:关于Java面向对象的知识(一) 软件的生命周期(了解即可) 由于我们是大专生 这里的生命周期是之前软件工程的笔记,你们了解就可以了 什么是软件的生命周期 一个软件从被开发到被正式 ...

  2. Java毕设项目藏宝阁游戏交易系统(java+VUE+Mybatis+Maven+Mysql)

    Java毕设项目藏宝阁游戏交易系统(java+VUE+Mybatis+Maven+Mysql) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(We ...

  3. 怒江java培训班_智慧树知到答案Java项目实战(黑龙江联盟)查题公众号

    智慧树知到答案Java项目实战(黑龙江联盟)查题公众号 更多相关问题 读长沙小丽的东南亚"新马泰"旅游日记,结合地图,回答问题.(8分)(3)小丽在马来西亚观光,随处可见()A.油 ...

  4. 复习Java小球游戏代码分享Java面试题MySQL中常用的锁生活【记录一个咸鱼大学生三个月的奋进生活】021

    记录一个咸鱼大学生三个月的奋进生活021 复习Java小球游戏 游戏界面的代码 小球运动线程的代码 运行游戏的代码 运行结果 代码分享 学习Java面试题(MySQL中常用的锁) 照片分享 复习Jav ...

  5. java数组游戏_基于java的挖地雷游戏

    项目简介: 模拟windows系统中的挖地雷游戏,采用Java开发类似的游戏. 游戏包含的行为: 1.      基本的游戏功能1(优先级高): 通过鼠标点击按钮,完成图片的显示: Case1: 如果 ...

  6. java oj题及答案_华为OJ答案(java版)题目2

    华为OJ&答案(java版) 1. 功能:等差数列 2,5,8,11,14.... 输入:正整数N >0 输出:求等差数列前N项和 返回:转换成功返回 0 ,非法输入与异常返回-1 pu ...

  7. 游戏开发总结-java篇

    游戏开发总结-java篇 前言 网络通信 数据存储 逻辑开发 逻辑开发一般遇到的问题有: Java游戏服务器方面的开发要掌握的技术: java服务器目前主流框架技术 前言 Java语言,由于学习成本低 ...

  8. Java 游戏开发:关于Java面向对象的知识( 四)

    这是上期教程:Go To It! 新年过去了,鸽了几天的教程,今天我们开始继续学习(新年快乐~) 游戏人物类的实现 对于一个游戏人物而言,我们可以想到以下的字段: 最大血量 当前血量 名称 装备数组( ...

  9. 头歌实践教学平台答案(Java实训作业答案)

    搜集整理了一份最新最全的头歌(EduCoder)Java实训作业答案,分享给大家.(EduCoder)是信息技术类实践教学平台.(EduCoder)涵盖了计算机.大数据.云计算.人工智能.软件工程.物 ...

最新文章

  1. return与exit()
  2. 中国充换电行业产销需求预测与转型升级战略分析报告2022-2028年版
  3. Error establishing a database connection!
  4. c .net ajax,Asp.net mvc 2中使用Ajax的三种方式
  5. libevent源码深度剖析一
  6. linux 标准函数注释,Linux 驱动程序中相关函数注释汇总(跟新中)
  7. 探索JavaScript中Null和Undefined的深渊
  8. 三、synchronized同步锁
  9. Decide what you want,and go after it with everything you got!
  10. DDR3 MIG IP核仿真与学习
  11. 为什么在计算机里打开U盘会闪退,U盘闪退怎么办?
  12. win10打开蓝牙_联想笔记本win10无法连接蓝牙音箱的解决方法
  13. JAVA-计算两篇文章的相似度
  14. html制作网页文字颜色代码,html网页设计教程关于html字体颜色设置方法是什么?...
  15. 幂数加密(云影加密)
  16. 北京房租大涨?6个维度,数万条数据帮你揭穿(附详情代码)
  17. raspberry pi到手,折腾成web服务器,加小小鄙视下网通
  18. 人脸跟踪:Detect to Track and Track to Detect
  19. 文件上传并展示上传文件
  20. 二进制转换成十进制然后输出 学堂在线第二章作业2-2

热门文章

  1. 利用 Linux tap/tun 虚拟设备写一个 ICMP echo 程序
  2. Linux : shell基础(慕课网Linux达人养成计划课程笔记)
  3. ROS机器人程序设计(原书第2版)2.3 理解ROS开源社区级
  4. 什么是H标签?H1,H2,H3标签?以及和strong标签使用的方法及重要性
  5. jBPM4工作流开发实战 之 第五部分 其他知识
  6. Mina学习之搭建项目工程目录
  7. String.getBytes(Unicode)的疑问 以及 SHIFT-JIS编码范围
  8. 业务系统里面常见的方法接口设计
  9. linux 共享移动硬盘,随时登陆上QQ 自带Linux移动硬盘实战
  10. double 二进制 java_C#中将double值变成二进制然后写入文件,Java中载入该文件读取此二进制double值时不正确...