最近想学一些简单的网络编程
在网上找了很久没有找到联机五子棋的程序代码
就自己写了一个
原来是很简单的(嘿嘿)
代码写的很差, bug很大
请大家指教,优化
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.Net.Sockets;
using System.Threading;
namespace 五子棋
{
public partial class Form1 : Form
{
//联机参数
private IPAddress HostIP = IPAddress.Parse("127.0.0.1");
private IPEndPoint ChatServer;
private Socket ChatSocket;
private bool flag = true;
private Socket AcceptedSocket;
private bool sign = false;
private bool play;
public Form1()
{
InitializeComponent();
}
//五子棋参数
private enum Chess { Nune = 0, White, Black };
private Chess [,]Box = new Chess[15,15];
private Chess m_Player;
private Chess Player
{
get
{
return m_Player;
}
set
{
m_Player = value;
}
}
//重载onpaint函数
protected override void OnPaint(PaintEventArgs e)
{
Graphics g = this.CreateGraphics();
Pen pen1 = new Pen(Color.Black, 1);
for (int i = 40; i <= 460; i = i + 30)
for (int j = 40; j <= 460; j = j + 30)
{
g.DrawLine(pen1, i, 40, i, 460);
g.DrawLine(pen1, 40, j, 460, j);
}
base.OnPaint(e);
}
//鼠标单击事件
protected override void OnMouseDown(MouseEventArgs e)
{
base.OnMouseDown(e);
if (e.Button == MouseButtons.Left)
{
if (sign)
{
Point p = new Point((e.X - 20) / 30, (e.Y - 20) / 30);
//出界判断
if ((p.X < 0 || p.X > 14) || (p.Y < 0 || p.Y > 14))
return;
if (AddChess(p))
{
sign = false;
if (play)
{
Resurt(p, Chess.Black);
try
{
Byte[] SentByte = new Byte[4];
string SentStr = p.X.ToString("X") + p.Y.ToString("X");
SentByte = System.Text.Encoding.BigEndianUnicode.GetBytes(SentStr.ToCharArray());
AcceptedSocket.Send(SentByte, SentByte.Length, 0);