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;

}

}

时间: 2024-11-19 12:34:50

java涉嫌蛇和梯子的游戏的相关文章

蛇与梯子游戏 (BFS + priority_queue)

"蛇和梯子"是一个在NXN的(0<N<=20)的方格棋盘上进行的游戏(如下图) 方格从1到N的平方编号.除了第1号和最后编号的方格,其它的格子都有可能有蛇或梯子存在(蛇和梯子的数量及具体位置由输入确定,它们的数量都在100之内并且蛇和梯子不能临近放置,也就是在任何了放置两者首尾的方格之间至少还有一个未放置任何东西的格子).开始的时候玩家把他们的标志物放在1号格子中.玩家轮流以扔骰子的方式移动他们的指示物.如果一个指示物到达了一条蛇的嘴部,则把它移回蛇的尾部.如果一个指示物到

Java小项目之:拼图游戏!

Java小项目之:拼图游戏!今天教大家用java做出一个拼图游戏,很适合java初学者练手.所用素材: 部分代码: package picture_mosical; import java.awt.Graphics; import java.awt.Image; import java.awt.Toolkit; import java.awt.image.BufferedImage; import java.awt.image.CropImageFilter; import java.awt.i

Java贪吃蛇小游戏

一.团队课程设计博客链接 二.个人负责模块或任务说明 1)游戏主体 a.主界面 代码分析: ●Game类: (1)蛇移动 (2)添加身体 (3)加速 (4)是否撞墙 (5)蛇身缩短: (6)设置全局字体 (7)游戏结束 b.配置文件 (1)获取配置文件信息 (2)更新配置文件信息 ●Draw类:用于绘制蛇身和主界面 (1)绘制蛇身 (2)绘制食物 食物闪烁 (3)绘制分数 2)音效 Music类: 播放音乐 三.自己的代码提交记录截图 四.自己负责模块或任务详细说明 五.课程设计感想 原文地址:

java贪吃蛇

这个贪吃蛇有很多功能没有实现,比如说穿墙(本来可以实现,但是穿墙后,就会出现坐标混乱,吃不到食物了),还有碰到自己的身体死亡的情况也没有实现,现在我知道如何判断是否碰到身体,但是,我不知道,如何处理碰到身体后的情况.这些问题我想过段时间去解决. 1 import java.awt.Color; 2 import java.awt.event.KeyAdapter; 3 import java.awt.event.KeyEvent; 4 import java.util.LinkedList; 5

Java GUI 基础 Eight Puzzle (拼图游戏)

很简单使用java GUI 制作一个简单的拼图游戏 // main package HW1; import java.io.IOException; import javax.swing.Icon; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JLabel; public class HW1 extends JFrame{ /** * */ public HW1_0586(String s

java 第61节 石头剪刀布小游戏

2016-07-02 package com.java1995; public class Player { // 封装 private String name;// 玩家姓名 private int score;// 积分 // 构造器 public Player(String name, int score) { super(); this.name = name; this.score = score; } // 实现封装 public String getName() { return

【Java】一个有趣的数字游戏。

1 package com.xt.homework.hw09; 2 import java.util.Scanner; 3 /** 4 * 4. 猜数字游戏.随机产生一个1-100的整数, 5 * 让用户去猜,猜大了(或者猜小了)都有提示: 6 * 直到用户猜对,提示成功,程序结束. 7 * 8 * @author 天耀二期 9 * 杨勃隆 10 */ 11 public class HomeWork04 { 12 public static void main(String[] args){

JAVA程序设计(13.2)---- Craps赌博游戏设计,综合运用练习

面对对象  监听器 继承 接口 设置窗口 设置图片 设置按钮 设置文字框 随机数 Craps赌博游戏 投2颗色子 ,首轮 7 ,11为玩家胜利 , 2,3,12为庄家胜利:之后玩家投到7就输 ,投到和首轮一样的点数 就赢: 1.先做色子 package com.lovo.homework; import java.awt.Graphics; import java.awt.Image; import javax.swing.ImageIcon; /** * 类:骰子 * @author Abe

java swing版本 贪食蛇 小游戏

package test002; import java.awt.Color; import java.awt.Graphics; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import java.io.Serializable; import java.util.LinkedList; import java.util.Random; import java.util.Timer; import jav