码迷,mamicode.com
首页 > 编程语言 > 详细

java涉嫌蛇和梯子的游戏

时间:2015-05-14 12:12:53      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:java   游戏   

技术分享


/**
 * @Author jiangfq
 * 
 */
package com.test;


import java.util.ArrayList;
import java.util.List;
import java.util.Random;


/**
 * @author jiangfq
 *
 */
public class Game {
private static int[][] me = new int[1][1];
private static List<Ladder> ladders = new ArrayList<Ladder>(4);
private static List<Snake> snakes = new ArrayList<Snake>(4);
private static int[][] datas = new int[5][5];

/**
* @Author jiangfq
*
*/
public static void main(String[] args) {
init();
startGame();

}


private static void init() {
me[0][0] = 1;
Random random = new Random();

int count = 1;
for(int i = 0; i < 5; i++) {
for(int j = 0; j < 5; j++) {
datas[i][j] = count++; 
}
}

for(int i = 0; i < 4; i++) {
int[][] ladderHeader = new int[1][1];
int[][] ladderTail = new int[1][1];
int hx = random.nextInt(5);
while(hx == 0) {
hx = random.nextInt(5);
}
int hy = random.nextInt(5);

int tx = random.nextInt(5);
while(tx >= hx) {
tx = random.nextInt(5);
}
int ty = random.nextInt(5);

ladderHeader[0][0] = datas[hx][hy];
ladderTail[0][0] = datas[tx][ty];

Ladder ladder = new Ladder(ladderHeader,ladderTail);
ladders.add(ladder);
}

for(int i = 0; i < 4; i++) {
int[][] snakeHeader = new int[1][1];
int[][] snakeTail = new int[1][1];
int hx = random.nextInt(5);
while(hx == 0) {
hx = random.nextInt(5);
}
int hy = random.nextInt(5);

int tx = random.nextInt(5);
while(tx >= hx) {
tx = random.nextInt(5);
}
int ty = random.nextInt(5);
snakeHeader[0][0] = datas[hx][hy];
snakeTail[0][0] = datas[tx][ty];
Snake snake = new Snake(snakeHeader,snakeTail);
snakes.add(snake);
}

}

private static void startGame() {
Random random = new Random();
boolean flag = false;

while(!flag) {
int x = random.nextInt(7);
while(x == 0) {
x = random.nextInt(7);
}
System.out.println("你可以跳:" + x + "步! 现在在" + me[0][0] + "  即将去" + (x + me[0][0]));
int t = x + me[0][0];
for(int i = 0; i < datas.length; i++) {
boolean isRun = false;
for(int j = 0; j < datas[i].length; j++) {
if(t >= 25) {
flag = true;
break;
}
if(datas[i][j] == t) {
for(Snake snake : snakes) {
int[][] headers = snake.getHeader();
if(headers[0][0] == t) {
int[][] tails = snake.getTail();
System.out.println("走" + x + "步太背了,遇到蛇头了:" + t + " 我要滑到蛇尾:" +tails[0][0]);
me[0][0] = tails[0][0];
isRun = true;
break;
}
}
for(Ladder ladder : ladders) {
int[][] tails = ladder.getTail();
if(tails[0][0] == t) {
int[][] headers = ladder.getHeader();
System.out.println("走" +x +"步太好了,遇到梯子了:" + t + " 我要爬上去了:" +headers[0][0]);
me[0][0] = headers[0][0];
isRun = true;
break;
}
}
if(!isRun) {
me[0][0] = t;
break;
}
}
}
if(flag || isRun) {
break;
}
}
}
System.out.println("我成功了!");
}
}


class Ladder {
private int[][] header;
private int[][] tail;
public Ladder(int[][] header,int[][] tail) {
this.header = header;
this.tail = tail;
}
public int[][] getHeader() {
return header;
}
public void setHeader(int[][] header) {
this.header = header;
}
public int[][] getTail() {
return tail;
}
public void setTail(int[][] tail) {
this.tail = tail;
}



}


class Snake {
private int[][] header;
private int[][] tail;
public Snake(int[][] header,int[][] tail) {
this.header = header;
this.tail = tail;
}
public int[][] getHeader() {
return header;
}
public void setHeader(int[][] header) {
this.header = header;
}
public int[][] getTail() {
return tail;
}
public void setTail(int[][] tail) {
this.tail = tail;
}
}



java涉嫌蛇和梯子的游戏

标签:java   游戏   

原文地址:http://blog.csdn.net/startupmount/article/details/45717031

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!