2011-10-12 13 views
8

युक्त ग्रिड प्रोग्रामिंग मैं अपने सीखने सी # और शतरंज के लिए पूरी तरह से शतरंज गेम बनाने की कोशिश कर रहा हूं। बस शुरू करने के लिए, मैं डिजाइनर के बजाय कोड के माध्यम से बटन के 8x8 ग्रिड बनाना चाहता हूं। यह मुझे प्रत्येक बटन को अलग-अलग कोडिंग करने में मदद करेगा।गतिशील रूप से 64 बटन (8x8)

एक बटन सरणी शुरू करने का एक अच्छा तरीका प्रतीत होता है लेकिन मुझे नहीं पता कि इसे कैसे कार्यान्वित किया जाए।

+0

सिर्फ विजुअल स्टूडियो 2010 का उपयोग करके आईएम जोड़ने के लिए और इस साइनइन विनफॉर्म को बना रहा हूं – Rg786

+3

इस तरह की टिप्पणी जोड़ने के बजाय अपना प्रश्न अपडेट करें। – Otiel

उत्तर

4
 int ButtonWidth = 40; 
     int ButtonHeight = 40; 
     int Distance = 20; 
     int start_x = 10; 
     int start_y = 10; 

     for (int x = 0; x < 8; x++) 
     { 
      for (int y = 0; y < 8; y++) 
      { 
       Button tmpButton = new Button(); 
       tmpButton.Top = start_x + (x * ButtonHeight + Distance); 
       tmpButton.Left = start_y + (y * ButtonWidth + Distance); 
       tmpButton.Width = ButtonWidth; 
       tmpButton.Height = ButtonHeight; 
       tmpButton.Text = "X: " + x.ToString() + " Y: " + y.ToString(); 
       // Possible add Buttonclick event etc.. 
       this.Controls.Add(tmpButton); 
      } 

     } 
+0

यह वही है जो मुझे चाहिए, धन्यवाद – Rg786

8

आप एक "वर्ग" वर्ग बना सकते हैं:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Windows.Forms; 


class Square:PictureBox 
{ 
    private bool color; 
    private char piece; 
} 

और 8x8 वर्गों के लिए जगह बनाने के लिए एक सरणी परिभाषित करते हैं।

public partial class Form1 : Form 
{ 
Square[,] square = new Square[8, 8]; 

public Form1() 
{ 
    InitializeComponent(); 
    int i, j; 

    for (i = 0; i < 8; i++) 
    { 
    for (j = 0; j < 8; j++) 
    { 
     this.square[i, j] = new Square();//Creating the chess object// 
     this.square[i, j].BackColor = System.Drawing.SystemColors.ActiveCaption; 
     this.square[i, j].BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; 
     this.square[i, j].Location = new System.Drawing.Point(57 + i * 40, 109 + j * 40); 
     this.square[i, j].Name = "chessBox1"; 
     this.square[i, j].Size = new System.Drawing.Size(40, 40); 
     this.square[i, j].TabIndex = 2; 
     this.square[i, j].TabStop = false; 
     this.Controls.Add(this.square[i, j]); 
    } 
    } 
} 
} 
+0

हालांकि स्टीफनई का उत्तर अब कौन सी आईडी को कार्यान्वित करना है, इसके लिए अधिक अनुकूल है, आपका कोड चीजों को करने के वैकल्पिक तरीकों के लिए कोई सलामी बल्लेबाज है, बीमार निश्चित रूप से इस और अधिक देखें, मैं वास्तव में आपकी मदद की सराहना करता हूं। धन्यवाद। – Rg786

+0

आपका स्वागत है। –

1

हो सकता है आप अपनी समस्या को हल करने के लिए नीचे दिए गए कोड का उपयोग ca। यह कोड सी # में विंडोज फॉर्म एप्लिकेशन का है। और नियंत्रण बटन के लिए।

for (int i = 0; i< 8; i++)  
{ 
    for (int j = 0; j < 8; j++) 
     { 
     Button BtnNew = new Button; 
     BtnNew.Height = 80; 
     BtnNew.Width = 80; 
     BtnNew.Location = new Point(80*i, 80*j); 
     this.Controls.Add(BtnNew); 
     } 
} 
+0

धन्यवाद। उपरोक्त कोड के समान ही, बीमार निश्चित रूप से मेरे मॉडल में इसे आजमाएं। – Rg786

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^