魔方---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 ...
随机推荐
- vue.js过滤器
import Vue from 'vue' import { ENV } from '@/config/conf' const dateFormat = (str) => { var date ...
- Mac 桌面软件开发基础问答
1> Mac OS X平台下的桌面软件是由什么编程语言处理 答: 由Objective-C, swift编程语言处理 2> Mac OS X平台下的桌面软件是由什么框架构建 答: 由Coc ...
- powershell 激活WIN10
1.以win10专业版为例,鼠标右键点击开始图标,选择[windows powershell(管理员)],或者命令提示符管理员:2.打开命令窗口,复制这个命令slmgr /ipk W269N-WFGW ...
- Linux awk学习
零.awk标准语法 [root@wohaoshuai1 bbb]# echo "abcd" |awk 'BEGIN{print "wohaoshuai"} /a ...
- 修改pip安装源加快python模块安装
用pip安装依赖包时默认访问https://pypi.python.org/simple/,但是经常出现不稳定以及访问速度非常慢的情况,国内厂商提供的pipy镜像目前可用的有: http://pypi ...
- 转载博文: Py西游攻关之IO model
Py西游攻关之IO model 转载:https://www.cnblogs.com/yuanchenqi/articles/5722574.html 事件驱动模型 上节的问题: 协程:遇到IO操作就 ...
- django——模型层之多表操作
django的多表操作 1.使用场景 在实际生产过程多,我们面对的数据纷繁复杂,此时就需要良好的数据结构设计,多表之间的约束关系为我们提供了数据管理以及查询的便利.在MYsql中我们利用外键(fore ...
- Linux系统(和mac系统)chmod修改权限总结
在 Mac 系统的终端上修改文件权限使用的是 Linux 中的 chmod 命令. chmod 用户+操作+权限+文件 用户部分:使用字母 u 表示文件拥有者(user),g 表示拥有者所在群组(gr ...
- __x__(31)0908第五天__导航条的练习 <ul> 版本
效果图: html代码: <!doctype html> <html> <head> <meta charset="utf-8" /&g ...
- java重构四则运算
package 重构四则运算; import java.io.IOException; public class Test { public static void main(String[] arg ...