for-each循环:
for(int k:data){……}
二维数组:
int[][] a=new int[3][5];
int [][] a={
{1,2,3,4},
{1,2,3}, //最后一个逗号可以写,古老的传统
};
此时,a.length表示存几行,a[i].length表示第i行有几列。
井字棋游戏代码:
package hello;
import java.util.Scanner;
public class Hello {
public static void main(String[] args) {
// TODO Auto-generated method stub
//TODO井字棋
Scanner in =new Scanner(System.in);
int[][] m =new int[3][3];
int a,b,c,d;
while(true)
{
System.out.println("玩家一请输入下棋的横坐标:(0-2)");
a=in.nextInt();
System.out.println("玩家一请输入下棋的纵坐标:(0-2)");
b=in.nextInt();
m[a][b]=2;
System.out.println("玩家一下的位置是("+a+","+b+")");
if(m[0][0]==2&&m[0][1]==2&&m[0][2]==2) System.out.println("玩家一获胜。");
if(m[1][0]==2&&m[1][1]==2&&m[1][2]==2) System.out.println("玩家一获胜。");
if(m[2][0]==2&&m[2][1]==2&&m[2][2]==2) System.out.println("玩家一获胜。");
if(m[0][0]==2&&m[1][0]==2&&m[2][0]==2) System.out.println("玩家一获胜。");
if(m[0][1]==2&&m[0][2]==2&&m[0][3]==2) System.out.println("玩家一获胜。");
if(m[0][2]==2&&m[1][2]==2&&m[2][2]==2) System.out.println("玩家一获胜。");
if(m[0][0]==2&&m[1][1]==2&&m[2][2]==2) System.out.println("玩家一获胜。");
if(m[0][2]==2&&m[1][1]==2&&m[2][0]==2) System.out.println("玩家一获胜。");
System.out.println("玩家二请输入下棋的横坐标:(0-2)");
c=in.nextInt();
System.out.println("玩家二请输入下棋的纵坐标:(0-2)");
d=in.nextInt();
m[c][d]=3;
System.out.println("玩家二下的位置是("+c+","+d+")");
for(int i=0;i<3;i++)
{
for(int j=0;j<3;j++)
{
System.out.print(m[i][j]);
}
System.out.println("\n");
}
if(m[0][0]==3&&m[0][1]==3&&m[0][2]==3) System.out.println("玩家二获胜。");
if(m[1][0]==3&&m[1][1]==3&&m[1][2]==3) System.out.println("玩家二获胜。");
if(m[2][0]==3&&m[2][1]==3&&m[2][2]==3) System.out.println("玩家二获胜。");
if(m[0][0]==3&&m[1][0]==3&&m[2][0]==3) System.out.println("玩家二获胜。");
if(m[0][1]==3&&m[0][2]==3&&m[0][3]==3) System.out.println("玩家二获胜。");
if(m[0][2]==3&&m[1][2]==3&&m[2][2]==3) System.out.println("玩家二获胜。");
if(m[0][0]==3&&m[1][1]==3&&m[2][2]==3) System.out.println("玩家二获胜。");
if(m[0][2]==3&&m[1][1]==3&&m[2][0]==3) System.out.println("玩家二获胜。");
}
}
}
汉诺塔游戏:
编译不成功啊啊啊,每次都是执行一步就自己跳出循环了,找bug找了半天没找到,看看代码也没什么问题,,,不说了我的内心及其崩溃QAQ
package hello;
import java.util.Scanner;
public class Hello {
public static void main(String[] args) {
// TODO Auto-generated method stub
//TODO汉诺塔游戏
Scanner in=new Scanner (System.in);
System.out.println("请输入要搬运的小块的个数:");
int num=in.nextInt();
int a,b;
int temp = 0;
int cha=1;
int[][] m=new int[3][num];
for(int i=0;i<num;i++)
m[0][i]=i;
for(int i=1;i<3;i++)
{
for(int j=0;j<num;j++)
m[i][j]=99999;
}
for(int i=0;i<3;i++) {
for(int j=0;j<num;j++)
System.out.print(m[i][j]+" ");
System.out.print("\n");}
OUT:
while(true)
{
System.out.println("请输入要移动起始和终止的列数");
a=in.nextInt();
b=in.nextInt();
for(int i1=0;i1<num;i1++)
{
if(m[a][i1]!=99999)
{
temp=m[a][i1];
m[a][i1]=99999;
break;
}
}
if(m[b][num]==99999) {
m[b][num]=temp;
}
else
{
for(int i1=0;i1<num;i1++)
{
if(m[b][i1]!=99999&&temp<m[b][i1])
{
m[b][i1-1]=temp;
break;
}
}
}
for(int i1=2;i1<num;i1++)
{
if(m[2][i1]!=i1);
cha=0;
}
for(int i1=0;i1<3;i1++) {
for(int j=0;j<num;j++)
System.out.print(m[i1][j]);
System.out.print("\n");
}
if(cha==1)
{
System.out.println("成功!");
break OUT;
}
else
continue;
}
}
}
求大佬指正啊!!!不写出来我睡不着觉的!!!QAQ
真让人头秃。。