魔方---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 ...
随机推荐
- Kafka简单使用
前言 这几天在写 shell 脚本,学到不少,但是没啥心得之类的,有空可以写个总结(但是大概率不会发表) 现在不算很忙,想再学一点 消息队列相关知识 目前比较出名的也就 RabbitMQ 和 Kafk ...
- IntelliJ IDEA运行eclipse的web项目报错的问题
用IDEA已经有一段时间了, 由于之前的IDEA版本不支持Tomcat服务器, 所以很长一段时间web项目都是由eclipse开发调试. 今天闲来无事下载了一个最新版的IDEA, 按网上的教程, 尝试 ...
- Exceptionless 生产部署笔记
参考 部署用于生产的Exceptionlees(一个强大易用的日志收集服务) 1. 安装配置 redis 4.0 点击下载redis教学脑图 cd /opt wget http://download ...
- Angular组件——投影
运行时动态改变组件模版的内容.没路由那么复杂,只是一段html,没有业务逻辑. ngContent指令将父组件模版上的任意片段投影到子组件上. 一.简单例子 1.子组件中使用<ng-conten ...
- Linux中常用操作命令(转)
1.cd命令 这是一个非常基本,也是大家经常需要使用的命令,它用于切换当前目录,它的参数是要切换到的目录的路径,可以是绝对路径,也可以是相对路径.如: cd /root/Docements # 切 ...
- Django REST framework serializer 嵌套显示绝对路径
在 Django REST framework官方文档提到,当调用Serializer时,应当传入request参数,以便生成完整的url而不是相对url.使用ModelSerializer时requ ...
- 多线程处理list
package com.zhx.web.invoice.service; import java.util.*; import java.util.concurrent.Callable; impor ...
- Ubuntu14.0使用gparted调整分区大小
不知道为什么,我总会碰到一些疑难杂症,别人的分区都是在同一个目录下,直接通过,不断调整同一目录下相邻分区之间的空间来达到调整目标分区大小的目的 但我的不一样,我的主要分区在扩展分区下,极其魔性,图片里 ...
- less那些事儿
1.计算函数 less写法要特殊处理一下,否则会被识别成calc(60%); /* css */ width: calc(100% - 40px); / * less */ width : calc( ...
- vscode断点调试工程化客户端文件
一.调试webpack配置文件 launch.json的配置如下,在webpack.dev.config.js文件中设置断点,开始调试. { "version": "0. ...