刚刚学习完c#基础, 花了3天时间为自己学习做个小结:小游戏快艇骰子
Main 函数
using System;
namespace kuaiting
{
class Program
{
private static RollDice rd = new RollDice();
static void Main(string[] args)
{
int i = 0;
rd.inter.PrintInterface();
Console.WriteLine("请按任意键开始游戏,H键查看游戏规则。");
rd.Help();
//进行26次操作,每个玩家13次
while (i <= 25)
{
rd.ma.player = i % 2 + 1;
rd.ControlFun();
rd.RollDiceFun();
rd.ConfirmPlayerCurPosition();
Console.Clear();
rd.inter.PrintInterface();
i++;
}
Console.WriteLine();
if (rd.ma.player1ScoreTable[15] > rd.ma.player2ScoreTable[15]) Console.WriteLine("-------------------玩家1获胜!!!-------------------");
else if (rd.ma.player1ScoreTable[15] == rd.ma.player2ScoreTable[15]) Console.WriteLine("-------------------平局!!!-------------------");
else Console.WriteLine("-------------------玩家2获胜!!!-------------------");
Console.ReadLine();
}
}
}
界面需要的数组类
using System;
using System.Collections.Generic;
using System.Text;
namespace kuaiting
{
/// <summary>
/// 数组类:提供所有使用到的数组
/// </summary>
class MenuArray
{
public MenuArray()
{
string[] tableTip = new string[16];
player1ScoreTable = new int[16];
player2ScoreTable = new int[16];
player1CursorPosition = new string[16];
player2CursorPosition = new string[16];
diceArray = new List<int>(5);
diceArrayCursorPosition = new string[5];
tempConfirmArray = new List<int>(5);
tempArrayCursorPosition = new string[5];
player1ExpectArray = new int[16];
player2ExpectArray = new int[16];
tempArray = new int[5];
player = 1;
CleanArray();
}
//正在操作的玩家标记
public int player;
//玩家1分数面板
public int[] player1ScoreTable;
//玩家1分数选择光标
public string[] player1CursorPosition;
//玩家2分数面板
public int[] player2ScoreTable;
//玩家2分数选择光标
public string[] player2CursorPosition;
//摇出骰子的数组
public List<int> diceArray;
//摇出骰子的数组光标
public string[] diceArrayCursorPosition;
//被暂时确认的数组
public List<int> tempConfirmArray;
//被暂时确认的光标数组
public string[] tempArrayCursorPosition;
//预计得分数组
public int[] player1ExpectArray;
public int[] player2ExpectArray;
//临时数组
public int[] tempArray;
/// <summary>
/// 清空界面光标
/// </summary>
public void CleanArray()
{
for (int i = 0; i < 5; i++)
{
tempArrayCursorPosition[i] = " ";
diceArrayCursorPosition[i] = " ";
tempArray[i] = 0;
}
for (int i = 0; i < 16; i++)
{
player1CursorPosition[i] = " ";
player2CursorPosition[i] = " ";
}
}
}
}
界面打印与刷新类
using System;
using System.Collections.Generic;
using System.Text;
namespace kuaiting
{
/// <summary>
/// 界面类:提供排版界面、打印界面功能
/// </summary>
class Interface
{
public int rollTime = 0;
MenuArray ma;
public Interface(MenuArray menuArray)
{
ma = menuArray;
}
/// <summary>
/// 转换临时摇骰子过程中分数预估
/// </summary>
/// <param name="a">预估的分数</param>
/// <returns></returns>
private string TranslateStr(int a)
{
if (a == 0) return " ";
else if (a < 10) return "{0" + a.ToString() + "}";
else return "{" + a.ToString() + "}";
}
/// <summary>
/// 转换玩家面板分数显示
/// </summary>
/// <param name="index">玩家1下标</param>
/// <returns></returns>
private string TranslatePlayer1Score(int index)
{
return ma.player1ScoreTable[index] >= 10 ? ma.player1ScoreTable[index].ToString() : ma.player1ScoreTable[index] >= 0 ? "0" + ma.player1ScoreTable[index].ToString() : "xx";
}
/// <summary>
/// 转换玩家面板分数显示
/// </summary>
/// <param name="index">玩家2下标</param>
/// <returns></returns>
private string TranslatePlayer2Score(int index)
{
return ma.player2ScoreTable[index] >= 10 ? ma.player2ScoreTable[index].ToString() : ma.player2ScoreTa