تصف هذه المقالة لعبة لعب Gopherry الصغيرة التي تم تنفيذها في Java. شاركه للرجوع إليه ، على النحو التالي:
وهذا ينطوي على المعرفة ذات الصلة حول خيوط Java و GUI. لعبة Java Mini بسيطة لمحاربة Gophers. يمكن للأصدقاء المهتمين تحسينه. دعونا نلقي نظرة على تأثير الجري:
رمز محدد:
ماوس. جافا:
استيراد java.awt.color ؛ استيراد java.awt.font ؛ استيراد java.awt.graphics x ، y ؛ علامة تبويب Private Int ؛ بيانات int الخاصة ؛ عشوائي RD = جديد عشوائي () ؛ Boolean Live = True ؛ Private int mousetime = 10 ؛ Mouseclient MC ؛ مجموعة الأدوات الثابتة الخاصة tk = toolkit.getDefaultToolkit () ؛ صورة ثابتة خاصة [] imgs = null ؛ الخريطة الثابتة الخاصة <Image ، String> imgkv = new HashMap <Image ، String> () ؛ ثابت {imgs = new Image [] {tk.getImage (mouse.class.getClasslassloader (). getResource ("Images/A.Png") ، tk.getImage (mouse.class.getclassloader (). "الصور/c.png")) ، tk.getimage (mouse.class.getClassloader (). "الصور/f.png")) ، tk.getImage (mouse.class.getClassLoader (). getResource ("Images/G.Png") ، tk.getImage (mouse.class.getclassloader (). "الصور/j.png")) ، tk.getimage (mouse.class.getClassloader (). "الصور/l.png")) ، tk.getImage (mouse.class.getClassloader (). getResource ("Images/M.Png") ، tk.getImage (mouse.class.getClassloader (). "الصور/o.png")) ، tk.getImage (mouse.class.getClassloader (). getResource ("Images/P.Png") ، tk.getimage (mouse.class.getClassloader (). "الصور/s.png")) ، tk.getimage (mouse.class.getClassloader (). "Images/U.Png")) ، tk.getImage (mouse.class.getClassLoader (). getResource ("Images/v.png") ، tk.getimage (mouse.class.getClassloader (). "الصور/x.png")) ، tk.getImage (mouse.class.getClassLoader (). getResource ("الصور/y.png")) ، tk.getImage (mouse.class.getclassloader (). "صور/1.png")) ، tk.getImage (mouse.class.getClassLoader (). getResource ("Images/1.png") ، tk.getimage (mouse.class.getClassloader (). "صور/3.png")) ، tk.getImage (mouse.class.getClassloader (). getResource ("Images/4.png") ، tk.getimage (mouse.class.getClassloader (). "صور/6.png")) ، tk.getImage (mouse.class.getClassLoader (). getResource ("Images/7.png") ، tk.getimage (mouse.class.getClassloader (). "الصور/9.png")} ؛ imgkv.put (imgs [0] ، "a") ؛ imgkv.put (imgs [1] ، "b") ؛ imgkv.put (imgs [2] ، "C") ؛ imgkv.put (imgs [3] ، "D") ؛ imgkv.put (imgs [4] ، "e") ؛ imgkv.put (imgs [5] ، "f") ؛ imgkv.put (imgs [6] ، "g") ؛ imgkv.put (imgs [7] ، "H") ؛ imgkv.put (imgs [8] ، "i") ؛ imgkv.put (imgs [9] ، "J") ؛ imgkv.put (imgs [10] ، "k") ؛ imgkv.put (imgs [11] ، "L") ؛ imgkv.put (IMGs [12] ، "M") ؛ imgkv.put (IMGs [12] ، "M") ؛ imgkv.put (imgs [10] ، "k") ؛ imgkv.put (imgs [11] ، "L") ؛ imgkv.put (IMGs [12] ، "M") ؛ imgkv.put (imgs [13] ، "n") ؛ imgkv.put (imgs [14] ، "o") ؛ imgkv.put (imgs [15] ، "p") ؛ imgkv.put (imgs [16] ، "Q") ؛ imgkv.put (imgs [17] ، "r") ؛ imgkv.put (imgs [18] ، "s") ؛ imgkv.put (imgs [19] ، "t") ؛ imgkv.put (imgs [20] ، "u") ؛ imgkv.put (imgs [21] ، "V") ؛ imgkv.put (imgs [22] ، "W") ؛ imgkv.put (imgs [22] ، "W") ؛ imgkv.put (imgs [20] ، "u") ؛ imgkv.put (imgs [21] ، "V") ؛ imgkv.put (imgs [22] ، "W") ؛ imgkv.put (imgs [22]) ؛ imgkv.put (IMGs [22 ") ؛ imgkv.put (IMGS [23] ،" X ") ؛ imgkv.put (IMGS [24] ،" y ") ؛ imgkv.put (IMGS [25] ،" Z ") ؛ imgkv.put (IMGs [26] ،" 0 ") ؛ Imgkv.pt (28] ، "2") ؛ IMGKV. } mouse ، int y ، tab mouseclient) {this.x = x ؛ = 0 ؛ MC.ECLIPSEMENT ++ ؛ {public void run () {بينما true) {mousetime--mouseclient.java:
استيراد java.awt.color ؛ استيراد java.awt.frame ؛ استيراد java.awt.graphics ؛ استيراد java.awt.image ؛ استيراد java.awt.event.keyadapter ؛ import java.awt.event.keyevent ؛ import java.awt.event.windowaDapter ؛ java.util.arraylist ؛ import java.util.list ؛ import java.util.random ؛ يمتد الطبقة العامة mouseclient الإطار { /** مواصفات واجهة اللعبة بأكملها* / public static int game_width = 1000 ؛ الثابتة العامة النهائية int game_height = 700 ؛ ثابت عام int mousecount ؛ عدد int الثابت العام ؛ ثابت عام int gametime ؛ ثابت عام int eclipsetime ؛ قائمة <Tears> mouses = new ArrayList <Teary> () ؛ عشوائي RD = جديد عشوائي () ؛ public intmouseCount = 2 ؛ // عدد gophers المعروضة في نفس الوقت العام int [] tab = new int [10] ؛ // mark ما إذا كان هناك gophers في صورة الحفرة خارج الشاشة = null ؛ /** تعرض هذه الطريقة النافذة الرئيسية*/ public void launchframe () {this.setLocation (200 ، 10) ؛ this.setsize (game_width ، game_height) ؛ this.settitle ("mouseclient") ؛ this.addwIndOwListener (new WindowAdapter () {public void windowclosing (windowevent e) {system.exit (0) ؛}}) ؛ this.setVisible (صحيح) ؛ this.setbackground (color.green) ؛ this.setResible (false) ؛ this.addKeyListener (new keymonitor ()) ؛ موضوع جديد (جديد paintthread ()). start () ؛ موضوع جديد (new gametime ()). start () ؛ } private class gameTime تنفذ RunNable {public void run () {بينما (true) {gametime ++ ؛ حاول {thread.sleep (1000) ؛ } catch (interruptedException e) {E.PrintStackTrace () ؛ }}}}} paintthread من الفئة الخاصة تنفذ Runnable {public void run () {بينما (true) {repaint () ؛ حاول {thread.sleep (10) ؛ } catch (interruptedException e) {E.PrintStackTrace () ؛ }}}} تحديث الفراغ العام (الرسومات g) {if (Offscreenimage == null) {Offscreenimage = this.createImage (game_width ، game_height) ؛ } Graphics goffscreen = Offscreenimage.getGraphics () ؛ color c = goffscreen.getColor () ؛ goffscreen.setColor (color.green) ؛ goffscreen.fillRect (0 ، 0 ، game_width ، game_height) ؛ goffscreen.setColor (C) ؛ الطلاء (goffscreen) ؛ G.DrawImage (خارج الشاشة ، 0 ، 0 ، null) ؛ } public void paint (Graphics g) {color c = g.getColor () ؛ G.SetColor (color.gray) ؛ لـ (int i = 1 ؛ i <= 3 ؛ i ++) لـ (int j = 1 ؛ j <= 3 ؛ j ++) g.filloval (game_width / 4 * i - 60 ، game_height / 4 * j - 25 ، 120 ، 50) ؛ G.SetColor (C) ؛ G.DrawString ("عدد الزيارات:" + العد ، 20 ، 40) ؛ G.DrawString ("عدد الزيارات:" + mousecount ، 20 ، 60) ؛ G.DrawString ("عدد عمليات التشغيل:" + Eclipsetime + "" ، 20 ، 80) ؛ G.DrawString ("عدد عمليات التشغيل:" + Eclipsetime + "" ، 20 ، 80) ؛ G.DrawString ("عدد عمليات التشغيل:" + Eclipsetime + "" ، 20 ، 80) ؛ G.DrawString ("عدد عمليات التشغيل:" + gametime + "s" ، 20 ، 80) ؛ G.DrawString ("عدد عمليات التشغيل:" + Eclipsetime + "" ، 20 ، 80) ؛ G.DrawString ("عدد عمليات التشغيل:" + gametime + "s" ، 20 ، 80) ؛ G.DrawString ("عدد عمليات التشغيل:" + gametime + "s" ، 20 ، 80) ؛ G.DrawString ("عدد عمليات التشغيل:" + gametime + "s" ، 20 ، 80) ؛ G.DrawString ("عدد عمليات التشغيل:" + gametime + "s" ، 20 ، 80) ؛ G.DrawString ("عدد عمليات التشغيل:" + gametime + "s" ، 20 ، 80) ؛ G.DrawString ("عدد عمليات التشغيل:" + gametime + "s" ، 20 ، 80) ؛ G.DrawString ("عدد عمليات التشغيل:" + gametime + "s" ، 2 100) ؛ إذا (mousecount> = 80) initMouseCount = 8 ؛ آخر إذا (mousecount> = 50) initMouseCount = 6 ؛ آخر إذا (mousecount> = 20) initMouseCount = 4 ؛ درجة حرارة بينما (mouses.size () <initmouseCount) {temp = rd.nextint (9) ؛ بينما (علامة التبويب [temp] == 1) {temp ++ ؛ إذا (temp == 9) temp = 0 ؛ } علامة التبويب [temp] = 1 ؛ mouses.add (فأر جديد (game_width / 4 * (temp ٪ 3 + 1) - 70 ، game_height / 4 * (temp / 3 + 1) - 100 ، temp ، this)) ؛ } لـ (int i = 0 ؛ i <mouses.size () ؛ i ++) {mouse m = muses.get (i) ؛ M.Draw (G) ؛ }} public static void main (string [] args) {mouseclient km = new mouseclient () ؛ km.launchframe () ؛ } keymonitor من الفئة الخاصة يمتد KeyAdapter {public void keyreleSeped (keyevent e) {system.out.println (e.getKeyCode ()) ؛ count ++ ؛ لـ (int i = 0 ؛ i <mouses.size () ؛ i ++) {if (mouses.get (i) .KeyReleSever (e)) break ؛ }}}}المرفق: انقر هنا لتنزيل رمز المثال الكامل.
لمزيد من المعلومات حول خوارزميات Java ، يمكن للقراء المهتمين بهذا الموقع عرض الموضوعات: "بنية بيانات Java وبرنامج تعليمي الخوارزمية" ، "ملخص" Tips Java ".
آمل أن يكون هذا المقال مفيدًا لبرمجة Java للجميع.