c# 实现的命令提示窗口玩快艇骰子游戏程序

这是一篇关于使用C#编程语言实现的快艇骰子游戏程序的总结。作者在学习C#基础后,通过3天的时间完成了这个游戏,主要包括Main函数、界面数组类、界面打印与刷新类以及骰子滚动和计分逻辑的实现。
摘要由CSDN通过智能技术生成

     刚刚学习完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
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值