هذه اللعبة الصغيرة هي تصميم دورة Java لأختي وأنا ، وهي أيضًا أول مشروع Java الذي قمت به. إنه مناسب للمبتدئين. آمل أن يساعد هؤلاء الأطفال الذين يشعرون بالقلق من تصميم دورة Java ~~~
1. يجب تنفيذ اللعبة
1. تصميم الإطار الرئيسي والواجهة.
2. استخدم واجهة ActionListener لتحقيق مراقبة أحداث الأزرار.
3. إعادة تشغيل تنفيذ الوظيفة.
4. تنفيذ وظيفة الشطرنج.
5. تنفيذ وظيفة الخروج.
6. تعريف نقاط قطعة الشطرنج في الشطرنج.
7. استخدم واجهة Mouselistener لتنفيذ مراقبة الحدث وتنفيذ جميع الطرق في الواجهة.
8. عندما ينتقل الماوس إلى نقطة التقاطع على اللوحة ولا توجد قطع شطرنج على هذه النقطة ، يمكن أن يصبح شكلًا صغيرًا.
9. عند النقر على لوحة الشطرنج ، استخدم عبارة IF لتحديد ما إذا كانت النقطة موجودة في التقاطع ، واستخدم عبارة FOREACH وطريقة GETX () و GETY () في فئة الشطرنج لتجاوز موضع كل قطعة شطرنج لتحديد ما إذا كانت النقطة تحتوي على قطع الشطرنج.
10. عندما يتم تحديد أنه يمكنك وضع فرع في النقطة التي تم النقر فوقها ، عند رسم قطعة ، استخدم الحلقة لتجتاز كل نقطة موجودة واستخدام setColor لفئة الرسومات لتعيين اللون ، واستخدام طريقة Filloval لفئة الرسومات لتعيين حجم الشكل.
11. عند رسم قطعة الشطرنج ، يجب أن تحكم على الفائز وخسرها في الوقت المناسب. استخدم الفهرس وللحلقات لاجتياز اتجاهات الشطرنج الأخيرة. إذا كانت هناك قطع شطرنج على نفس الخط المستقيم مع عدد من قطع الشطرنج أكبر من أو تساوي خمسة ، فهذه هي قطعة الشطرنج الحالية.
12. عندما يتم تحديد الفائز ، يمكن ظهر المعلومات المقابلة.
2. تنفيذ الكود الوظيفي
2.1 أدخل اللعبة
الفراغ الثابت العام الرئيسي (سلسلة [] args) {StartChessJframe f = new StartChessJframe () ؛ // إنشاء الإطار الرئيسي f.setVisible (صحيح) ؛ // إظهار الإطار الرئيسي}2.2 التهيئة ، حدد بعض الكميات المراد استخدامها.
شريط أدوات الشطرنج الخاص بالشطرنج الخاص
2.3 طريقة بناء الواجهة (إطار اللعبة)
public StartChessJframe () {Settitle ("goji المستقل") ؛ // قم بتعيين the the the the the chessboard = new chessboard () ؛ // تهيئة كائن اللوحة ، وإنشاء وإضافة MenueMlistener lis = new myitemlistener () backbutton = زر جديد ("الرد") ؛ exitbutton = زر جديد ("EXIT") ؛ // تهيئة شريط الأدوات. Toolbar.Add (StartButton) ؛ Toolbar.Add (exitbutton) ؛ // إضافة ثلاثة أزرار إلى لوحة الأدوات StartButton.AddActionListener (LIS) ؛ backbutton.addActionListener (LIS) ؛ exitbutton.addActionListener (lis) ؛ // قم بتسجيل أحداث الزر الثلاثة للاستماع إلى إضافة الحدث (شريط الأدوات ، borderlayout.south) ؛ // تخطيط لوحة الأدوات إلى الجنوب من الواجهة ، أي ، إضافة (chessboard) ؛2.4 تنفيذ زر ومراقبة (طريقة البناء الداخلي)
MyItemListener lis = new MyItemListener () ؛ // تهيئة الفئة الداخلية لشريط أدوات مستمع أحداث الزر = لوحة جديدة () ؛ // إنشاء شريط الأدوات StartButton = زر جديد ("إعادة التشغيل") ؛ backbutton = زر جديد ("الرد") ؛ exitbutton = زر جديد ("EXIT") ؛ // تهيئة شريط الأدوات. Toolbar.Add (StartButton) ؛ Toolbar.Add (exitbutton) ؛ // إضافة ثلاثة أزرار إلى لوحة الأدوات StartButton.AddActionListener (LIS) ؛ backbutton.addActionListener (LIS) ؛ exitbutton.addActionListener (LIS) ؛ // قم بتسجيل أحداث الزر الثلاثة للاستماع للأحداث2.5 الاستماع لأحداث الأزرار
الفئة الخاصة myitemListener تنفذ ActionListener {public void actionperformed (ActionEvent e) {Object obj = } آخر if (obj == exitbutton) {system.exit (0) ؛ // إنهاء التطبيق} آخر إذا (obj == backbutton) {system.out.println ("REPENT ZESS ...") }}}2.6 إعادة تشغيل وظيفة زر إعادة التشغيل
public void retartgame () {// clear chess actions for (int i = 0 ؛ i <chesslist.length ؛ i ++) chesslist [i] = null ؛ /*استعادة القيم المتغيرة المتعلقة باللعبة*/ isback = صواب ؛ GameOver = false ؛ // ما إذا كانت اللعبة تنتهي ChessCount = 0 ؛ // عدد قطع الشطرنج على اللوحة الحالية هو إعادة إعادة () ؛ }2.7 تنفيذ وظيفة زر الشطرنج
public void goback () {if (chesscount == 0) return ؛ chesslist [chesscount-1] = null ؛ Chesscount-- ؛ if (chesscount> 0) {xindex = ChessList [ChessCount-1] .getx () ؛ yindex = chesslist [chesscount-1] .gety () ؛ } isback =! isback ؛ REPAINT () ؛ }2.8 عندما تصبح لوحة الشطرنج أكبر أو أصغر حسب الحاجة ، يجب أن تتغير النافذة وفقًا لذلك.
// البعد: داخل لوحة الشطرنج المستطيلة ، البعد العام getPreferredSize () {إرجاع البعد الجديد (الهامش*2+grid_span*cols ، margin*2+grid_span*صفوف) ؛ } pack () ؛ // الحجم التكيفي داخل فئة startChessboard2.9 تحديد قطع الشطرنج
استيراد java.awt.*؛ Public Class Point {private int x ؛ // x value index piece in board private int y ؛ // y index induge of chess piece in the chess board color private color ؛ // color public static int diameter = 30 ؛ // diameter public pince (int x ، int y ، color) {this.x = x ؛ this.y = y ؛ this.color = اللون ؛ } // الحصول على قيمة فهرس x من قطعة الشطرنج في لوحة الشطرنج العامة int getx () {return x ؛ } // الحصول على قيمة فهرس y من قطعة الشطرنج في لوحة الشطرنج العامة int gety () {return y ؛ } // الحصول على قطعة الشطرنج Color GetColor () {Return Color ؛ }} 3. تنفيذ رمز الجزء الوظيفي
3.1 التهيئة ، حدد بعض الكميات المراد استخدامها.
هامش int ثابت عام = 30 ؛ // الزواج الثابت العام int grid_span = 35 ؛ // تباعد الشبكة الصفوف الثابتة العامة = 18 ؛ // عدد صفوف لوحة الشطرنج العامة الثابتة الباحث = 18 ؛ لعبة الشطرنج الأولى = false ؛ // هل نهاية اللعبة int chesscount ؛ // عدد قطع الشطرنج على الشطرنج الحالي int xindex ، yindex ؛
3.2 بناء طريقة كائن الشطرنج
Public Chessboard () {setbackground (color.light_gray) ؛ // اضبط لون الخلفية على رمادي addmouselistener (هذا) ؛ x1 = ( إذا كان (x1 || x1> صفوفًا || y1 <0 || y1> cols || findChess (x1 ، y1) {// انتهت اللعبة ولا يمكن إسقاطها (cursor) شكل} آخر {setCursor (New Cursor (cursor.hand_cursor)) ؛ // ضبط على شكل اليد}} override public void mousedragged (mouseevent e) {}}) ؛ }3.3 قم بإعداد مستمع الماوس وجعل اليد أصغر (داخل طريقة البناء)
AddMouseMotionListener (new mousemotionListener () {// مجهول الفئة الداخلية @override public void mouseMoved (mouseevent e) {int x1 = ( انقر في فهرس الشبكة (x1 <0 || x1> صفوف y1 <0 || y1> cols || Cursor (cursor.default_cursor)) ؛ // ضبط على الشكل الافتراضي} آخر {setCursor (New Cursor (Cursor.hand_cursor)) ؛ // ضبط على شكل اليد}} ouverride public mousedragged (mouseevent e) {}}) ؛3.4 الحدث الضغط على الماوس عند النقر فوق لوح الشطرنج
يتم استدعاء الفراغ العام mousepracked (mouseevent e) {// if (gameover) عند الضغط على زر الماوس على المكون // انتهت اللعبة ولا يمكن إرجاعها ؛ سلسلة colorname = isback؟ "الأسود": "الشطرنج الأبيض" ؛ xindex = ( yindex = ( إذا كان (FindChess (Xindex ، Yindex)) // توجد قطعة الشطرنج بالفعل في موضع x ، y ، لذلك لا يمكن إرجاعك ؛ point ch = نقطة جديدة (xindex ، yindex ، isback؟ color.black: color.white) ؛ chesslist [ChessCount ++] = ch ؛ REPAINT () ؛ // إخطار النظام بإعادة إعادة الرضاعة إذا (ISWIN ()) {String msg = string.format ("تهانينا ، ٪ s win ~" ، colorname) ؛ joptionpane.showmessagedialog (هذا ، msg) ؛ GameOver = صحيح ؛ } آخر إذا (chesscount == (cols+1)*(الصفوف+1)) {string msg = string.format ("chess drum جيد جدًا ، رائع ~") ؛ joptionpane.showmessagedialog (هذا ، msg) ؛ GameOver = صحيح ؛ } isback =! isback ؛ }3.5 ارسم لوحة الشطرنج وقطع الشطرنج والإطارات الحمراء
Public void paintcomponent (Graphics g) {super.paintcomponent (g) ؛ // ارسم لوحة الشطرنج لـ (int i = 0 ؛ i <= rows ؛ i ++) {// ارسم الخط الأفقي g.drawline (margin ، margin+i*grid_span ، margin+cols*grid_span ، margin+i*grid_span) ؛ } لـ (int i = 0 ؛ i <= cols ؛ i ++) {// ارسم خطًا مستقيمًا g.drawline (الهامش+i*grid_span ، الهامش ، الهامش+i*grid_span ، margin+rows*grid_span) ؛ }/*ارسم قطع الشطرنج*/لـ (int i = 0 ؛ i <chesscount ؛ i ++) {int xpos = chesslist [i] .getx () G.SetColor (chesslist [i] .getColor ()) ؛ // قم بتعيين اللون g.filloval (xpos-point.diameter/2 ، ypos-point.diameter/2 ، point.diameter ، point.diameter) ؛ if (i == chesscount-1) {g.setColor (color.red) ؛ // وضع علامة على آخر قطعة كـ g.drawrect (xpos-point.diameter/2 ، ypos-point.diameter/2 ، point.diameter ، point.diameter) ؛ }}3.6 القاضي الفوز أو الخسارة
/*احكم على الجانب الذي يفوز به*/خاص منطقي ISWIN () {int continuecount = 1 ؛ // عدد قطع الشطرنج المستمرة لـ (int x = xindex-1 ؛ x> = 0 ؛ x-) {// ابحث عن اللون c = isback؟ color.black: color.white ؛ if (getChess (x ، yindex ، c)! = null) {continuecount ++ ؛ } استراحة أخرى ؛ } لـ (int x = xindex+1 ؛ x <= الصفوف ؛ x ++) {// ابحث عن اللون c = isback؟ color.black: color.white ؛ if (getChess (x ، yindex ، c)! = null) {continuecount ++ ؛ } استراحة أخرى ؛ } if (continueCount> = 5) {// upply عدد السجلات أكبر من أو يساوي خمسة ، مما يعني أن هذا الجانب يفوز بالعودة بشكل صحيح ؛ } آخر continuecount = 1 ؛ // لـ (int y = yindex-1 ؛ y> = 0 ؛ y-) {// ابحث عموديًا إلى اللون c = isback؟ color.black: color.white ؛ if (getChess (xindex ، y ، c)! = null) {continuecount ++ ؛ } استراحة أخرى ؛ } لـ (int y = yindex+1 ؛ y <= الصفوف ؛ y ++) {// انظر لأسفل في لون الاتجاه الرأسي c = isback؟ color.black: color.white ؛ if (getChess (xindex ، y ، c)! = null) {continuecount ++ ؛ } استراحة أخرى ؛ } if (continueCount> = 5) {// upply عدد السجلات أكبر من أو يساوي خمسة ، مما يعني أن هذا الجانب يفوز بالعودة بشكل صحيح ؛ } آخر continuecount = 1 ؛ // لـ (int x = xindex+1 ، y = yindex-1 ؛ y> = 0 && x <= cols ؛ x ++ ، y-) {// انظر لأسفل على اللون الأيمن السفلي c = isBack؟ color.black: color.white ؛ if (getChess (x ، y ، c)! = null) {continuecount ++ ؛ } استراحة أخرى ؛ } لـ (int x = xindex-1 ، y = yindex+1 ؛ y <= rows && x> = 0 ؛ x-، y ++) {// ابحث عن اللون c = isback؟ color.black: color.white ؛ if (getChess (x ، y ، c)! = null) {continuecount ++ ؛ } استراحة أخرى ؛ } if (continueCount> = 5) {// upply عدد السجلات أكبر من أو يساوي خمسة ، مما يعني أن هذا الجانب يفوز. العودة صحيح. } آخر continuecount = 1 ؛ // لـ (int x = xindex-1 ، y = yindex-1 ؛ y> = 0 && x> = 0 ؛ x-، y-) {// ابحث عن اللون c = isback؟ color.black: color.white ؛ if (getChess (x ، y ، c)! = null) {continuecount ++ ؛ } استراحة أخرى ؛ } لـ (int x = xindex+1 ، y = yindex+1 ؛ y <= rows && x <= cols ؛ x ++ ، y ++) {// ابحث عن اللون c = isBack؟ color.black: color.white ؛ if (getChess (x ، y ، c)! = null) {continuecount ++ ؛ } استراحة أخرى ؛ } if (continueCount> = 5) {// upply عدد السجلات أكبر من أو يساوي خمسة ، مما يعني أن هذا الجانب يفوز بالعودة بشكل صحيح ؛ } آخر continuecount = 1 ؛ العودة كاذبة }3.7 يظهر مربع الرسالة المقابل (داخل وظيفة الضغط على الماوس)
if (iswin ()) {String msg = string.format ("تهانينا ، ٪ s win ~" ، colorname) ؛ joptionpane.showmessagedialog (هذا ، msg) ؛ GameOver = صحيح ؛ } آخر إذا (chesscount == (cols+1)*(الصفوف+1)) // track {String msg = string.format ("chess drum جيد جدًا ، رائع ~") ؛ joptionpane.showmessagedialog (هذا ، msg) ؛ GameOver = صحيح ؛ }3.8 وظيفة تستخدم أعلاه لتحديد ما إذا كانت هناك قطع شطرنج في نقطة معينة
boolean private findChess (int x ، int y) {for (point c: chesslist) {if (c! = null && c.getx () == x && c.gety () == y) return true ؛ } إرجاع خطأ ؛ }3.9 نظرًا لأن فئة الشطرنج هذه تنفذ واجهة الاستماع للماوس المونسليستنر ، فإن جميع الطرق في الواجهة تحتاج إلى إعادة كتابة. الطرق الأخرى هي كما يلي
@Override public void mouseClicked(MouseEvent e) {//Called when the mouse button is clicked (pressed and released) on the component} @Override public void mouseReleased(MouseEvent e) {///Called when the mouse button is released on the component} @Override public void mouseEntered(MouseEvent e) {//Called when the mouse enters the component} Override public void mouseexited (mouseevent e) {// يسمى عندما يترك الماوس المكون}4. نتائج التشغيل
خامسا كود ملخص
تحتوي اللعبة على ثلاث فئات في المجموع ، والآخر هو startChessJframe ، والآخر هو شطرنج فئة الشطرنج ، والآخر هو نقطة فئة الشطرنج
5.1startChessJframe فئة
Package Chess.lcc.com ؛ استيراد javax.swing.*؛ استيراد java.awt.event.*؛ استيراد java.awt.*؛ /** إطار عمل Gozi الرئيسي ، فئة بدء تشغيل البرنامج*/الفئة العامة startChessJframe يمتد JFrame {private Chessboard Chessboard ؛ // Fight Panel Panel Pane Toolbar ؛ // شريط أدوات Button Private Button Buttonbutton ؛ // قم بتعيين زر البدء الخاص (Backbutton ؛ // قم بتعيين زر الأسف الخاص ؛ goji ") ؛ // قم بتعيين title chessboard = new chessboard () ؛ // تهيئة كائن اللوحة ، قم بإنشاء وإضافة myitemlistener lis = new MyItEmListener () ؛ // تهيئة شريط أدوات الفئة الداخلية للمستمع الزر = new panel () ؛ // مثيل شريط الأدوات startButton = جديد (" استعادة ") ؛ backbutton = زر جديد ("الرد") ؛ exitbutton = زر جديد ("EXIT") ؛ // تهيئة شريط الأدوات. Toolbar.Add (StartButton) ؛ Toolbar.Add (exitbutton) ؛ // إضافة ثلاثة أزرار إلى لوحة الأدوات StartButton.AddActionListener (LIS) ؛ backbutton.addActionListener (LIS) ؛ exitbutton.addActionListener (LIS) ؛ // قم بتسجيل أحداث الزر الثلاثة للاستماع لإضافة الحدث (شريط الأدوات ، borderlayout.south) ؛ // تخطيط لوحة الأدوات إلى الجنوب من الواجهة ، أي إضافة (chessboard) ؛ class myitemListener تنفذ ActionListener {public void actionperformed (ActionEvent e) {object obj = } آخر if (obj == exitbutton) {system.exit (0) ؛ // إنهاء التطبيق} آخر إذا (obj == backbutton) {system.out.println ("replet chess ...") ؛ // reply chessboard.goback () ؛ }}} static void main (string [] args) {StartChessJframe f = new StartChessJframe () ؛ // إنشاء الإطار الرئيسي f.setVisible (صحيح) ؛ // إظهار الإطار الرئيسي}} 5.2Chessboard Class
Package Chess.lcc.com ؛ استيراد javax.swing.*؛ استيراد java.awt.*؛ استيراد java.awt.event.mouselistener ؛ استيراد java.awt.event.mousemotionListener ؛ استيراد java.awt.event.mouseevent ؛ /*فئة المجموعة الجماعية-التشريح*/شطرنج الطبقة العامة يمتد jpanel يطبق mouselistener {public static int margin = 30 ؛ النقطة [(الصفوف+1)*(cols+1)] ؛ // تهيئة كل عنصر من عناصر الصفيف إلى isback boolean null = true ؛ // البداية الافتراضية هي لعبة الشطرنج الأولى السوداء = false ؛ // هل تم الانتهاء من اللعبة int chesscount ؛ الانتكاس (color.light_gray) ؛ // قم بتعيين لون الخلفية على addmouselistener الأصفر (هذا) ؛ // إضافة حدث مستمع addmouseMotionListener (جديد mousemotionlistener () {// anonymous internal class @intover_span/mouspan/intspan/intspan/intspan. y1 = ( هي قطع الشطرنج في موضع x و y ، لذلك لا يمكن أن تكون setCursor (مؤشر جديد (مؤشر. }/*draw*/public void paintcomponent (Graphics g) {super.paintcomponent (g) ؛ // draw chessboard for (int i = 0 ؛ i <= rows ؛ i ++) {// draw line horizontal g.drawline (margin ، margin+i*grid_span ، margin+cols*grid_span ، margin+ } لـ (int i = 0 ؛ i <= cols ؛ i ++) {// ارسم خطًا مستقيمًا g.drawline (margin+i*grid_span ، margin ، margin+i*grid_span ، margin+rows*grid_span) ؛ }/*ارسم قطع الشطرنج*/لـ (int i = 0 ؛ i <chesscount ؛ i ++) {int xpos = chesslist [i] .getx () G.SetColor (chesslist [i] .getColor ()) ؛ // قم بتعيين اللون g.filloval (xpos-point.diameter/2 ، ypos-point.diameter/2 ، point.diameter ، point.diameter) ؛ if (i == chesscount-1) {g.setColor (color.red) ؛ // اشترك في آخر قطعة كـ Red G.DrawRect (xpos-point.diameter/2 ، ypos-point.diameter/2 ، point.diameter ، point.diameter) ؛ }}} Override public void mousepracked (mouseevent e) {// if (gameover) يتم استدعاء زر الماوس على المكون // انتهت اللعبة ، لا يمكنك إعادتها ؛ سلسلة colorname = isback؟ "الأسود": "الشطرنج الأبيض" ؛ xindex = ( yindex = ( إذا كان (FindChess (Xindex ، Yindex)) // توجد قطعة الشطرنج بالفعل في موضع x ، y ، لذلك لا يمكن إرجاعك ؛ point ch = نقطة جديدة (xindex ، yindex ، isback؟ color.black: color.white) ؛ chesslist [ChessCount ++] = ch ؛ REPAINT () ؛ // إخطار النظام بإعادة إعادة الرضاعة إذا (ISWIN ()) {String msg = string.format ("تهانينا ، ٪ s win ~" ، colorname) ؛ joptionpane.showmessagedialog (هذا ، msg) ؛ GameOver = صحيح ؛ } آخر إذا (chesscount == (cols+1)*(الصفوف+1)) {string msg = string.format ("chess drum جيد جدًا ، رائع ~") ؛ joptionpane.showmessagedialog (هذا ، msg) ؛ GameOver = صحيح ؛ } isback =! isback ؛ } Override public void mouseclicked (mouseevent e) {// استدعاء عندما يتم النقر على زر الماوس (الضغط وإصدار) على المكون} @override public void mouseReleSeped (mouseevent e) {/// يسمى الزر بالماوس على المكون}} Component} Override public void mouseexited (mouseevent e) {// يسمى عندما يترك الماوس المكون} findChess boolean private (int x ، int y) {for (point c: chesslist) {if (c! = null && c.getx () == x && c.gety () == y) return ؛ } إرجاع خطأ ؛ }/*احكم على الجانبي الذي يفوز به*/private boolean iswin () {int continuecount = 1 ؛ // عدد قطع الشطرنج المستمرة لـ (int x = xindex-1 ؛ x> = 0 ؛ x-) {// ابحث عن اللون c = isback؟ color.black: color.white ؛ if (getChess (x ، yindex ، c)! = null) {continuecount ++ ؛ } استراحة أخرى ؛ } لـ (int x = xindex+1 ؛ x <= الصفوف ؛ x ++) {// ابحث عن اللون c = isback؟ color.black: color.white ؛ if (getChess (x ، yindex ، c)! = null) {continuecount ++ ؛ } استراحة أخرى ؛ } if (continueCount> = 5) {// upply عدد السجلات أكبر من أو يساوي خمسة ، مما يعني أن هذا الجانب يفوز بالعودة بشكل صحيح ؛ } آخر continuecount = 1 ؛ // لـ (int y = yindex-1 ؛ y> = 0 ؛ y-) {// ابحث عموديًا إلى اللون c = isback؟ color.black: color.white ؛ if (getChess (xindex ، y ، c)! = null) {continuecount ++ ؛ } استراحة أخرى ؛ } لـ (int y = yindex+1 ؛ y <= الصفوف ؛ y ++) {// انظر لأسفل في لون الاتجاه الرأسي c = isback؟ color.black: color.white ؛ if (getChess (xindex ، y ، c)! = null) {continuecount ++ ؛ } استراحة أخرى ؛ } if (continueCount> = 5) {// upply عدد السجلات أكبر من أو يساوي خمسة ، مما يعني أن هذا الجانب يفوز بالعودة بشكل صحيح ؛ } آخر continuecount = 1 ؛ // لـ (int x = xindex+1 ، y = yindex-1 ؛ y> = 0 && x <= cols ؛ x ++ ، y-) {// انظر لأسفل على اللون الأيمن السفلي c = isBack؟ color.black: color.white ؛ if (getChess (x ، y ، c)! = null) {continuecount ++ ؛ } استراحة أخرى ؛ } لـ (int x = xindex-1 ، y = yindex+1 ؛ y <= rows && x> = 0 ؛ x-، y ++) {// ابحث عن اللون c = isback؟ color.black: color.white ؛ if (getChess (x ، y ، c)! = null) {continuecount ++ ؛ } استراحة أخرى ؛ } if (continueCount> = 5) {// upply عدد السجلات أكبر من أو يساوي خمسة ، مما يعني أن هذا الجانب يفوز. العودة صحيح. } آخر continuecount = 1 ؛ // لـ (int x = xindex-1 ، y = yindex-1 ؛ y> = 0 && x> = 0 ؛ x-، y-) {// ابحث عن اللون c = isback؟ color.black: color.white ؛ if (getChess (x ، y ، c)! = null) {continuecount ++ ؛ } استراحة أخرى ؛ } لـ (int x = xindex+1 ، y = yindex+1 ؛ y <= rows && x <= cols ؛ x ++ ، y ++) {// ابحث عن اللون c = isBack؟ color.black: color.white ؛ if (getChess (x ، y ، c)! = null) {continuecount ++ ؛ } استراحة أخرى ؛ } if (continuecount> = 5) {// just أن عدد السجلات أكبر من أو يساوي خمسة ، فهذا يعني أن هذا الجانب يفوز بالعودة ؛ } آخر continuecount = 1 ؛ العودة كاذبة } private point getChess (int xindex ، int yindex ، color color) {for (point c: chesslist) {if (c! = null && c.getx () == xindex && c.gety () == yindex && c.getcolor () == color) return c ؛ } إرجاع فارغ ؛ } public void retartGame () {// قم بمسح قطعة الشطرنج لـ (int i = 0 ؛ i <chesslist.length ؛ i ++) chesslist [i] = null ؛ /*استعادة القيمة المتغيرة ذات الصلة باللعبة*/ isback = true ؛ GameOver = false ؛ // ما إذا كانت اللعبة تنتهي ChessCount = 0 ؛ // عدد قطع الشطرنج على اللوحة الحالية هو إعادة إعادة () ؛ } public void gobback () {if (chesscount == 0) return ؛ chesslist [chesscount-1] = null ؛ Chesscount-- ؛ if (chesscount> 0) {xindex = ChessList [ChessCount-1] .getx () ؛ yindex = chesslist [chesscount-1] .gety () ؛ } isback =! isback ؛ REPAINT () ؛ }. }} 5.3 نقطة فئة
Package Chess.lcc.com ؛ استيراد java.awt.*؛ Public Class Point {private int x ؛ // x value index piece in board private int y ؛ // y index induge of chess piece in the chess board color private color ؛ // color public static int diameter = 30 ؛ // diameter public pince (int x ، int y ، color) {this.x = x ؛ this.y = y ؛ this.color = اللون ؛ } // الحصول على قيمة فهرس x من قطعة الشطرنج في لوحة الشطرنج العامة int getx () {return x ؛ } // الحصول على قيمة فهرس y من قطعة الشطرنج في لوحة الشطرنج العامة int gety () {return y ؛ } // الحصول على قطعة الشطرنج Color GetColor () {Return Color ؛ }}ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.