魔方---java
package LMS;
import java.awt.AWTException;
import java.awt.Robot;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.lang.reflect.Array;
import java.util.Random;
import java.util.Scanner;
import java.util.Arrays;
public class test {
public static void main(String[] args)
{
test pro = new test();
String[] num = new String[16];
num = pro.GetRandom();
pro.printArray(num);
int i = 0;
String temp = "";
while (true)
{
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
if (pro.isWin(num))
{
System.out.println("You win!");
break;
}
if (n == 1)
{
for (i = 0; i < 16; i++)
{
if (num[i] == " " && i != 0 && i != 1 && i != 2 && i != 3)
{
temp = num[i];
num[i] = num[i - 4];
num[i - 4] = temp;
try{clear();}catch(AWTException e){}
pro.printArray(num);
break;
}
}
}
else if (n == 2)
{
for (i = 0; i < 16; i++)
{
if (num[i] == " " && i != 12 && i != 13 && i != 14 && i != 15)
{
temp = num[i];
num[i] = num[i + 4];
num[i + 4] = temp;
try{clear();}catch(AWTException e){}
pro.printArray(num);
break;
}
}
}
else if (n == 3)
{
for (i = 0; i < 16; i++)
{
if (num[i] == " " && i != 0 && i != 4 && i != 8 && i != 12)
{
temp = num[i];
num[i] = num[i - 1];
num[i - 1] = temp;
try{clear();}catch(AWTException e){}
pro.printArray(num);
break;
}
}
}
else if (n == 4)
{
for (i = 0; i < 16; i++)
{
if (num[i] == " " && i != 3 && i != 7 && i != 11 && i != 15)
{
temp = num[i];
num[i] = num[i + 1];
num[i + 1] = temp;
try{clear();}catch(AWTException e){}
pro.printArray(num);
break;
}
}
}
}
}
public static void clear() throws AWTException
{
Robot r = new Robot();
r.delay(100);
r.mousePress(InputEvent.BUTTON3_MASK); // 按下鼠标右键
r.mouseRelease(InputEvent.BUTTON3_MASK); // 释放鼠标右键
r.keyPress(KeyEvent.VK_CONTROL); // 按下Ctrl键
r.keyPress(KeyEvent.VK_R); // 按下R键
r.keyRelease(KeyEvent.VK_R); // 释放R键
r.keyRelease(KeyEvent.VK_CONTROL); // 释放Ctrl键
r.delay(100);
}
boolean isWin(String[] num)
{
for (int i = 0; i < 16; i++)
{
if (i == 0 && num[i]!=" ")
{
return false;
}
if (num[i] != String.valueOf(i))
{
return false;
}
}
return true;
}
void printArray(String[] num)
{
for (int i = 0; i < 16; i++)
{
if(num[i] == " ")
{
System.out.print(num[i]+" ");
}
else if(Integer.valueOf(num[i])>9)
{
System.out.print(num[i]+" ");
}
else if(Integer.valueOf(num[i])<=9)
{
System.out.print(num[i]+" ");
}
if ((i + 1) % 4 == 0)
{
System.out.println();
}
}
}
String[] GetRandom()
{
String[] num = new String[16];
int i = 0;
for (i = 0; i < 16; i++)
{
if (i == 0)
{
num[i] = " ";
}
else
{
num[i] = String.valueOf(i);
}
}
Random rd = new Random();
for (i = 0; i < 16; i++)
{
int index = rd.nextInt(num.length - i);
String temp = "";
temp = num[index];
num[index] = num[num.length - i - 1];
num[num.length - i - 1] = temp;
}
return num;
}
}
魔方---java的更多相关文章
- Spark案例分析
一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...
- 算法笔记_233:二阶魔方旋转(Java)
目录 1 问题描述 2 解决方案 1 问题描述 魔方可以对它的6个面自由旋转. 我们来操作一个2阶魔方(如图1所示): 为了描述方便,我们为它建立了坐标系. 各个面的初始状态如下:x轴正向:绿x轴 ...
- Java实现二阶魔方旋转
魔方可以对它的6个面自由旋转. 我们来操作一个2阶魔方(如图1所示): 为了描述方便,我们为它建立了坐标系. 各个面的初始状态如下: x轴正向:绿 x轴反向:蓝 y轴正向:红 y轴反向:橙 z轴正向: ...
- Java实现第八届蓝桥杯魔方状态
魔方状态 题目描述 二阶魔方就是只有2层的魔方,只由8个小块组成. 如图p1.png所示. 小明很淘气,他只喜欢3种颜色,所有把家里的二阶魔方重新涂了颜色,如下: 前面:橙色 右面:绿色 上面:黄色 ...
- 2016-2017-2 《Java程序设计》预备作业2总结
2016-2017-2 <Java程序设计>预备作业2总结 古希腊学者普罗塔戈说过:「头脑不是一个要被填满的容器,而是一束需要被点燃的火把.」 在对计算机系的学生情况的调查中,我说: 最近 ...
- JAVA上百实例源码以及开源项目
简介 笔者当初为了学习JAVA,收集了很多经典源码,源码难易程度分为初级.中级.高级等,详情看源码列表,需要的可以直接下载! 这些源码反映了那时那景笔者对未来的盲目,对代码的热情.执着,对IT的憧憬. ...
- (转)JAVA 调用matlab
本文仅用于学习. 原文地址链接:http://blog.csdn.net/wannshan/article/details/5907877 前段时间摸索了java调用matlab东西,不说学的有多深, ...
- 42-2017蓝桥杯b java
1.购物单 小明刚刚找到工作,老板人很好,只是老板夫人很爱购物.老板忙的时候经常让小明帮忙到商场代为购物.小明很厌烦,但又不好推辞. 这不,XX大促销又来了!老板夫人开出了长长的购物单,都 ...
- Java之IO(七)ObjectInputStream和ObjectOutputStream
转载请注明源出处:http://www.cnblogs.com/lighten/p/7003536.html 1.前言 本章介绍Java字节流中重要的成员,对象流ObjectInputStream和O ...
随机推荐
- Java面试题复习笔记(数据库)
1.数据库分类? 关系型数据库和非关系型. 常用关系型:Myspl.Oracle.SQLServer 非关系型:Redis.Hadoop.Memcache.Mogobd 2.关系数据库三范式? 范式就 ...
- Bootstrap-datepicker3官方文档中文翻译---概述(原文链接 http://bootstrap-datepicker.readthedocs.io/en/latest/index.html)
bootstrap-datepicker Bootstrap-datepicker 提供了一个拥有Bootstrap样式的弹性Datepicker控件 Requirements/使用要求 Bootst ...
- Actor消息发送及等待结果关键字
class Task extends Actor{ override def act(): Unit = { while(true){ receive({ case SmTask(file) => ...
- Zookeeper集群搭建步骤及相关知识点深入了解
1.zookeeper概念 zookeeper是一个分布式协调服务:a:zookeeper是为别的分布式程序服务的 b:zookeeper本身就是一个分布式程序(只要半数以上节点存活,zookeepe ...
- Scala的泛型
类比java中的泛型: 上界(协变).下界(逆变) scala中泛型采用中括号声明 val array = Array[Int](,,,) array() //声明什么类型就返回什么类型 //test ...
- java集成swagger
概览: java集成Swagger Swagger-UI的使用 Springboot跨域请求的访问解决 Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 W ...
- mac php7.0~7.2 memcache安装
参考 https://www.uedbox.com/post/8924/ https://blog.csdn.net/bjbs_270/article/details/45642905 1. zlib ...
- Redis新接触
一.redis简介 redis即Remote Dictionary Server,是一个key—value存储系统. 二.优点 1.redis支持的存储类型较多,如String.List.Hash.s ...
- session 存到memcache里
web服务器的php session都给memcached ,这样你不管分发器把 ip连接分给哪个web服务器都不会有问题了,配置方法很简单,就在php的配置文件内 增加一条语句就可以了,不过前提你需 ...
- 根据文件大小自动判断单位B,KB,MB,GB
<php> /** * 文件大小格式化 * @param integer $size 初始文件大小,单位为byte * @return array 格式化后的文件大小和单位数组,单位为by ...