魔方---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 ...
随机推荐
- 【原创】运维基础之Ansible(1)简介、安装和使用
官方:https://www.ansible.com/ 一 简介 Ansible is a radically simple IT automation engine that automates c ...
- lua table表判断是否为空
官方手册里早已经给了答案,那就是靠lua内置的next函数 即如此用: a = {} if next(a) == nil then next其实就是pairs遍历table时用来取下一个内容的函数. ...
- Java_Number(装箱和拆箱)
所有的包装类(Integer.Long.Byte.Double.Float.Short)都是抽象类Number子类 装箱: 自动将基本数据类型装换为包装器类型 拆箱: 自动将包装器类型转换为基本数据类 ...
- hdu4507 数位dp+推公式
推公式的能力需要锻炼.. /* dp的时候要存结构体 里面三个元素: cnt,就是满足条件的个数 sum1,就是满足条件的数字和 sum2,满足条件的数字平方和 推导过程:还是用记忆化搜索模板 dp[ ...
- Python内置模块之-hashlib
一 .概述 摘要算法又称哈希算法.散列算法.它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示). 摘要算法的特点 不论data大小,摘要结果是固定长度 单向函数, ...
- 饮冰三年-人工智能-Python-24 Django ORM增删改查
一:首先使用默认的sqlite3创建表 1:现在在models.py中添加表模型 from django.db import models # Create your models here. cla ...
- 咸鱼入门到放弃4——Http协议
一.什么是HTTP协议 HTTP是hypertext transfer protocol(超文本传输协议)的简写,它是TCP/IP协议的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的 ...
- 20165220 mybash
使用fork,exec,wait实现mybash - 写出伪代码,产品代码和测试代码 - 发表知识理解,实现过程和问题解决的博客(包含代码托管链接) 1.fork 功能:创建一个新的进程 一个现存进程 ...
- Attribute-Recognition行人属性识别资料
(摘自王逍同学的论文arxiv-2019+Pedestrian Attribute Recognition A Survey) 1. 数据集 Dataset Pedestrians Attribute ...
- websocket-heartbeat-js心跳检测库正式发布
前言: 两年前写了一篇websocket心跳的博客——初探和实现websocket心跳重连. 阅读量一直比较大,加上最近考虑写一个自己的npm包,因此就完成了一个websocket心跳的检测库.在这 ...