- <div class="blockcode"><blockquote><div class="blockcode"><blockquote><div class="blockcode"><blockquote><div class="blockcode"><blockquote>class JieMian {
- private JieMian() {};
- public static void Print(boolean[] lei, int[] guangBiao, int[] xianShi,
- int[] slw) {
- for (int i = 0, a = 0; i < 11; i++) // 局部变量 a 用来,判定光标的位置。
- {
- for (int ii = 0; ii < 11; ii++) {
- if (i == 0 || i == 10) // 第一行与最后一行。
- {
- if (ii == 10) {
- System.out.println("■"); // 最后一行,( ,1) 换行
- } else {
- System.out.print("■");
- }
- } else {
- if (ii == 0) // 第一列
- {
- System.out.print("■");
- } else if (ii == 10) // 最后一列
- {
- System.out.println("■");
- } else // else 为中间部分。变量a从这部分开始计数。〓↓〓↓〓↓〓↓〓↓〓↓〓
- {
- if (lei[a] == true) // 有雷
- {
- if (guangBiao[0] == a) // guangBiao==a,光标在的位置优先显示光标。
- System.out.print("※");
- else {
- if (xianShi[a] == -1) {
- System.out.print("▲");
- } else
- System.out.print("□");
- // System.out.print("●",0); //调试时,显示雷的位置。
- }
- } else if (lei[a] != true && slw[a] != 0) // 无雷,但附近有雷。
- {
- if (guangBiao[0] == a)
- System.out.print("※");
- else {
- if (xianShi[a] == -1) // 当xianShi[jiaoBiao]=-1,打开显示
- {
- System.out.print(slw[a]+""+slw[a]); // 显示附近雷的数目
- } else
- System.out.print("□"); // 默认用"□"隐藏。
- }
- } else // 空白处。
- {
- if (guangBiao[0] == a)
- System.out.print("※");
- else {
- if (xianShi[a] == -1)
- System.out.print(" ");
- else
- System.out.print("□");
- }
- }
- a++;
- // 放在else中间部分,81个元素。当guangBiao与a的值对应时就打印"※"。〓↑〓↑〓↑〓↑〓↑〓↑〓↑〓↑
- }
- }
- }
- }
- System.out.println();
- }
- }
复制代码
class FanWei {
private FanWei() {}
public static int[] getWASD(int jiDian) // jiDian→左右上下
{
int[] wasd = { 0, 0, 0, 0, 0, 0, 0, 0 };
switch (jiDian) {
case 0:
wasd[0] = 0; // 左上
wasd[1] = 0; // 上
wasd[2] = 0; // 右上
wasd[3] = 0; // 左
wasd[4] = 1; // 右
wasd[5] = 0; // 左下
wasd[6] = 9; // 下
wasd[7] = 10; // 右下
break;
case 8:
wasd[0] = 0; // 左上
wasd[1] = 0; // 上
wasd[2] = 0; // 右上
wasd[3] = -1; // 左
wasd[4] = 0; // 右
wasd[5] = 8; // 左下
wasd[6] = 9; // 下
wasd[7] = 0; // 右下
break;
case 72:
wasd[0] = 0; // 左上
wasd[1] = -9; // 上
wasd[2] = -8; // 右上
wasd[3] = 0; // 左
wasd[4] = 1; // 右
wasd[5] = 0; // 左下
wasd[6] = 0; // 下
wasd[7] = 0; // 右下
break;
case 80:
wasd[0] = -10; // 左上
wasd[1] = -9; // 上
wasd[2] = 0; // 右上
wasd[3] = -1; // 左
wasd[4] = 0; // 右
wasd[5] = 0; // 左下
wasd[6] = 0; // 下
wasd[7] = 0; // 右下
break;
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
wasd[0] = 0; // 左上
wasd[1] = 0; // 上
wasd[2] = 0; // 右上
wasd[3] = -1; // 左
wasd[4] = 1; // 右
wasd[5] = 8; // 左下
wasd[6] = 9; // 下
wasd[7] = 10; // 右下
break;
case 73:
case 74:
case 75:
case 76:
case 77:
case 78:
case 79:
wasd[0] = -10; // 左上
wasd[1] = -9; // 上
wasd[2] = -8; // 右上
wasd[3] = -1; // 左
wasd[4] = 1; // 右
wasd[5] = 0; // 左下
wasd[6] = 0; // 下
wasd[7] = 0; // 右下
break;
case 9:
case 18:
case 27:
case 36:
case 45:
case 54:
case 63:
wasd[0] = 0; // 左上
wasd[1] = -9; // 上
wasd[2] = -8; // 右上
wasd[3] = 0; // 左
wasd[4] = 1; // 右
wasd[5] = 0; // 左下
wasd[6] = 9; // 下
wasd[7] = 10; // 右下
break;
case 17:
case 26:
case 35:
case 44:
case 53:
case 62:
case 71:
wasd[0] = -10; // 左上
wasd[1] = -9; // 上
wasd[2] = 0; // 右上
wasd[3] = -1; // 左
wasd[4] = 0; // 右
wasd[5] = 8; // 左下
wasd[6] = 9; // 下
wasd[7] = 0; // 右下
break;
default:
wasd[0] = -10; // 左上
wasd[1] = -9; // 上
wasd[2] = -8; // 右上
wasd[3] = -1; // 左
wasd[4] = 1; // 右
wasd[5] = 8; // 左下
wasd[6] = 9; // 下
wasd[7] = 10; // 右下
break;
}
return wasd;
}
}
class FuJin {
private FuJin() {}
public static void leiShu(int[] slw, int leiDian) {
switch (leiDian) {
case 0:
slw[leiDian + 1]++;
slw[leiDian + 9]++;
slw[leiDian + 10]++;
break;
case 8:
slw[leiDian - 1]++;
slw[leiDian + 9]++;
slw[leiDian + 8]++;
break;
case 72:
slw[leiDian + 1]++;
slw[leiDian - 9]++;
slw[leiDian - 8]++;
break;
case 80:
slw[leiDian - 1]++;
slw[leiDian - 9]++;
slw[leiDian - 10]++;
break;
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
slw[leiDian - 1]++;
slw[leiDian + 1]++;
slw[leiDian + 8]++;
slw[leiDian + 9]++;
slw[leiDian + 10]++;
break;
case 73:
case 74:
case 75:
case 76:
case 77:
case 78:
case 79:
slw[leiDian - 1]++;
slw[leiDian + 1]++;
slw[leiDian - 8]++;
slw[leiDian - 9]++;
slw[leiDian - 10]++;
break;
case 9:
case 18:
case 27:
case 36:
case 45:
case 54:
case 63:
slw[leiDian - 9]++;
slw[leiDian + 9]++;
slw[leiDian - 8]++;
slw[leiDian + 1]++;
slw[leiDian + 10]++;
break;
case 17:
case 26:
case 35:
case 44:
case 53:
case 62:
case 71:
slw[leiDian - 9]++;
slw[leiDian + 9]++;
slw[leiDian - 10]++;
slw[leiDian - 1]++;
slw[leiDian + 8]++;
break;
default:
slw[leiDian - 8]++;
slw[leiDian - 9]++;
slw[leiDian - 10]++;
slw[leiDian + 8]++;
slw[leiDian + 9]++;
slw[leiDian + 10]++;
slw[leiDian - 1]++;
slw[leiDian + 1]++;
break;
} // 对雷附近雷数分析↑↑↑↑↑↑
return ;
}
}
class Move {
private Move() {};
// 用变量“guangBiao”的值(0~80),定义光标应移动到的位置。
public static void upW(boolean[] lei, int[] guangBiao, int[] xianShi,
int[] slw){
if (guangBiao[0] < 9)
guangBiao[0] += 72;
else
guangBiao[0] -= 9;
}
public static void leftA(boolean[] lei, int[] guangBiao, int[] xianShi,
int[] slw) {
if (guangBiao[0] == 0)
guangBiao[0] = 80;
else
guangBiao[0] -= 1;
}
public static void downS(boolean[] lei, int[] guangBiao, int[] xianShi,
int[] slw) {
if (guangBiao[0] > 71)
guangBiao[0] -= 72;
else
guangBiao[0] += 9;
}
public static void rightD(boolean[] lei, int[] guangBiao, int[] xianShi,
int[] slw) {
if (guangBiao[0] == 80)
guangBiao[0] = 0;
else
guangBiao[0] += 1;
}
}
class Victory {
private Victory() {};
public static void print() {
for (int i = 0, a = 0; i < 11; i++) {
for (int ii = 0; ii < 11; ii++) {
if (i == 0 || i == 10) // 第一行与最后一行。
{
if (ii == 10) {
System.out.println("■"); // 最后一列,( ,1) 换行
} else {
System.out.print("■");
}
} else {
if (ii == 0) // 第一列
{
System.out.print("■");
} else if (ii == 10) // 最后一列
{
System.out.println("■");
} else // else 为中间部分。变量a从这部分开始计数。〓↓〓↓〓↓〓↓〓↓〓↓〓
{
switch (a % 9) {
case 0:
case 8:
System.out.print("★");
break;
case 1:
System.out.print("我");
break;
case 2:
System.out.print("爱");
break;
case 3:
System.out.print("北");
break;
case 4:
System.out.print("京");
break;
case 5:
System.out.print("天");
break;
case 6:
System.out.print("安");
break;
case 7:
System.out.print("门");
break;
default:
break;
}
a++; // 变量 a 记录中间81个元素。〓↑〓↑〓↑〓↑〓↑〓↑〓↑〓↑
}
}
}
}
}
}
代码太长,没发成功,楼下补下。游戏规则基本同电脑扫雷,另:按“w、a、s、d”移动光标,按“y”踩非雷区,按“l”找到并标记雷,标记出十个雷胜利。
|