用C#的控制台输出五子棋这个游戏 高手来 用C#的控制台输出五子棋这个游戏 注意是控制台啊! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 参考如下代码:using System;using System.Collections.Generic;using System.Text;namespace GobangApp{ class Gobang { /// <summary> /// 行数 /// </summary> public const int COL_COUNT = 17; /// <summary> /// 列数 /// </summary> public const int ROW_COUNT = 17; /// <summary> /// 网格字符 /// </summary> public const string GRID_CHARS = "┌┬┐├┼┤└┴┘"; /// <summary> /// 棋子字符 /// </summary> public const string CHESS_CHARS = "●○"; /// <summary> /// 棋子的类型 /// </summary> public enum ChessType { /// <summary> /// 没有棋子 /// </summary> None, /// <summary> /// 黑子 /// </summary> Black, /// <summary> /// 百子 /// </summary> White } /// <summary> /// 棋子的坐标 /// </summary> public ChessType[,] chessPoints = new ChessType[COL_COUNT, ROW_COUNT]; /// <summary> /// 绘制到屏幕 /// </summary> public void Draw() { Console.Clear(); Console.CursorLeft = 0; Console.CursorTop = 0; StringBuilder vStringBuilder = new StringBuilder(0x1000); for (int vRow = 0; vRow < ROW_COUNT; vRow++) { for (int vCol = 0; vCol < COL_COUNT; vCol++) { switch(chessPoints[vCol, vRow]) { case ChessType.None: int i, j; switch (vCol) { case 0: i = 0; break; case COL_COUNT - 1: i = 2; break; default: i = 1; break; } switch (vRow) { case 0: j = 0; break; case ROW_COUNT - 1: j = 2; break; default: j = 1; break; } vStringBuilder.Append(GRID_CHARS[j * 3 + i]); break; case ChessType.Black: vStringBuilder.Append(CHESS_CHARS[0]); break; case ChessType.White: vStringBuilder.Append(CHESS_CHARS[1]); break; } } vStringBuilder.AppendLine(); } Console.Write(vStringBuilder.ToString()); } } class Program { static void Main(string[] args) { Gobang vGobang = new Gobang(); vGobang.chessPoints[8, 8] = Gobang.ChessType.Black; vGobang.Draw(); Console.ReadKey(); vGobang.chessPoints[8, 9] = Gobang.ChessType.White; vGobang.Draw(); Console.ReadKey(); vGobang.chessPoints[6, 6] = Gobang.ChessType.Black; vGobang.Draw(); Console.ReadKey(); } }} combobox的value和text的问题 c# 操作access数据库--关于更新的数据库表的问题 C#的类 方法 等问题 请教高手赐教 C# 不四舍五入的问题,之纠结,望大家进来给予帮助,谢谢。。。 类之间如何传数据 C# 里恢复数据库问题 应用程序窗体问题2个 海思剪切板:alt+1~9复制,ctrl+1~9粘贴,当手工复制了之后,代码怎么实现ctrl+1~9粘贴这个动作? oledb 从Excel 取数据 长度大于255 的不能全取出 Winform界面展示效果 求助 ArrayList 问题 消息提示<在线等>
using System;
using System.Collections.Generic;
using System.Text;namespace GobangApp
{
class Gobang
{
/// <summary>
/// 行数
/// </summary>
public const int COL_COUNT = 17;
/// <summary>
/// 列数
/// </summary>
public const int ROW_COUNT = 17;
/// <summary>
/// 网格字符
/// </summary>
public const string GRID_CHARS = "┌┬┐├┼┤└┴┘";
/// <summary>
/// 棋子字符
/// </summary>
public const string CHESS_CHARS = "●○";
/// <summary>
/// 棋子的类型
/// </summary>
public enum ChessType
{
/// <summary>
/// 没有棋子
/// </summary>
None,
/// <summary>
/// 黑子
/// </summary>
Black,
/// <summary>
/// 百子
/// </summary>
White
}
/// <summary>
/// 棋子的坐标
/// </summary>
public ChessType[,] chessPoints = new ChessType[COL_COUNT, ROW_COUNT];
/// <summary>
/// 绘制到屏幕
/// </summary>
public void Draw()
{
Console.Clear();
Console.CursorLeft = 0;
Console.CursorTop = 0;
StringBuilder vStringBuilder = new StringBuilder(0x1000); for (int vRow = 0; vRow < ROW_COUNT; vRow++)
{
for (int vCol = 0; vCol < COL_COUNT; vCol++)
{
switch(chessPoints[vCol, vRow])
{
case ChessType.None:
int i, j;
switch (vCol)
{
case 0: i = 0; break;
case COL_COUNT - 1: i = 2; break;
default: i = 1; break;
}
switch (vRow)
{
case 0: j = 0; break;
case ROW_COUNT - 1: j = 2; break;
default: j = 1; break;
}
vStringBuilder.Append(GRID_CHARS[j * 3 + i]);
break;
case ChessType.Black:
vStringBuilder.Append(CHESS_CHARS[0]);
break;
case ChessType.White:
vStringBuilder.Append(CHESS_CHARS[1]);
break;
}
}
vStringBuilder.AppendLine();
}
Console.Write(vStringBuilder.ToString());
}
} class Program
{
static void Main(string[] args)
{
Gobang vGobang = new Gobang();
vGobang.chessPoints[8, 8] = Gobang.ChessType.Black;
vGobang.Draw();
Console.ReadKey();
vGobang.chessPoints[8, 9] = Gobang.ChessType.White;
vGobang.Draw();
Console.ReadKey();
vGobang.chessPoints[6, 6] = Gobang.ChessType.Black;
vGobang.Draw();
Console.ReadKey();
}
}
}