如今已经慢慢步入了java的学习中,在这段时间的学习中,真的感觉C和java是不一样的两种语言,可能某些语法是一样的,但是思路真的不一样。
下面先把简单华容道的代码贴出来
public class wayMove extends makePicture{
String Up="上";
String Down="下";
String Left="左";
String Right="右";
makePicture x=new makePicture();
public wayMove(){
}
public void way(String onePerson,String newDirection){
int n,m;
for (n=0;n<5;n++)
{
for (m=0;m<4;m++)
{
if (x.heros[n][m].equals(onePerson))
{
if (x.heros[n][m]=="马"||x.heros[n][m]=="赵"||x.heros[n][m]=="张"||x.heros[n][m]=="黄")
{
if (Down.equals(newDirection))
{
if(n+2<=4&&n+1<=4&&x.heros[n+2][m]==" ")
{
x.heros[n+2][m]=x.heros[n+1][m];
x.heros[n+1][m]=x.heros[n][m];
x.heros[n][m]=" ";
break;
}
else
{
System.out.println("不能移动,请重新输入");
break;
}
}
else if(Up.equals(newDirection))
{
if(n-2>=0&&n-1>=0&&x.heros[n-2][m]==" ")
{
x.heros[n-2][m]=x.heros[n-1][m];
x.heros[n-1][m]=x.heros[n][m];
x.heros[n][m]=" ";
break;
}
else
{
System.out.println("不能移动,请重新输入");
break;
}
}
else if(Left.equals(newDirection))
{
if(m-1>=0&&x.heros[n][m-1]==" "&&x.heros[n+1][m+1]==" ")
{
x.heros[n][m-1]=x.heros[n][m];
x.heros[n+1][m+1]=x.heros[n+1][m];
x.heros[n][m]=" ";
x.heros[n+1][m]=" ";
break;
}
else
{
System.out.println("不能移动,请重新输入");
break;
}
}
else if(Right.equals(newDirection))
{
if(m+1<=3&&x.heros[n][m+1]==" "&&x.heros[n+1][m+1]==" ")
{
x.heros[n][m+1]=x.heros[n][m];
x.heros[n+1][m+1]=x.heros[n+1][m];
x.heros[n][m]=" ";
x.heros[n+1][m]=" ";
break;
}
else
{
System.out.println("不能移动,请重新输入");
break;
}
}
}
else if (x.heros[n][m]=="曹")
{
if (Down.equals(newDirection))
{
if(n+2<=4&&n+1<=4&&x.heros[n+2][m]==" "&&x.heros[n+2][m+1]==" ")
{
x.heros[n+2][m]=x.heros[n][m];
x.heros[n+2][m+1]=x.heros[n][m+1];
x.heros[n][m]=" ";
x.heros[n][m+1]=" ";
break;
}
else
{
System.out.println("不能移动,请重新输入");
break;
}
}
else if(Up.equals(newDirection))
{
if(n-1>=0&&x.heros[n-1][m]==" "&&x.heros[n-1][m+1]==" ")
{
x.heros[n-1][m]=x.heros[n][m];
x.heros[n-1][m+1]=x.heros[n][m+1];
x.heros[n][m]=x.heros[n+1][m];
x.heros[n][m+1]=x.heros[n+1][m+1];
x.heros[n+1][m]=" ";
x.heros[n+1][m+1]=" ";
break;
}
else
{
System.out.println("不能移动,请重新输入");
break;
}
}
else if(Left.equals(newDirection))
{
if(m-1>=0&&x.heros[n][m-1]==" "&&x.heros[n+1][m-1]==" ")
{
x.heros[n][m-1]=x.heros[n][m];
x.heros[n][m]=x.heros[n][m+1];
x.heros[n+1][m-1]=x.heros[n+1][m];
x.heros[n+1][m]=x.heros[n+1][m+1];
x.heros[n][m+1]=" ";
x.heros[n+1][m+1]=" ";
break;
}
else
{
System.out.println("不能移动,请重新输入");
break;
}
}
else if(Right.equals(newDirection))
{
if (m+2<=3&&x.heros[n][m+2]==" "&&x.heros[n+1][m+2]==" ")
{
x.heros[n][m+2]=x.heros[n][m+1];
x.heros[n][m+1]=x.heros[n][m];
x.heros[n+1][m+2]=x.heros[n+1][m+1];
x.heros[n+1][m+1]=x.heros[n+1][m];
x.heros[n][m]=" ";
x.heros[n+1][m]=" ";
break;
}
else
{
System.out.println("不能移动,请重新输入");
break;
}
}
}
else if (x.heros[n][m]=="关")
{
if (Down.equals(newDirection))
{
if (n+1<=4&&x.heros[n+1][m]==" "&&x.heros[n+1][m+1]==" ")
{
x.heros[n+1][m]=x.heros[n][m];
x.heros[n+1][m+1]=x.heros[n][m+1];
x.heros[n][m]=" ";
x.heros[n][m+1]=" ";
break;
}
else
{
System.out.println("不能移动,请重新输入");
break;
}
}
else if(Up.equals(newDirection))
{
if (n-1>=0&&x.heros[n-1][m]==" "&&x.heros[n-1][m+1]==" ")
{
x.heros[n-1][m]=x.heros[n][m];
x.heros[n-1][m+1]=x.heros[n][m+1];
x.heros[n][m]=" ";
x.heros[n][m+1]=" ";
break;
}
else
{
System.out.println("不能移动,请重新输入");
break;
}
}
else if(Left.equals(newDirection))
{
if (m-1>=0&&x.heros[n][m-1]==" ")
{
x.heros[n][m-1]=x.heros[n][m];
x.heros[n][m]=x.heros[n][m-1];
x.heros[n][m-1]=" ";
break;
}
else
{
System.out.println("不能移动,请重新输入");
break;
}
}
else if(Right.equals(newDirection))
{
if (m+2<=3&&x.heros[n][m+2]==" ")
{
x.heros[n][m+2]=x.heros[n][m+1];
x.heros[n][m+1]=x.heros[n][m];
x.heros[n][m]=" ";
break;
}
else
{
System.out.println("不能移动,请重新输入");
break;
}
}
}
else if (x.heros[n][m]=="甲"||x.heros[n][m]=="乙"||x.heros[n][m]=="丙"||x.heros[n][m]=="丁")
{
if (Down.equals(newDirection))
{
if(n+1<=4&&x.heros[n+1][m]==" ")
{
x.heros[n+1][m]=x.heros[n][m];
x.heros[n][m]=" ";
break;
}
else
{
System.out.println("不能移动,请重新输入");
break;
}
}
else if(Up.equals(newDirection))
{
if (n-1>=0&&x.heros[n-1][m]==" ")
{
x.heros[n-1][m]=x.heros[n][m];
x.heros[n][m]=" ";
break;
}
else
{
System.out.println("不能移动,请重新输入");
break;
}
}
else if(Left.equals(newDirection))
{
if (m-1>=0&&x.heros[n][m-1]==" ")
{
x.heros[n][m-1]=x.heros[n][m];
x.heros[n][m]=" ";
break;
}
else
{
System.out.println("不能移动,请重新输入");
break;
}
}
else if(Right.equals(newDirection))
{
if (m+1<=3&&x.heros[n][m+1]==" ")
{
x.heros[n][m+1]=x.heros[n][m];
x.heros[n][m]=" ";
break;
}
else
{
System.out.println("不能移动,请重新输入");
break;
}
}
}
}
}
}
new printPicture(x);
}
}
public class printPicture extends makePicture {
int rows;
int cols;
public printPicture(makePicture zy){
for (rows=0;rows<5;rows++)
{
for (cols=0;cols<4;cols++)
System.out.print(zy.heros[rows][cols]);
System.out.println();
}
}
}
public class peopleHero{
String[][] heros=new String[5][4];
String Ma="马";
String Chao="超";
String Zhao="赵";
String Yun="云";
String Zhang="张";
String Fei="飞";
String Huang="黄";
String Zhong="忠";
String Guan="关";
String Yu="羽";
String Cao="曹";
String Ca="操";
String Jia="甲";
String Yi="乙";
String Bing="丙";
String Ding="丁";
public peopleHero(){
}
public String getMa() {
return Ma;
}
public String getChao() {
return Chao;
}
public String getZhao() {
return Zhao;
}
public String getYun() {
return Yun;
}
public String getZhang() {
return Zhang;
}
public String getFei() {
return Fei;
}
public String getGuan() {
return Guan;
}
public String getYu() {
return Yu;
}
public String getHuang() {
return Huang;
}
public String getZhong() {
return Zhong;
}
public String getCao() {
return Cao;
}
public String getCa() {
return Ca;
}
public String getJia() {
return Jia;
}
public String getYi() {
return Yi;
}
public String getBing() {
return Bing;
}
public String getDing() {
return Ding;
}
}
public class makePicture extends peopleHero {
peopleHero zy=new peopleHero();
public makePicture(){
heros[0][0]=zy.Ma;
heros[0][1]=zy.Cao;
heros[0][2]=zy.Ca;
heros[0][3]=zy.Zhang;
heros[1][0]=zy.Chao;
heros[1][1]=zy.Cao;
heros[1][2]=zy.Ca;
heros[1][3]=zy.Fei;
heros[2][0]=zy.Zhao;
heros[2][1]=zy.Guan;
heros[2][2]=zy.Yu;
heros[2][3]=zy.Huang;
heros[3][0]=zy.Yun;
heros[3][1]=zy.Bing;
heros[3][2]=zy.Ding;
heros[3][3]=zy.Zhong;
heros[4][0]=zy.Jia;
heros[4][1]=" ";
heros[4][2]=" ";
heros[4][3]=zy.Yi;
}
}
import java.util.Scanner;
public class HuaRongDao {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
makePicture zy=new makePicture(); //初始位置
printPicture xx=new printPicture(zy); //显示初始界面
wayMove m=new wayMove();
while(true){
System.out.println("输入人物和移动方向:");
String person=input.nextLine(); //输入的是英雄第一个姓
String direction=input.nextLine(); //输入方向
m.way(person,direction); //如果可以移动,显示移动后的界面;如果不可以移动,显示无法移动
}
}
}
老师,我自己改了些要求,我输入的是英雄的第一个姓,然后再回车输入方向显示结果
如
马
下
甲
右
然后现在是有个问题,输入可以移动,而且也显示移动后的界面,但是却同样会输出一句“不能移动,请重新移动”,麻烦老师看一下
程序中如果有什么需要改进的,也请老师指出。
麻烦老师,谢谢
下面的文字哦,是我向我们java老师发的邮箱问的问题,我也一起移过来了,现在先不说这个。
在写这个的过程中。真的是要明白我们是为什么对象而写,对象要有什么功能,属性,之后实现也不是很难,而且更深的感受继承的应用。
然后今天又写了个简单的连连看,还是超级笨拙的连连看。
简单连连看
输入需要消除的汉字,有两个一样连一块的情况下即可消除。
可用二维数组完成。10*10
需要的类
存储汉字的类,判断汉字上下左右的类
主要功能:消除思路
根据目标汉字,对数组进行遍历,找个这个汉字后
依次和上下左右的汉字比较,如何有相同的,直接消除,变为空格(4个空格)
还是要注意越界问题。应该会有i-1 等等如此 越界问题需要注意。
public class judgeDirection {
String Up="上";
String Down="下";
String Left="左";
String Right="右";
wordMany zy=new wordMany();
public judgeDirection(){
}
public void remove(String goalWord) {
int i,j;
/*现在就开始写主要的功能语句*/
for (i=0;i<10;i++)
{
for(j=0;j<10;j++)
{
if (zy.word[i][j].equals(goalWord))
{
if (i-1>=0)
{
if(zy.word[i-1][j].equals(zy.word[i][j]))
{
zy.word[i-1][j]=" ";
zy.word[i][j]=" ";
break;
}
}
else if(j+1<=9)
{
if(zy.word[i][j+1].equals(zy.word[i][j]))
{
zy.word[i][j+1]=" ";
zy.word[i][j]=" ";
break;
}
}
else if(i+1<=9)
{
if(zy.word[i+1][j].equals(zy.word[i][j]))
{
zy.word[i+1][j]=" ";
zy.word[i][j]=" ";
break;
}
}
else if(j-1>=0)
{
if(zy.word[i][j-1].equals(zy.word[i][j]))
{
zy.word[i][j]=" ";
zy.word[i][j-1]=" ";
break;
}
}
}
}
}
new printUI(zy);
}
}
public class wordMany {
String[][] word=new String[10][10];
public wordMany(){
word[0][0]="金";
word[0][1]="土";
word[0][2]="水";
word[0][3]="土";
word[0][4]="火";
word[0][5]="土";
word[0][6]="金";
word[0][7]="水";
word[0][8]="水";
word[0][9]="金";
word[1][0]="金";
word[1][1]="火";
word[1][2]="水";
word[1][3]="土";
word[1][4]="金";
word[1][5]="火";
word[1][6]="金";
word[1][7]="土";
word[1][8]="金";
word[1][9]="水";
word[2][0]="金";
word[2][1]="水";
word[2][2]="金";
word[2][3]="土";
word[2][4]="火";
word[2][5]="土";
word[2][6]="火";
word[2][7]="土";
word[2][8]="水";
word[2][9]="水";
word[3][0]="金";
word[3][1]="土";
word[3][2]="土";
word[3][3]="火";
word[3][4]="金";
word[3][5]="土";
word[3][6]="木";
word[3][7]="土";
word[3][8]="木";
word[3][9]="土";
word[4][0]="木";
word[4][1]="木";
word[4][2]="金";
word[4][3]="土";
word[4][4]="金";
word[4][5]="木";
word[4][6]="金";
word[4][7]="土";
word[4][8]="金";
word[4][9]="土";
word[5][0]="水";
word[5][1]="水";
word[5][2]="火";
word[5][3]="木";
word[5][4]="金";
word[5][5]="土";
word[5][6]="火";
word[5][7]="土";
word[5][8]="金";
word[5][9]="土";
word[6][0]="水";
word[6][1]="火";
word[6][2]="火";
word[6][3]="土";
word[6][4]="金";
word[6][5]="土";
word[6][6]="木";
word[6][7]="土";
word[6][8]="火";
word[6][9]="土";
word[7][0]="火";
word[7][1]="金";
word[7][2]="金";
word[7][3]="土";
word[7][4]="金";
word[7][5]="火";
word[7][6]="金";
word[7][7]="水";
word[7][8]="金";
word[7][9]="土";
word[8][0]="木";
word[8][1]="木";
word[8][2]="金";
word[8][3]="火";
word[8][4]="金";
word[8][5]="水";
word[8][6]="金";
word[8][7]="水";
word[8][8]="水";
word[8][9]="土";
word[9][0]="木";
word[9][1]="土";
word[9][2]="土";
word[9][3]="火";
word[9][4]="金";
word[9][5]="火";
word[9][6]="金";
word[9][7]="木";
word[9][8]="木";
word[9][9]="土";
}
}
public class printUI {
int rows;
int cols;
public printUI(wordMany zy)
{
for (rows=0;rows<10;rows++)
{
for (cols=0;cols<10;cols++)
System.out.print(zy.word[rows][cols]);
System.out.println();
}
}
}
import java.util.Scanner;
public class Lianliankan {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
wordMany zy=new wordMany(); //初始界面
new printUI(zy); //出入初始界面
judgeDirection xx=new judgeDirection();
while(true)
{
System.out.println("请输入汉字");
String n=input.nextLine();
xx.remove(n); //开始消除
}
}
}
这里也附上我前面的思考和最后的代码,我也知道自己这很简单,但是,能写出来并且运行出来,还是很欣慰的。
但是我也知道未来要学的要写的程序远远不及这些简单,我现在也要沉住气,好好学慢慢学,争取以后作出更好的程序来