求java me 扫雷游戏代码 50
企鹅852057399,发来。除了扫雷其他游戏代码也行,多多益善,好的加100分,但要javame的。多谢...
企鹅852057399,发来。除了扫雷其他游戏代码也行,多多益善,好的加100分,但要java me的。多谢
展开
2个回答
展开全部
package com.tarena.jmine;
import java.util.Scanner;
//扫雷V1.0
public class JMine {
// 扫雷面板
static char[][] panel = new char[10][10];
// 保存每个位置周围8个方向中的地雷个数
static int[][] counts = new int[10][10];
// 保存地雷的数组
static char[][] lei = new char[10][10];
public static void main(String[] args) {
start();
print();
game();
}
public static void start() {
for (int i = 0; i < panel.length; i++) {
for (int j = 0; j < panel[i].length; j++) {
panel[i][j] = '*';
lei[i][j] = '*';
}
}
// 随机布雷0 1 2
for (int a = 0; a < 10; a++) {
// 0 0
int i = (int) (Math.random() * 10);
int j = (int) (Math.random() * 10);
//0 0
if (lei[i][j] == '雷') {
a--;
} else {
lei[i][j] = '雷';
}
}
//统计
for(int i=0;i<lei.length;i++){
for(int j=0;j<lei[i].length;j++){
counts[i][j]=count(i,j);
}
}
}
// 打印面板
public static void print() {
char[] c = "0123456789".toCharArray();
System.out.print(" ");
for (int i = 0; i < c.length; i++) {
System.out.print(c[i] + " ");
}
// 换行
System.out.println();
for (int i = 0; i < panel.length; i++) {
System.out.print(c[i] + " ");
for (int j = 0; j < panel[i].length; j++) {
System.out.print(panel[i][j] + " ");
}
// 换行
System.out.println();
}
}
public static void print1() {
char[] c = "0123456789".toCharArray();
System.out.print(" ");
for (int i = 0; i < c.length; i++) {
System.out.print(c[i] + " ");
}
// 换行
System.out.println();
for (int i = 0; i < panel.length; i++) {
System.out.print(c[i] + " ");
for (int j = 0; j < panel[i].length; j++) {
System.out.print(counts[i][j] + " ");
}
// 换行
System.out.println();
}
}
//统计每个位置周围8个方向的地雷个数
public static int count(int i,int j){
int count = 0;
// for(int a=(i-1);a<=(i+1);a++){
// for(int b=(j-1);b<=(j+1);b++){
// if(a>=0 && b>=0 && a<10 && b<10&&!(a==i&&b==j)&&lei[a][b]=='雷'){
// count++;
// }
// }
// }
if((i-1)>=0 &&(j-1)>=0&& lei[i-1][j-1]=='雷'){
count++;
}
if((i-1)>=0 && lei[i-1][j]=='雷'){
count++;
}
if((i-1)>=0 && (j+1)<10 && lei[i-1][j+1]=='雷'){
count++;
}
if((j-1)>=0 && lei[i][j-1]=='雷'){
count++;
}
if((j+1)<10 && lei[i][j+1]=='雷'){
count++;
}
if((i+1)<10 && (j-1)>=0 && lei[i+1][j-1]=='雷'){
count++;
}
if((i+1)<10 && lei[i+1][j]=='雷'){
count++;
}
if((i+1)<10 && (j+1)<10 && lei[i+1][j+1]=='雷'){
count++;
}
return count;
}
//排雷
public static void game(){
Scanner sca = new Scanner(System.in);
while(true){
System.out.println("请输入你要排雷的坐标:");
String str = sca.next();
char[] ij = str.toCharArray();
int i = format(ij[0]);
int j = format(ij[1]);
if(lei[i][j]=='雷'){
//踩到地雷
//循环遍历lei数组 把是地雷的数据赋值给panel数组
for(int a=0;a<lei.length;a++){
for(int b = 0;b<lei[a].length;b++){
if(lei[a][b]=='雷'){
panel[a][b]='雷';
}
}
}
print();
System.out.println("踩到地雷,游戏结束!");
break;
}else{
//不是地雷
//周围有地雷
if(counts[i][j] !=0){
panel[i][j] = (counts[i][j]+"").charAt(0);
}else{
panel[i][j] = '0';
move(i,j);
}
//周围没有地雷
print();
}
//循环遍历panel数组
//判断数组中的*号如果是10的话 赢了
}
}
//递归展开周围8个方向
public static void move(int i,int j){
for(int a=(i-1);a<=(i+1);a++){
for(int b=(j-1);b<=(j+1);b++){
if(a>=0 && b>=0 && a<10 && b<10 && !(a==i&&b==j) && panel[a][b] =='*'){
if(counts[a][b]==0){
panel[a][b]='0';
move(a,b);
}else{
panel[a][b]=(counts[a][b]+"").charAt(0);
}
}
}
}
}
public static int format(char c){
int a = -1;
return c-'0';
}
}
import java.util.Scanner;
//扫雷V1.0
public class JMine {
// 扫雷面板
static char[][] panel = new char[10][10];
// 保存每个位置周围8个方向中的地雷个数
static int[][] counts = new int[10][10];
// 保存地雷的数组
static char[][] lei = new char[10][10];
public static void main(String[] args) {
start();
print();
game();
}
public static void start() {
for (int i = 0; i < panel.length; i++) {
for (int j = 0; j < panel[i].length; j++) {
panel[i][j] = '*';
lei[i][j] = '*';
}
}
// 随机布雷0 1 2
for (int a = 0; a < 10; a++) {
// 0 0
int i = (int) (Math.random() * 10);
int j = (int) (Math.random() * 10);
//0 0
if (lei[i][j] == '雷') {
a--;
} else {
lei[i][j] = '雷';
}
}
//统计
for(int i=0;i<lei.length;i++){
for(int j=0;j<lei[i].length;j++){
counts[i][j]=count(i,j);
}
}
}
// 打印面板
public static void print() {
char[] c = "0123456789".toCharArray();
System.out.print(" ");
for (int i = 0; i < c.length; i++) {
System.out.print(c[i] + " ");
}
// 换行
System.out.println();
for (int i = 0; i < panel.length; i++) {
System.out.print(c[i] + " ");
for (int j = 0; j < panel[i].length; j++) {
System.out.print(panel[i][j] + " ");
}
// 换行
System.out.println();
}
}
public static void print1() {
char[] c = "0123456789".toCharArray();
System.out.print(" ");
for (int i = 0; i < c.length; i++) {
System.out.print(c[i] + " ");
}
// 换行
System.out.println();
for (int i = 0; i < panel.length; i++) {
System.out.print(c[i] + " ");
for (int j = 0; j < panel[i].length; j++) {
System.out.print(counts[i][j] + " ");
}
// 换行
System.out.println();
}
}
//统计每个位置周围8个方向的地雷个数
public static int count(int i,int j){
int count = 0;
// for(int a=(i-1);a<=(i+1);a++){
// for(int b=(j-1);b<=(j+1);b++){
// if(a>=0 && b>=0 && a<10 && b<10&&!(a==i&&b==j)&&lei[a][b]=='雷'){
// count++;
// }
// }
// }
if((i-1)>=0 &&(j-1)>=0&& lei[i-1][j-1]=='雷'){
count++;
}
if((i-1)>=0 && lei[i-1][j]=='雷'){
count++;
}
if((i-1)>=0 && (j+1)<10 && lei[i-1][j+1]=='雷'){
count++;
}
if((j-1)>=0 && lei[i][j-1]=='雷'){
count++;
}
if((j+1)<10 && lei[i][j+1]=='雷'){
count++;
}
if((i+1)<10 && (j-1)>=0 && lei[i+1][j-1]=='雷'){
count++;
}
if((i+1)<10 && lei[i+1][j]=='雷'){
count++;
}
if((i+1)<10 && (j+1)<10 && lei[i+1][j+1]=='雷'){
count++;
}
return count;
}
//排雷
public static void game(){
Scanner sca = new Scanner(System.in);
while(true){
System.out.println("请输入你要排雷的坐标:");
String str = sca.next();
char[] ij = str.toCharArray();
int i = format(ij[0]);
int j = format(ij[1]);
if(lei[i][j]=='雷'){
//踩到地雷
//循环遍历lei数组 把是地雷的数据赋值给panel数组
for(int a=0;a<lei.length;a++){
for(int b = 0;b<lei[a].length;b++){
if(lei[a][b]=='雷'){
panel[a][b]='雷';
}
}
}
print();
System.out.println("踩到地雷,游戏结束!");
break;
}else{
//不是地雷
//周围有地雷
if(counts[i][j] !=0){
panel[i][j] = (counts[i][j]+"").charAt(0);
}else{
panel[i][j] = '0';
move(i,j);
}
//周围没有地雷
print();
}
//循环遍历panel数组
//判断数组中的*号如果是10的话 赢了
}
}
//递归展开周围8个方向
public static void move(int i,int j){
for(int a=(i-1);a<=(i+1);a++){
for(int b=(j-1);b<=(j+1);b++){
if(a>=0 && b>=0 && a<10 && b<10 && !(a==i&&b==j) && panel[a][b] =='*'){
if(counts[a][b]==0){
panel[a][b]='0';
move(a,b);
}else{
panel[a][b]=(counts[a][b]+"").charAt(0);
}
}
}
}
}
public static int format(char c){
int a = -1;
return c-'0';
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不知道LZ有没有CSDN的账号,这个不要积分。50个javaME 游戏源码。免积分,望采纳。
http://download.csdn.net/download/wsad227/5529297
http://download.csdn.net/download/wsad227/5529297
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询