2011-10-12 12 views
8

Tôi đang cố gắng tạo trò chơi cờ vua hoàn toàn cho việc học C# và cờ vua của mình. Chỉ cần bắt đầu với, tôi muốn tạo ra một lưới 8x8 của các nút thông qua mã chứ không phải là nhà thiết kế. Điều này sẽ tiết kiệm cho tôi khó mã hóa từng nút riêng lẻ.Tự động lập trình lưới bao gồm 64 nút (8x8)

Mảng nút có vẻ là một cách hay để bắt đầu nhưng tôi không biết làm thế nào để thực hiện điều này.

+0

chỉ để thêm im sử dụng studio hình ảnh 2010 và đang tạo biểu tượng này suign – Rg786

+3

Cập nhật câu hỏi của bạn thay vì thêm loại nhận xét này. – Otiel

Trả lời

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

đây chính xác là những gì tôi cần, cảm ơn bạn – Rg786

8

Bạn có thể tạo ra một lớp "vuông":

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; 
} 

và xác định một mảng để làm chỗ cho hình vuông 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

mặc dù câu trả lời của StephanE phù hợp hơn với những gì id muốn thực hiện ngay bây giờ, mã của bạn là bất kỳ mở để thay thế cách làm việc, bệnh chắc chắn nhìn vào này nhiều hơn, tôi thực sự đánh giá cao sự giúp đỡ của bạn. cảm ơn bạn. – Rg786

+0

Bạn được chào đón. –

1

Có thể bạn ca sử dụng mã dưới đây để giải quyết vấn đề của bạn. Mã này là của ứng dụng Windows Form trong C#. Và đối với nút điều khiển.

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

cảm ơn bạn. rất giống với đoạn mã trên, bệnh chắc chắn sẽ thử điều này trong mô hình của tôi. – Rg786