成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

斗獸棋java小程序代碼 斗獸棋python

斗獸棋怎么玩啊?

斗獸棋是一種運用階級吃子的版圖益智類游戲,游戲雙方在9x7格的版圖上操作八只以動物命名的棋子,其中任意一方棋子走進對方獸穴或吃光對方所有棋子者勝。

成都創(chuàng)新互聯(lián)公司公司2013年成立,先為米東等服務(wù)建站,米東等地企業(yè),進行企業(yè)商務(wù)咨詢服務(wù)。為米東企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

游戲中雙方各有八只棋子,依大小順序為象、獅、虎、豹、狗、狼、貓、鼠。大的可以吃小的,同類可以互吃,而鼠則可以吃象,象不能吃鼠。

斗獸棋是塵模一種棋類游戲,雙方有八只棋子,依大小順序為象、獅、虎、豹、犬、狼、貓、鼠。較大的可吃較小的,同類可以互吃,而鼠則可吃象,象不能吃鼠。動物走一格,前后左右都可以。

棋盤橫七列,縱九行。棋子放在格子中。雙方底在線各有三個陷阱(作品字排)和一個獸穴(于品字中間)。如果一方進入了對方的獸穴便勝出。任何一方都不能進入自己的獸穴。如果對方的獸類走進陷阱,己方任何一只獸都可以把它吃掉,如果敵獸進入陷阱,一回合后,自己的獸類不吃掉陷阱中的敵獸,當對方進入己方獸穴時,則本方輸。中間有兩條小河(跟湖差不多)。獅、虎可以橫直方向跳過河,而且可以直接把對岸的動物吃掉。只有鼠可以下水,在水中的鼠可以阻隔獅、虎跳河。兩鼠在水內(nèi)可以互吃。

部份斗獸棋的次序略有不同:象、獅、虎、豹、狼、狗、貓、鼠 。 亦有狗吃狼的。亦有用狐代替狼的:象、獅、虎、豹、狗、狐、貓、鼠。水里的不可直接吃陸上的,陸上的也不可吃水里的。

普通吃法

普通吃法:象〉獅〉虎〉豹〉狗(犬)〉狼〉貓〉鼠。

特殊吃法

斗獸棋特殊吃法說明如下:

1、鼠吃象法:八獸的吃法除按照大小次序外,惟鼠能吃象。

2、互吃法:凡同類相遇,可互相吃。

3、陷阱:棋盤設(shè)陷阱,專為限制敵獸的戰(zhàn)斗力(自己的獸,不受限制),敵獸走入陷阱,即失去戰(zhàn)斗力,本方的任意獸類都可以吃去陷阱里的獸類。每方在獸穴旁設(shè)三個陷阱。

4、 勝負:無論任何一方的獸走入敵方的獸穴就算勝利(自己的獸類不可以走入自己的獸穴),勝利方按級別取得贏分,失敗方扣2分。一方提議作和,對方同意此時作和,和局雙方不扣分。

在電腦游戲中的碰姿異常處理雙方走棋出現(xiàn)循環(huán)反復(fù)達三次以上,首先走棋的人如不變著作認輸論處。

2、游戲進行中不正常離局者,斷線次數(shù)加1次,并扣十分游戲金幣數(shù)。

3、若是某個玩家在規(guī)定時間內(nèi)沒有任何響應(yīng),游戲程序?qū)⑻嫠F逡徊剑⒃黾映瑫r一次,三次以上超時(不包括三次)作認輸論處。

4規(guī)則玩法

基本規(guī)則

棋盤:9x7格

斗獸棋棋盤和棋子:斗獸棋棋子共十六個,分為紅黃兩組,各八個,由雙方各執(zhí)一組,獸類是一樣。

分為八種:

紅派吵緩方:象、獅、虎、豹、狼、狗(犬)、貓、鼠

黃方:象、獅、虎、豹、狼、狗(犬)、貓、鼠

棋子活動的場所,叫做“棋盤”,在長方形的平面上,有橫九豎七共六十三個格子組成,棋子就擺在這些格子內(nèi)。棋盤內(nèi)有兩條小河,河上有三座橋可以通過。

基本玩法

每只動物每次走一方格,前后左右均可,但是獅、虎、鼠三種獸類,還有不同走法,說明如下:

1、獅虎跳河法:棋盤中有兩條河,獅虎過河,可以縱橫對直跳過,并且在跳得方格內(nèi),也能把敵方較小的獸類吃掉,但是如果老鼠在河里,把跳的路線阻隔就不能跳。

2、鼠入水中法:鼠過河可以走入水中(走法同陸地),如鼠在河里,陸地上的獸類都不能吃它,鼠亦不能吃陸地上的象。當兩鼠在河內(nèi)相遇,可以互吃。

急需用eclipse寫的小游戲代碼 比如貪吃蛇,五子棋,猜數(shù)字,俄羅斯方塊等的小游戲代碼

新建一個project,新建一個哪派鬧類

把代碼貼進去,找到運行(run)這個按鈕,按了就能運行,找不到的話快捷鍵是Ctrl + F11

import java.awt.Color;

import java.awt.Component;

import java.awt.Graphics;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.KeyEvent;

import java.awt.event.KeyListener;

import java.util.ArrayList;

import javax.swing.BorderFactory;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JMenu;

import javax.swing.JMenuBar;

import javax.swing.JMenuItem;

import javax.swing.JPanel;

public class SnakeGame {

public static void main(String[] args) {

SnakeFrame frame = new SnakeFrame();

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setVisible(true);

}

}

/羨悶/ ----------記錄狀態(tài)的線程李罩

class StatusRunnable implements Runnable {

public StatusRunnable(Snake snake, JLabel statusLabel, JLabel scoreLabel) {

this.statusLabel = statusLabel;

this.scoreLabel = scoreLabel;

this.snake = snake;

}

public void run() {

String sta = "";

String spe = "";

while (true) {

switch (snake.status) {

case Snake.RUNNING:

sta = "Running";

break;

case Snake.PAUSED:

sta = "Paused";

break;

case Snake.GAMEOVER:

sta = "GameOver";

break;

}

statusLabel.setText(sta);

scoreLabel.setText("" + snake.score);

try {

Thread.sleep(100);

} catch (Exception e) {

}

}

}

private JLabel scoreLabel;

private JLabel statusLabel;

private Snake snake;

}

// ----------蛇運動以及記錄分數(shù)的線程

class SnakeRunnable implements Runnable {

public SnakeRunnable(Snake snake, Component component) {

this.snake = snake;

this點抗 ponent = component;

}

public void run() {

while (true) {

try {

snake.move();

component.repaint();

Thread.sleep(snake.speed);

} catch (Exception e) {

}

}

}

private Snake snake;

private Component component;

}

class Snake {

boolean isRun;// ---------是否運動中

ArrayListNode body;// -----蛇體

Node food;// --------食物

int derection;// --------方向

int score;

int status;

int speed;

public static final int SLOW = 500;

public static final int MID = 300;

public static final int FAST = 100;

public static final int RUNNING = 1;

public static final int PAUSED = 2;

public static final int GAMEOVER = 3;

public static final int LEFT = 1;

public static final int UP = 2;

public static final int RIGHT = 3;

public static final int DOWN = 4;

public Snake() {

speed = Snake.SLOW;

score = 0;

isRun = false;

status = Snake.PAUSED;

derection = Snake.RIGHT;

body = new ArrayListNode();

body.add(new Node(60, 20));

body.add(new Node(40, 20));

body.add(new Node(20, 20));

makeFood();

}

// ------------判斷食物是否被蛇吃掉

// -------如果食物在蛇運行方向的正前方,并且與蛇頭接觸,則被吃掉

private boolean isEaten() {

Node head = body.get(0);

if (derection == Snake.RIGHT (head.x + Node.W) == food.x

head.y == food.y)

return true;

if (derection == Snake.LEFT (head.x - Node.W) == food.x

head.y == food.y)

return true;

if (derection == Snake.UP head.x == food.x

(head.y - Node.H) == food.y)

return true;

if (derection == Snake.DOWN head.x == food.x

(head.y + Node.H) == food.y)

return true;

else

return false;

}

// ----------是否碰撞

private boolean isCollsion() {

Node node = body.get(0);

// ------------碰壁

if (derection == Snake.RIGHT node.x == 280)

return true;

if (derection == Snake.UP node.y == 0)

return true;

if (derection == Snake.LEFT node.x == 0)

return true;

if (derection == Snake.DOWN node.y == 380)

return true;

// --------------蛇頭碰到蛇身

Node temp = null;

int i = 0;

for (i = 3; i body.size(); i++) {

temp = body.get(i);

if (temp.x == node.x temp.y == node.y)

break;

}

if (i body.size())

return true;

else

return false;

}

// -------在隨機的地方產(chǎn)生食物

public void makeFood() {

Node node = new Node(0, 0);

boolean isInBody = true;

int x = 0, y = 0;

int X = 0, Y = 0;

int i = 0;

while (isInBody) {

x = (int) (Math.random() * 15);

y = (int) (Math.random() * 20);

X = x * Node.W;

Y = y * Node.H;

for (i = 0; i body.size(); i++) {

if (X == body.get(i).x Y == body.get(i).y)

break;

}

if (i body.size())

isInBody = true;

else

isInBody = false;

}

food = new Node(X, Y);

}

// ---------改變運行方向

public void changeDerection(int newDer) {

if (derection % 2 != newDer % 2)// -------如果與原來方向相同或相反,則無法改變

derection = newDer;

}

public void move() {

if (isEaten()) {// -----如果食物被吃掉

body.add(0, food);// --------把食物當成蛇頭成為新的蛇體

score += 10;

makeFood();// --------產(chǎn)生食物

} else if (isCollsion())// ---------如果碰壁或自身

{

isRun = false;

status = Snake.GAMEOVER;// -----結(jié)束

} else if (isRun) {// ----正常運行(不吃食物,不碰壁,不碰自身)

Node node = body.get(0);

int X = node.x;

int Y = node.y;

// ------------蛇頭按運行方向前進一個單位

switch (derection) {

case 1:

X -= Node.W;

break;

case 2:

Y -= Node.H;

break;

case 3:

X += Node.W;

break;

case 4:

Y += Node.H;

break;

}

body.add(0, new Node(X, Y));

// ---------------去掉蛇尾

body.remove(body.size() - 1);

}

}

}

// ---------組成蛇身的單位,食物

class Node {

public static final int W = 20;

public static final int H = 20;

int x;

int y;

public Node(int x, int y) {

this.x = x;

this.y = y;

}

}

// ------畫板

class SnakePanel extends JPanel {

Snake snake;

public SnakePanel(Snake snake) {

this.snake = snake;

}

public void paintComponent(Graphics g) {

super.paintComponent(g);

Node node = null;

for (int i = 0; i snake.body.size(); i++) {// ---紅藍間隔畫蛇身

if (i % 2 == 0)

g.setColor(Color.blue);

else

g.setColor(Color.yellow);

node = snake.body.get(i);

g.fillRect(node.x, node.y, node.H, node.W);// *******************試用*********************

}

node = snake.food;

g.setColor(Color.red);

g.fillRect(node.x, node.y, node.H, node.W);

}

}

class SnakeFrame extends JFrame {

private JLabel statusLabel;

private JLabel speedLabel;

private JLabel scoreLabel;

private JPanel snakePanel;

private Snake snake;

private JMenuBar bar;

JMenu gameMenu;

JMenu helpMenu;

JMenu speedMenu;

JMenuItem newItem;

JMenuItem pauseItem;

JMenuItem beginItem;

JMenuItem helpItem;

JMenuItem aboutItem;

JMenuItem slowItem;

JMenuItem midItem;

JMenuItem fastItem;

public SnakeFrame() {

init();

ActionListener l = new ActionListener() {

public void actionPerformed(ActionEvent e) {

if (e.getSource() == pauseItem)

snake.isRun = false;

if (e.getSource() == beginItem)

snake.isRun = true;

if (e.getSource() == newItem) {

newGame();

}

// ------------菜單控制運行速度

if (e.getSource() == slowItem) {

snake.speed = Snake.SLOW;

speedLabel.setText("Slow");

}

if (e.getSource() == midItem) {

snake.speed = Snake.MID;

speedLabel.setText("Mid");

}

if (e.getSource() == fastItem) {

snake.speed = Snake.FAST;

speedLabel.setText("Fast");

}

}

};

pauseItem.addActionListener(l);

beginItem.addActionListener(l);

newItem.addActionListener(l);

aboutItem.addActionListener(l);

slowItem.addActionListener(l);

midItem.addActionListener(l);

fastItem.addActionListener(l);

addKeyListener(new KeyListener() {

public void keyPressed(KeyEvent e) {

switch (e.getKeyCode()) {

// ------------方向鍵改變蛇運行方向

case KeyEvent.VK_DOWN://

snake.changeDerection(Snake.DOWN);

break;

case KeyEvent.VK_UP://

snake.changeDerection(Snake.UP);

break;

case KeyEvent.VK_LEFT://

snake.changeDerection(Snake.LEFT);

break;

case KeyEvent.VK_RIGHT://

snake.changeDerection(Snake.RIGHT);

break;

// 空格鍵,游戲暫停或繼續(xù)

case KeyEvent.VK_SPACE://

if (snake.isRun == true) {

snake.isRun = false;

snake.status = Snake.PAUSED;

break;

}

if (snake.isRun == false) {

snake.isRun = true;

snake.status = Snake.RUNNING;

break;

}

}

}

public void keyReleased(KeyEvent k) {

}

public void keyTyped(KeyEvent k) {

}

});

}

private void init() {

speedLabel = new JLabel();

snake = new Snake();

setSize(380, 460);

setLayout(null);

this.setResizable(false);

bar = new JMenuBar();

gameMenu = new JMenu("Game");

newItem = new JMenuItem("New Game");

gameMenu.add(newItem);

pauseItem = new JMenuItem("Pause");

gameMenu.add(pauseItem);

beginItem = new JMenuItem("Continue");

gameMenu.add(beginItem);

helpMenu = new JMenu("Help");

aboutItem = new JMenuItem("About");

helpMenu.add(aboutItem);

speedMenu = new JMenu("Speed");

slowItem = new JMenuItem("Slow");

fastItem = new JMenuItem("Fast");

midItem = new JMenuItem("Middle");

speedMenu.add(slowItem);

speedMenu.add(midItem);

speedMenu.add(fastItem);

bar.add(gameMenu);

bar.add(helpMenu);

bar.add(speedMenu);

setJMenuBar(bar);

statusLabel = new JLabel();

scoreLabel = new JLabel();

snakePanel = new JPanel();

snakePanel.setBounds(0, 0, 300, 400);

snakePanel.setBorder(BorderFactory.createLineBorder(Color.darkGray));

add(snakePanel);

statusLabel.setBounds(300, 25, 60, 20);

add(statusLabel);

scoreLabel.setBounds(300, 20, 60, 20);

add(scoreLabel);

JLabel temp = new JLabel("狀態(tài)");

temp.setBounds(310, 5, 60, 20);

add(temp);

temp = new JLabel("分數(shù)");

temp.setBounds(310, 105, 60, 20);

add(temp);

temp = new JLabel("速度");

temp.setBounds(310, 55, 60, 20);

add(temp);

speedLabel.setBounds(310, 75, 60, 20);

add(speedLabel);

}

private void newGame() {

this.remove(snakePanel);

this.remove(statusLabel);

this.remove(scoreLabel);

speedLabel.setText("Slow");

statusLabel = new JLabel();

scoreLabel = new JLabel();

snakePanel = new JPanel();

snake = new Snake();

snakePanel = new SnakePanel(snake);

snakePanel.setBounds(0, 0, 300, 400);

snakePanel.setBorder(BorderFactory.createLineBorder(Color.darkGray));

Runnable r1 = new SnakeRunnable(snake, snakePanel);

Runnable r2 = new StatusRunnable(snake, statusLabel, scoreLabel);

Thread t1 = new Thread(r1);

Thread t2 = new Thread(r2);

t1.start();

t2.start();

add(snakePanel);

statusLabel.setBounds(310, 25, 60, 20);

add(statusLabel);

scoreLabel.setBounds(310, 125, 60, 20);

add(scoreLabel);

}

}

斗獸棋的玩法

斗獸棋的正確玩法:游戲開始時,紅方先走,然后輪饑畢流走棋。每次可走動一只獸,每只獸每次走一方格,除己方獸穴和小河以外,前后左右均可。

斗獸棋是一款非常有趣的對戰(zhàn)皮手棋類游戲,游戲的基本還是利用傳統(tǒng)的對戰(zhàn)的方式,但是,游戲卻沒有用傳統(tǒng)的文字作為棋子,而是創(chuàng)造性的將棋子改成了動物,真正的符合了斗獸棋這個名字,趣味無窮。 游戲分為紅藍兩方,每方8顆棋子,棋子按照大小順序象獅虎豹狼狗貓鼠進行吃子,鼠能吃象。誰的燃肢嫌棋子最先被吃完,誰就輸?shù)袅诉@場比賽

當前標題:斗獸棋java小程序代碼 斗獸棋python
網(wǎng)頁網(wǎng)址:http://jinyejixie.com/article40/ddpihho.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化、自適應(yīng)網(wǎng)站品牌網(wǎng)站建設(shè)、云服務(wù)器、網(wǎng)站排名域名注冊

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設(shè)
辽源市| 漯河市| 仁寿县| 安吉县| 修文县| 上高县| 阿荣旗| 酉阳| 台中市| 望谟县| 汨罗市| 寻乌县| 科技| 潮州市| 琼中| 建宁县| 宜川县| 通河县| 遵义市| 武威市| 乡宁县| 辉南县| 东阳市| 锦屏县| 东兰县| 精河县| 双鸭山市| 西宁市| 新营市| 阜新市| 江城| 林西县| 中阳县| 玉屏| 尉犁县| 搜索| 六枝特区| 应用必备| 宝清县| 安塞县| 都昌县|