重构 MusicFrom 和 Main 类,优化字符数组处理逻辑,调整变量声明为 readonly,清理无用代码
This commit is contained in:
parent
66f4c5ffaf
commit
37e5c0b998
|
@ -33,22 +33,20 @@ public class MusicFrom
|
|||
private const int STD_INPUT_HANDLE = -10;
|
||||
|
||||
private long time = 0;
|
||||
int MaxX = 0;
|
||||
int MaxY = 0;
|
||||
readonly int MaxX;
|
||||
readonly int MaxY;
|
||||
|
||||
public MusicFrom()
|
||||
{
|
||||
setCharArry();
|
||||
MaxY = Program.chars.GetLength(0);
|
||||
MaxX = Program.chars.GetLength(1);
|
||||
MaxY = Program.chars.GetLength(0);
|
||||
SetCharArry();
|
||||
new Thread(PrintCharArray).Start();
|
||||
new Thread(KeyboardMapping).Start();
|
||||
new Thread(Run).Start();
|
||||
|
||||
// 恢复控制台输入模式
|
||||
// mode |= ENABLE_ECHO_INPUT | ENABLE_LINE_INPUT | ENABLE_PROCESSED_INPUT;
|
||||
// SetConsoleMode(hStdin, mode);
|
||||
|
||||
}
|
||||
|
||||
public void Run()
|
||||
|
@ -70,8 +68,8 @@ public class MusicFrom
|
|||
DownKey('G', 17);
|
||||
break;
|
||||
case 3:
|
||||
DownKey('M', 24);
|
||||
break;
|
||||
// DownKey('M', 24);
|
||||
return;
|
||||
case 4:
|
||||
DownKey('J', 31);
|
||||
break;
|
||||
|
@ -118,8 +116,7 @@ public class MusicFrom
|
|||
IntPtr hStdin = GetStdHandle(STD_INPUT_HANDLE);
|
||||
|
||||
// 获取当前控制台输入模式
|
||||
uint mode;
|
||||
if (!GetConsoleMode(hStdin, out mode))
|
||||
if (!GetConsoleMode(hStdin, out uint mode))
|
||||
{
|
||||
Console.WriteLine("无法获取控制台输入模式");
|
||||
return;
|
||||
|
@ -136,9 +133,6 @@ public class MusicFrom
|
|||
int frameCount = 0;
|
||||
double totalTime = 0;
|
||||
int i; int j;
|
||||
// 获取字符数组的行数和列数
|
||||
var a = Program.chars.GetLength(0);
|
||||
var b = Program.chars.GetLength(1);
|
||||
var buffer = new StringBuilder();
|
||||
while (Program.IsWhile)
|
||||
{
|
||||
|
@ -146,9 +140,9 @@ public class MusicFrom
|
|||
Console.SetCursorPosition(0, 0);// 设定光标位置
|
||||
Console.Clear();
|
||||
buffer.Clear();
|
||||
for (i = 0; i < a; i++)
|
||||
for (i = 0; i < MaxY; i++)
|
||||
{
|
||||
for (j = 0; j < b; j++)
|
||||
for (j = 0; j < MaxX; j++)
|
||||
{
|
||||
buffer.Append(Program.chars[i, j].Char);
|
||||
time++;
|
||||
|
@ -162,7 +156,7 @@ public class MusicFrom
|
|||
Console.ForegroundColor = ConsoleColor.DarkBlue;
|
||||
Console.Write(buffer.ToString());
|
||||
buffer.Clear();
|
||||
for (i = 0; i < b; i++)
|
||||
for (i = 0; i < MaxX; i++)
|
||||
{
|
||||
buffer.Append('-');
|
||||
}
|
||||
|
@ -172,18 +166,11 @@ public class MusicFrom
|
|||
buffer.Clear();
|
||||
// int totalLength = 50;
|
||||
int totalAs = jianpan.Length;
|
||||
int spaceBetweenAs = (b - totalAs) / (totalAs - 1);
|
||||
int spaceBetweenAs = (MaxX - totalAs) / (totalAs - 1);
|
||||
|
||||
for (i = 0; i < totalAs; i++)
|
||||
{
|
||||
buffer.Clear();
|
||||
// if (isDown[3] && i == 3)
|
||||
// {
|
||||
// // 显示空格键
|
||||
// // ConsoleKey.Spacebar
|
||||
// buffer.Append("Spacebar");
|
||||
// continue;
|
||||
// }
|
||||
for (j = 0; j < spaceBetweenAs / 2; j++)
|
||||
{
|
||||
buffer.Append(' ');
|
||||
|
@ -230,7 +217,7 @@ public class MusicFrom
|
|||
mode |= ENABLE_ECHO_INPUT | ENABLE_LINE_INPUT | ENABLE_PROCESSED_INPUT;
|
||||
SetConsoleMode(hStdin, mode);
|
||||
}
|
||||
private void setCharArry()
|
||||
private void SetCharArry()
|
||||
{
|
||||
for (int i = 0; i < Program.chars.GetLength(0); i++)
|
||||
{
|
||||
|
|
|
@ -29,6 +29,7 @@ public class Program
|
|||
public Program()
|
||||
{
|
||||
Console.Clear();
|
||||
// ResetChars();
|
||||
string[] str = ["抽卡", "搜索引擎", Music.title, "小龙快跑", "贪吃蛇", "铁锈助手(联机模块)[未开发]"];
|
||||
var modeSwitch = new ModeSwitch("请选择你要执行的操作", str, (a) =>
|
||||
{
|
||||
|
|
|
@ -1,23 +1,22 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using static Debug.MinLong.Main;
|
||||
|
||||
namespace Debug.Tanchishe;
|
||||
namespace Debug.Tanchishe;
|
||||
|
||||
/// <summary>
|
||||
/// 贪吃蛇主入口
|
||||
/// </summary>
|
||||
public class Main
|
||||
{
|
||||
readonly int MaxY;
|
||||
readonly int MaxX;
|
||||
public Main()
|
||||
{
|
||||
MaxY = Program.chars.GetLength(0);
|
||||
MaxX = Program.chars.GetLength(1);
|
||||
|
||||
Console.Clear();
|
||||
Program.ResetChars();
|
||||
she.x = b / 2;
|
||||
she.y = a / 2;
|
||||
she.x = MaxY / 2;
|
||||
she.y = MaxX / 2;
|
||||
Program.chars[she.y, she.x].Char = she.Char;
|
||||
//sx();
|
||||
new Thread(PrintCharArray).Start();//打印
|
||||
KeyThread();//键盘
|
||||
new Zhixing(this).Run();
|
||||
|
@ -25,6 +24,9 @@ public class Main
|
|||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 蛇类
|
||||
/// </summary>
|
||||
public class She
|
||||
{
|
||||
public int x, y;
|
||||
|
@ -33,8 +35,6 @@ public class Main
|
|||
}
|
||||
public She she = new();
|
||||
int i; int j;
|
||||
int a = Program.chars.GetLength(0);
|
||||
int b = Program.chars.GetLength(1);
|
||||
private void PrintCharArray()
|
||||
{
|
||||
while (Program.IsWhile)
|
||||
|
@ -48,9 +48,9 @@ public class Main
|
|||
{
|
||||
Console.SetCursorPosition(0, 0);// 设定光标位置
|
||||
Console.Clear();
|
||||
for (i = 0; i < a; i++)
|
||||
for (i = 0; i < MaxY; i++)
|
||||
{
|
||||
for (j = 0; j < b; j++)
|
||||
for (j = 0; j < MaxX; j++)
|
||||
{
|
||||
// Console.ForegroundColor = chars[i, j].Color;
|
||||
Console.Write(Program.chars[i, j].Char);
|
||||
|
@ -95,7 +95,7 @@ public class Main
|
|||
break;
|
||||
|
||||
case ConsoleKey.A:
|
||||
case ConsoleKey.LeftArrow:
|
||||
case ConsoleKey.LeftArrow:
|
||||
Program.chars[she.y, she.x--].Char = Program.ShowChar;
|
||||
Program.chars[she.y, she.x].Char = she.Char;
|
||||
break;
|
||||
|
|
Loading…
Reference in New Issue
Block a user