當前位置:首頁 » 編程語言 » 飛機大戰java代碼

飛機大戰java代碼

發布時間: 2023-08-27 18:51:59

A. java飛機大戰課程設計

你好,java編程的飛機大戰需要學習一下內容,可以鍛煉的韌性和邏輯思維能力。我就是從事軟體開發的,初中生學生軟體編程還是可以的,小夥子思維活躍學習起來比較快,軟體工程師每年都有老員工辭歸故里,也有新鮮血液進入行業,所以無論什麼時候學習都不晚,現在互聯網的發展正快速推動社會的發展,所以就業還是很不錯的。如果要學習java下面給你幾個建議,希望能幫到你。

1.內部使用 C 的 longjmp 機制讓出一個協程。因此,如果一個 C 函數 foo 調用了一個 API 函數, 而這個 API 函數讓出了(直接或間接調用了讓出函數)。 由於 longjmp 會移除 C 棧的棧幀, Lua 就無法返回到 foo 里了。
2.為了迴避這類問題, 碰到 API 調用中調用讓出時,除了那些拋出錯誤的 API 外,還提供了三個函數: lua_yieldk, lua_callk,和 lua_pcallk 。 它們在讓出發生時,可以從傳入的 延續函數 (名為 k 的參數)繼續運行。
3.我們需要預設一些術語來解釋延續點。對於從 Lua 中調用的 C 函數,我們稱之為 原函數。 從這個原函數中調用的上面所述的三個 C API 函數我們稱之為 被調函數。 被調函數可以使當前線程讓出。 (讓出發生在被調函數是 lua_yieldk, 或傳入 lua_callk 或 lua_pcallk 的函數調用了讓出時。)
4.假設正在運行的線程在執行被調函數時讓出。當再次延續這條線程,它希望繼續被調函數的運行。 然而,被調函數不可能返回到原函數中。 這是因為之前的讓出操作破壞了 C 棧的棧幀。 作為替代品,Lua 調用那個作為被調函數參數給出的 延續函數 。 正如其名,延續函數將延續原函數的任務。
5.注意這里那個額外的顯式的對延續函數的調用:Lua 僅在需要時,這可能是由錯誤導致的也可能是發生了讓出而需要繼續運行,才會調用延續函數。 如果沒有發生過任何讓出,調用的函數正常返回, 那麼 lua_pcallk (以及 lua_callk)也會正常返回。 (當然,這個例子中你也可以不在之後調用延續函數, 而是在原函數的調用後直接寫上需要做的工作。)
6.Lua 會把延續函數看作原函數。延續函數將接收到和原函數相同的 Lua 棧,其接收到的 lua 狀態也和 被調函數若返回後應該有的狀態一致。 (例如, lua_callk 調用之後, 棧中之前壓入的函數和調用參數都被調用產生的返回值所替代。) 這時也有相同的上值。 等到它返回的時候,Lua 會將其看待成原函數的返回去操作。

7.我們需要預設一些術語來解釋延續點。對於從 Lua 中調用的 C 函數,我們稱之為 原函數。 從這個原函數中調用的上面所述的三個 C API 函數我們稱之為 被調函數。 被調函數可以使當前線程讓出。 (讓出發生在被調函數是 lua_yieldk, 或傳入 lua_callk 或 lua_pcallk 的函數調用了讓出時。)
8.假設正在運行的線程在執行被調函數時讓出。當再次延續這條線程,它希望繼續被調函數的運行。 然而,被調函數不可能返回到原函數中。 這是因為之前的讓出操作破壞了 C 棧的棧幀。 作為替代品,Lua 調用那個作為被調函數參數給出的 延續函數 。 正如其名,延續函數將延續原函數的任務。

希望能幫到你,謝謝!

B. 新手用java做了類似於飛機大戰的程序 後台編譯說unknown source 背景和飛機圖片在窗口上也顯示不出來

你的程序里引用的map_0.png路徑相對於GamePanel.java的路徑是:相同目錄下的image文件夾下的map_0.png,但是map_0.png和這個類在相同目錄下,所以引用不到圖片。
把引用路徑改為「map_0.png」就能引用到圖片了。

C. java做的Android 飛機大戰中如何實現敵機個數隨機實現比如在一個屏幕中最多隻能出現5個敵機!

可以使用java.util.Random類來產生一個隨機數發生器。它有兩種形式的構造函數,分別是Random()和Random(long seed)。Random()使用當前時間即System.currentTimeMillis()作為發生器的種子,Random(long seed)使用指定的seed作為發生器的種子。
隨機數發生器(Random)對象產生以後,通過調用不同的method:nextInt()、nextLong()、nextFloat()、nextDouble()等獲得不同類型隨機數。
1>生成隨機數
Random random = new Random();
Random random = new Random(100);//指定種子數100
random調用不同的方法,獲得隨機數。
如果2個Random對象使用相同的種子(比如都是100),並且以相同的順序調用相同的函數,那它們返回值完全相同。如下面代碼中兩個Random對象的輸出完全相同
import java.util.*;
class TestRandom {
public static void main(String[] args) {
Random random1 = new Random(100);
System.out.println(random1.nextInt());
System.out.println(random1.nextFloat());
System.out.println(random1.nextBoolean());
Random random2 = new Random(100);
System.out.println(random2.nextInt());
System.out.println(random2.nextFloat());
System.out.println(random2.nextBoolean());
}
}
2>指定范圍內的隨機數
隨機數控制在某個范圍內,使用模數運算符%
import java.util.*;
class TestRandom {
public static void main(String[] args) {
Random random = new Random();
for(int i = 0; i < 10;i++) {
System.out.println(Math.abs(random.nextInt())%10);
}
}
}
獲得的隨機數有正有負的,用Math.abs使獲取數據范圍為非負數
3>獲取指定范圍內的不重復隨機數
import java.util.*;
class TestRandom {
public static void main(String[] args) {
int[] intRet = new int[6];
int intRd = 0; //存放隨機數
int count = 0; //記錄生成的隨機數個數
int flag = 0; //是否已經生成過標志
while(count<6){
Random rdm = new Random(System.currentTimeMillis());
intRd = Math.abs(rdm.nextInt())%32+1;
for(int i=0;i<count;i++){
if(intRet[i]==intRd){
flag = 1;
break;
}else{
flag = 0;
}
}
if(flag==0){
intRet[count] = intRd;
count++;
}
}
for(int t=0;t<6;t++){
System.out.println(t+"->"+intRet[t]);
}
}
}

Java隨機數類Random介紹

Java實用工具類庫中的類java.util.Random提供了產生各種類型隨機數的方法。它可以產生int、long、float、double以 及Goussian等類型的隨機數。這也是它與java.lang.Math中的方法Random()最大的不同之處,後者只產生double型的隨機 數。
類Random中的方法十分簡單,它只有兩個構造方法和六個普通方法。
構造方法:
(1)public Random()
(2)public Random(long seed)
Java產生隨機數需要有一個基值seed,在第一種方法中基值預設,則將系統時間作為seed。
普通方法:
(1)public synonronized void setSeed(long seed)
該方法是設定基值seed。
(2)public int nextInt()
該方法是產生一個整型隨機數。
(3)public long nextLong()
該方法是產生一個long型隨機數。
(4)public float nextFloat()
該方法是產生一個Float型隨機數。
(5)public double nextDouble()
該方法是產生一個Double型隨機數。
(6)public synchronized double nextGoussian()
該方法是產生一個double型的Goussian隨機數。
例2 RandomApp.java。
//import java.lang.*;
import java.util.Random;

public class RandomApp{
public static void main(String args[]){
Random ran1=new Random();
Random ran2=new Random(12345);
//創建了兩個類Random的對象。
System.out.println("The 1st set of random numbers:");
System.out.println(" Integer:"+ran1.nextInt());
System.out.println(" Long:"+ran1.nextLong());
System.out.println(" Float:"+ran1.nextFloat());
System.out.println(" Double:"+ran1.nextDouble());
System.out.println(" Gaussian:"+ran1.nextGaussian());
//產生各種類型的隨機數
System.out.print("The 2nd set of random numbers:");
for(int i=0;i<5;i++){
System.out.println(ran2.nextInt()+" ");
if(i==2) System.out.println();
//產生同種類型的不同的隨機數。
System.out.println();
}
}
}

Random random=new Random();
random.nextInt();

也可以有nextFloat等等,各種基本類型都有
Math.random也可以
比如說你想要0-10之間的隨機數
你可以這樣寫
(int)(Math.random()*10);
JAVA產生指定范圍的隨機數》
《JAVA產生指定范圍的隨機數》
產生機制:
產生Min-Max之間的數字
實現原理:
Math.round(Math.random()*(Max-Min)+Min)
long Temp; //不能設定為int,必須設定為long
//產生1000到9999的隨機數
Temp=Math.round(Math.random()*8999+1000);

熱點內容
倒數的運演算法則 發布:2025-02-04 15:01:10 瀏覽:564
安卓版微信為什麼不能用 發布:2025-02-04 15:01:05 瀏覽:464
oj編譯器和本地編譯器不一樣 發布:2025-02-04 14:59:24 瀏覽:647
鳳凰地下商城wifi密碼是多少 發布:2025-02-04 14:42:00 瀏覽:904
哈希查找演算法 發布:2025-02-04 14:40:36 瀏覽:467
雲伺服器顯示黑洞 發布:2025-02-04 14:29:05 瀏覽:300
redhatlinux教程 發布:2025-02-04 14:24:48 瀏覽:831
nvidia緩存清理嗎 發布:2025-02-04 14:16:55 瀏覽:307
筆記本電腦如何設置鎖屏密碼 發布:2025-02-04 13:54:42 瀏覽:163
構成c語言程序的基本單位 發布:2025-02-04 13:49:53 瀏覽:990