java中坦克大戰(zhàn)的代碼 java tank程序代碼

java課程設(shè)計(jì)創(chuàng)意小游戲

① 求Java課程設(shè)計(jì)—小游戲(含源代碼)

創(chuàng)新互聯(lián)建站堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:做網(wǎng)站、成都網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的上林網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

//hi./srxboys/item/8ce4743da1adc991c2cf29c4

Tank——坦克大戰(zhàn)(簡潔版)源代碼-------(此文檔是自己在韓順平教程總結(jié)而來)

*功能:1.防止敵人的坦克重疊運(yùn)動(dòng)

*(決定把判斷是否碰撞的函數(shù)寫到EnemyTank類)

*2.可以分關(guān)

*2.1(做一個(gè)開始的Panel,它是一個(gè)空的)

*2.2開始字體閃爍

*3.可以在玩游戲的時(shí)候,暫停和繼續(xù)

*3.1當(dāng)用戶點(diǎn)擊暫停時(shí),子彈的速度和坦克速度設(shè)為0,并讓坦克的方向

*不要發(fā)生變化。

*4.可以記錄玩家的成績

*4.1用文件流的方式(小游戲)[大游戲是用的數(shù)據(jù)庫cs,bs結(jié)構(gòu),三國]

*4.2單寫一個(gè)記錄類,完成對玩家的記錄

*4.3先完成保存共擊毀了多少輛敵人坦克的功能

*4.4存盤退出游戲,可以記錄當(dāng)時(shí)的敵人的坦克坐標(biāo),并可以恢復(fù)

*5.java如何操作聲音文件

*/

② JAVA課程設(shè)計(jì),求個(gè)能用eclipse實(shí)現(xiàn)小游戲或小程序的源代碼。感激不盡

你自己來去下自載吧,這里面都有 //oschina/project/java

③ 用JAVA編寫一個(gè)小游戲

前天寫的猜數(shù)字游戲,yongi控制猜測次數(shù),有詳細(xì)解析,用黑窗口可以直接運(yùn)行,

我試驗(yàn)過了,沒問題

import javax.swing.Icon;

import javax.swing.JOptionPane;

public class CaiShuZi4JOptionPane {

/**

* @param args

*/

public static void main(String[] args) {

Icon icon = null;

boolean bl = false;

int put = 0;

int c = (int) (((Math.random())*100)+1); //獲取一個(gè)1-100的隨機(jī)數(shù)

System.out.println("你獲取的隨機(jī)數(shù)是:"+c); //打印你的隨機(jī)數(shù)字

String str1 = (String) JOptionPane.showInputDialog(null,"請輸入你的猜測數(shù)字(1-100): ","猜數(shù)字游戲",JOptionPane.PLAIN_MESSAGE,icon,null,"在這輸入"); //第一次輸入你的猜測數(shù)字

if(str1==null){

JOptionPane.showMessageDialog(null, "你已經(jīng)取消了本次游戲"); //如果你點(diǎn)取消那么本次游戲結(jié)束

}else{

bl = num(str1); //判斷是輸入的是不是數(shù)字或者是整數(shù)

if(true==bl){ //如果是數(shù)字的話進(jìn)入與隨機(jī)數(shù)比較的程序

System.out.println("你輸入的數(shù)字是:"+str1); //打印你輸入的數(shù)字

put = Integer.valueOf(str1);

for(int i = 4;i 0;i--){ //i是你可以猜測的次數(shù)

if(put==c){

JOptionPane.showMessageDialog(null, "恭喜你猜對了,正確答案是:"+c+"。"); //如果你猜對了就直接結(jié)束循環(huán)

break;

}else if(putc){ //如果輸大了就讓你再次從新輸入

str1 = (String) JOptionPane.showInputDialog(null,"你的輸入過大。你還有"+i+"次機(jī)會,請重新輸入: ","猜數(shù)字游戲",JOptionPane.PLAIN_MESSAGE,icon,null,"在這輸入");

if(str1==null){

JOptionPane.showMessageDialog(null, "你已經(jīng)取消了本次輸入");

break;

}else{

bl =num(str1);

if(true==bl){

put = Integer.valueOf(str1);

}else{

JOptionPane.showMessageDialog(null, "你的輸入不正確,請重新輸入");

}

}

}else if(putc){ //如果你輸小了也讓你從新輸入

str1 = (String) JOptionPane.showInputDialog(null,"你的輸入過小。你還有"+i+"次機(jī)會,請重新輸入: ","猜數(shù)字游戲",JOptionPane.PLAIN_MESSAGE,icon,null,"在這輸入");

if(str1==null){

JOptionPane.showMessageDialog(null, "你已經(jīng)取消了本次輸入");

break;

}else{

bl =num(str1);

if(true==bl){

put = Integer.valueOf(str1);

}else{

JOptionPane.showMessageDialog(null, "你的輸入不正確,請重新輸入");

}

}

}

}

}else if(bl==false){ //這個(gè) 是你第一次如果填寫的不是數(shù)字的話也會結(jié)束本次游戲

JOptionPane.showMessageDialog(null, "請您下次按要求填寫。本次游戲結(jié)束");

}

if(true==bl c!=put){ //如果你i次都沒猜對,那么就直接告訴你這個(gè)數(shù)十什么

JOptionPane.showMessageDialog(null, "很遺憾你沒能猜對,這個(gè)數(shù)字是:"+c+".");

}

}

}

public static boolean num(String value){ //一個(gè)靜態(tài)方法,判斷你輸入的是不是數(shù)字

try {

Integer.parseInt(value);

return true;

} catch (Exception e) {

return false;

}

}

}

④ 用java制作一個(gè)小游戲 教學(xué)

static Scanner in =new Scanner(System.in);

public static int aaa(){

int c = 0;

while(true){

try {

if(c999c10000){

break;

}else{

// System.out.println("請輸入4位整數(shù)");

c= in.nextInt();

if(c999c10000){

break;

}else{

System.out.println("輸入有誤,請重新輸入4位整數(shù)");

}

}

} catch (Exception e) {

System.out.println("請輸入整數(shù)");

c= in.nextInt();

}

}

//in.close();

return c;

}

public static void cai(){

//Scanner sa =new Scanner(System.in);

int haoma=(int)(Math.random()*10000);

if(haoma999)

{

haoma = Integer.parseInt(String.valueOf(haoma)+"0");

}

System.out.println(haoma);

System.out.println("請輸入一位4位整數(shù)");

int aa = 0;

while(true){

aa= aaa();

String pd=String.valueOf(aa);

if(pd.length()!=4){

aa = aaa();

}else{

break;

}

}

while(true){

if(aa==haoma){

System.out.println("你猜對了,可以去買彩票了");

}else{

System.out.println("抱歉 , 你猜錯(cuò)了");

}

System.out.println("是否繼續(xù)1繼續(xù) 其他結(jié)束");

try {

int ss = in.nextInt();

if(ss==1){

cai();

}else{

break;

}

} catch (Exception e) {

in.close();

break;

}

}

}

public static void main(String[] args) {

System.out.println("歡迎來到猜號小游戲");

cai();

System.out.println("over");

}

⑤ 想做一個(gè)java小游戲 誰能給幾個(gè)創(chuàng)意啊 注意 是創(chuàng)意!?。。?! 不是已有的有創(chuàng)意的小游戲

比如有東西扔過來,選擇吃掉或者躲開,考反應(yīng)吧。

⑥ 急求java課程設(shè)計(jì),內(nèi)容可以是小游戲的,如(迷宮,計(jì)算器,停車場之戀的),要能運(yùn)行,謝謝

俄羅斯方塊,貪吃蛇。推箱子。

⑦ 求JAVA期末課程設(shè)計(jì),要那種開發(fā)的小項(xiàng)目軟件??梢允窍裼浭卤灸欠N,也可以是小游戲那種。

網(wǎng)上搜不到的一般是不可共享的資源,建議去圖書館找本專門針對課程設(shè)計(jì)的書,里面的資料很豐富,你可以照著做一下,并作功能上適當(dāng)?shù)脑鰷p,這樣網(wǎng)上就很難找到了

(100分)Java寫“坦克大戰(zhàn)”

package com.bjsxt.tank;

import java.awt.Color;

import java.awt.Frame;

import java.awt.Graphics;

import java.awt.Image;

import java.awt.event.KeyAdapter;

import java.awt.event.KeyEvent;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

import java.io.IOException;

import java.util.ArrayList;

import java.util.List;

import java.util.Properties;

/**

* 這個(gè)類的作用是坦克游戲的主窗口

* @author mashibing

*

*/

public class TankClient extends Frame {

/**

* 整個(gè)坦克游戲的寬度

*/

public static final int GAME_WIDTH = 800;

public static final int GAME_HEIGHT = 600;

Tank myTank = new Tank(50, 50, true, Direction.STOP, this);

Wall w1 = new Wall(100, 200, 20, 150, this), w2 = new Wall(300, 100, 300, 20, this);

ListExplode explodes = new ArrayListExplode();

ListMissile missiles = new ArrayListMissile();

ListTank tanks = new ArrayListTank();

Image offScreenImage = null;

Blood b = new Blood();

public void paint(Graphics g) {

/*

* 指明子彈-爆炸-坦克的數(shù)量

* 以及坦克的生命值

*/

g.drawString("missiles count:" + missiles.size(), 10, 50);

g.drawString("explodes count:" + explodes.size(), 10, 70);

g.drawString("tanks count:" + tanks.size(), 10, 90);

g.drawString("tanks life:" + myTank.getLife(), 10, 110);

if(tanks.size() = 0) {

for(int i=0; iInteger.parseInt(PropertyMgr.getProperty("reProduceTankCount")); i++) {

tanks.add(new Tank(50 + 40*(i+1), 50, false, Direction.D, this));

}

}

for(int i=0; imissiles.size(); i++) {

Missile m = missiles.get(i);

m.hitTanks(tanks);

m.hitTank(myTank);

m.hitWall(w1);

m.hitWall(w2);

m.draw(g);

//if(!m.isLive()) missiles.remove(m);

//else m.draw(g);

}

for(int i=0; iexplodes.size(); i++) {

Explode e = explodes.get(i);

e.draw(g);

}

for(int i=0; itanks.size(); i++) {

Tank t = tanks.get(i);

t.collidesWithWall(w1);

t.collidesWithWall(w2);

t.collidesWithTanks(tanks);

t.draw(g);

}

myTank.draw(g);

myTank.eat(b);

w1.draw(g);

w2.draw(g);

b.draw(g);

}

public void update(Graphics g) {

if(offScreenImage == null) {

offScreenImage = this.createImage(GAME_WIDTH, GAME_HEIGHT);

}

Graphics gOffScreen = offScreenImage.getGraphics();

Color c = gOffScreen.getColor();

gOffScreen.setColor(Color.BLACK);

gOffScreen.fillRect(0, 0, GAME_WIDTH, GAME_HEIGHT);

gOffScreen.setColor(c);

paint(gOffScreen);

g.drawImage(offScreenImage, 0, 0, null);

}

/**

* 本方法顯示坦克主窗口

*

*/

public void lauchFrame() {

int initTankCount = Integer.parseInt(PropertyMgr.getProperty("initTankCount"));

for(int i=0; iinitTankCount; i++) {

tanks.add(new Tank(50 + 40*(i+1), 50, false, Direction.D, this));

}

//this.setLocation(400, 300);

this.setSize(GAME_WIDTH, GAME_HEIGHT);

this.setTitle("TankWar");

this.addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent e) {

System.exit(0);

}

});

this.setResizable(false);

this.setBackground(Color.GREEN);

this.addKeyListener(new KeyMonitor());

setVisible(true);

new Thread(new PaintThread()).start();

}

public static void main(String[] args) {

TankClient tc = new TankClient();

tc.lauchFrame();

}

private class PaintThread implements Runnable {

public void run() {

while(true) {

repaint();

try {

Thread.sleep(50);

} catch (InterruptedException e) {

e.printStackTrace();

}

}

}

}

private class KeyMonitor extends KeyAdapter {

public void keyReleased(KeyEvent e) {

myTank.keyReleased(e);

}

public void keyPressed(KeyEvent e) {

myTank.keyPressed(e);

}

}

}

java之坦克大戰(zhàn)

最近學(xué)習(xí)不喜歡在算法上磕太長時(shí)間了,所以我就開始寫小游戲了,也算是給自己一個(gè)目標(biāo),寫個(gè)游戲里面需要的東西很多,就第一項(xiàng)窗口的建造而言,JFreme類的使用中有很多的方法需要記憶,此外對于類與對象的使用也占了很大的部分。

我是觀看教程然后學(xué)習(xí)制作坦克大戰(zhàn),最開始是制作窗口,用到了一個(gè)類JFrame下面是一些使用方法。

jf.setTitle("我是標(biāo)題鴨?。?");(制作標(biāo)題)

jf.setSize(20,10)//設(shè)置了一個(gè)長為20,高為10的框圖。

jf.setBounds(1,2,20,10)//設(shè)置一個(gè)左上角頂點(diǎn)在(1,2),長為20,寬為10的窗體。

jf.setLocation(1,2)//設(shè)置一個(gè)左上角頂點(diǎn)在(1,2)的窗體。

jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);(這樣設(shè)置會導(dǎo)致你在關(guān)閉窗體的同時(shí),終止程序的運(yùn)行,會帶來一定的便利性。)

jf.setVisible(true);(窗體在默認(rèn)情況下是不可見的,只在后臺運(yùn)行,只有像這樣設(shè)置可見后,在程序運(yùn)行的時(shí)候,窗體才會出現(xiàn)。)

然后是背景窗口的上色與選項(xiàng)字體的添加, setColor方法:設(shè)置顏色, 該方法用于設(shè)置畫筆的顏色,例如Color.BLACK:黑色,還需要填充畫布使用 fillRect (int x,int y,int width,int height)繪制并填充矩形?? 4個(gè)參數(shù),x、y起點(diǎn)坐標(biāo),寬,長。

不得不說有一個(gè)明確的目標(biāo)確實(shí)學(xué)習(xí)的比較快。

網(wǎng)站欄目:java中坦克大戰(zhàn)的代碼 java tank程序代碼
當(dāng)前地址:http://muchs.cn/article8/dospeop.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)軟件開發(fā)、服務(wù)器托管、虛擬主機(jī)、、品牌網(wǎng)站建設(shè)

廣告

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

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司