首页 > 其他分享 >游戏过程

游戏过程

时间:2024-12-18 21:53:21浏览次数:2  
标签:p1 Console 游戏 type Player WriteLine 过程 SetCursorPosition

alt text

根据是否结束游戏的逻辑选择对掷骰子的过程用bool申明变量

掷骰子
static bool RollDice (w,h,ref Player p1,ref Player p2,Map map)
{
    InfoClear(h);
    Console.ForegroundColor=p1.type==E_PlayerType.Player?ConsoleColor.Cyan:ConsoleColor.Meganta;
    if(p1.isPause)
    {
        p1.isPause = false;
        Console.SetCursorPosition(2,h-5)
        Console.WriteLine("收到了停滞的影响,{0}停止行动一回合",p1.type==E_PlayerType.Player?"你":"电脑");
        Console.SetCursorPosition(2,h-4)
        Console.WriteLine("按任意键,让{0}掷骰子",p1.type==E_PlayerType.Player?"电脑":"你");
        return false;
    }
    Random r = new Random();
    int dice = r.Next(1, 7);
    p1.mapIndex+=dice;
    Console.SetCursorPosition(2,h-5)
    Console.WriteLine("{0}掷除了{1}点",p1.type==E_PlayerType.Player?"你":"电脑",dice);
    //判断是否到达终点,索引从0开始,所以最后一格是Lengt-1
    if(p1.mapIndex>=map.grids.Length-1)
    {
        p1.mapIndex = map.grids.Length-1;
        Console.SetCursorPosition(2,h-4);
        if(p1.type==E_PlayerType.Player)
        {
            Console.Write("恭喜你率先抵达终点");
        }
        else
        {
            Console.Write("很遗憾,你输掉了比赛");
        }
        Console.SetCursorPosition(2,h-3);
        Console.Write("按任意键结束游戏");
        return true;
    }
    else
    {
        //没到达终点的时候就判断玩家到了什么样的格子
        Grid grid=map.grids[p1.mapIndex];
        switch(grid.type)
        {
            case E_Grid_Type.Normal:
            Console.SetCursorPosition(2,h-4)
            Console.WriteLine("{0}到达了一个安全位置",p1.type==E_PlayerType.Player?"你":"电脑");
            Console.SetCursorPosition(2,h-3)
            Console.WriteLine("按任意键,让{0}掷骰子",p1.type==E_PlayerType.Player?"电脑":"你");
            break;
            case E_Grid_Type.Bomb:
            p1.mapIndex -= 5;
            Console.SetCursorPosition(2,h-4)
            Console.WriteLine("{0}踩到了炸弹,倒退了5格",p1.type==E_PlayerType.Player?"你":"电脑");
            Console.SetCursorPosition(2,h-3)
            Console.WriteLine("按任意键,让{0}掷骰子",p1.type==E_PlayerType.Player?"电脑":"你");
            if(p1.mapIndex<=0)
            {
                p1.mapIndex = 0;
            }
            break;
            case E_Grid_Type.Pause:
            Console.SetCursorPosition(2,h-4)
            Console.WriteLine("{0}被时空影响",p1.type==E_PlayerType.Player?"你":"电脑");
            Console.SetCursorPosition(2,h-3)
            Console.WriteLine("按任意键,让{0}掷骰子",p1.type==E_PlayerType.Player?"电脑":"你");
            p1.isPause=true;
            break;
            case E_Grid_Type.Tunnel:
            int temp=p2.mapIndex;
            p2.mapIndex=p1.mapIndex;
            p1.mapIndex=temp;
            Console.SetCursorPosition(2,h-4)
            Console.WriteLine("{0}进入了隧道,双方交换位置",p1.type==E_PlayerType.Player?"你":"电脑",);
            Console.SetCursorPosition(2,h-3)
            Console.WriteLine("按任意键,让{0}掷骰子",p1.type==E_PlayerType.Player?"电脑":"你");
            break;
        }
    }
    return false; 
}
游戏场景循环
bool isGameOver = false;
while(true)
{
    Console.ReadKey(true);
    isGameOver=RollDice(w,h,ref player,ref robot,map);
    map.Draw();
    DrawPlayer(player,robot,map);
    if(isGameOver)
    {
    Console.ReadKey(true);
    nowSceneType=E_SceneType.End;
    break;
    }
        Console.ReadKey(true);
    isGameOver=RollDice(w,h,ref robot,ref player,map);
    map.Draw();
    DrawPlayer(player,robot,map);
    if(isGameOver)
    {
    Console.ReadKey(true);
    nowSceneType=E_SceneType.End;
    break;
    }
}
提示信息擦除
{
    Console.SetCursorPosition(2,h-5)
    Console.WriteLine("                              ");
    Console.SetCursorPosition(2,h-5)
    Console.WriteLine("                              ");
    Console.SetCursorPosition(2,h-5)
    Console.WriteLine("                              ");
    Console.SetCursorPosition(2,h-5)
    Console.WriteLine("                              ");
}

标签:p1,Console,游戏,type,Player,WriteLine,过程,SetCursorPosition
From: https://www.cnblogs.com/cannedmint/p/18615778

相关文章

  • SSL或者说是TSL加密传输的过程
    TLS(TransportLayerSecurity)基本概述TLS是一种加密协议,用于在网络通信中提供安全保障。它的前身是SSL(SecureSocketsLayer),主要目的是在两个通信实体(如客户端和服务器)之间建立一个安全的通信通道,确保数据的保密性、完整性和认证性。TLS加密过程主要步骤握手阶段(Handsh......
  • 289. 生命游戏
    生命游戏根据百度百科,生命游戏,简称为生命,是英国数学家约翰·何顿·康威在1970年发明的细胞自动机。给定一个包含m×n个格子的面板,每一个格子都可以看成是一个细胞。每个细胞都具有一个初始状态:1即为活细胞(live),或0即为死细胞(dead)。每个细胞与其八个相邻位置(......
  • 534. 游戏玩法分析 III - 力扣(LeetCode)
    534.游戏玩法分析III-力扣(LeetCode)目标输入输入:Activitytable:player_iddevice_idevent_dategames_played122016/3/15122016/5/26132017/6/251312016/3/20342018/7/35输出输出:player_idevent_dategames_played_so_far12016/3/1512016/5/21112017/6/251232016/3/......
  • 《游戏设计艺术(第三版)》笔记
    《游戏设计艺术(TheArtofGameDesign)》第三版[美]JesseSchell著,刘嘉俊杨逸等译电子工业出版社目录第1章 太初之时,有设计师第2章设计师创造体验第3章体验发生于场景第4章体验从游戏中诞生第5章游戏由元素构成第6章元素支撑起主题第7章游戏始于一个创意......
  • 学霸带你游戏化理解 Python 装饰器与生成器
    使代码更高效在现代Python开发中,装饰器和生成器为编程提供了强大的功能和灵活性。它们不仅能帮助程序员优化性能,还能使代码结构更加简洁、清晰。装饰器通过增强现有函数的功能,使得代码更具可扩展性和重用性;生成器则通过惰性求值提高内存效率,让你能够高效处理大规模数据。无......
  • 学霸带你游戏化训练批判性阅读打破传统思维模式
    高效的阅读技巧在面对海量信息时,提高阅读效率和准确性至关重要。批判性阅读不仅要求我们具备深入分析的能力,还需要有效管理阅读的时间和精力。通过提升阅读技巧,我们能够快速抓住关键信息,并高效完成信息筛选与处理。提升扫描与浏览技巧批判性阅读中,快速扫描和浏览能帮助我们......
  • 过程驱动的代码范式
    在面向对象大张旗鼓的今天,大多数人对面向过程编程嗤之以鼻,但有些场景使用过程驱动的编程思路,反而能更好地描述业务规则以及业务流程,比如前台表达的渲染链路,或是章节一中比较重的领域服务,使用过程驱动能更好地描述数据处理的过程以及产品用例流程。上图能力库中的能力点是我们过......
  • 冬季限定节日游戏工作流优化,6 款办公软件哪家强?
    在游戏行业的节日盛宴中,每一个新游戏的上线或重大更新都是一场与时间赛跑的挑战,需要开发团队、测试团队和运营团队如同精密齿轮般紧密协作。而可视化团队协作办公软件则成为了推动这一复杂机器高效运转的润滑剂。本文将站在全J人游戏公司的视角,深入剖析6款此类办公软件,探讨它......
  • ArkWeb页面拦截与自定义响应 - 控制加载过程
    ArkWeb页面拦截与自定义响应-控制加载过程简介在Web应用开发中,有时我们需要对页面加载过程进行更精细的控制,比如拦截特定的请求并返回自定义的响应内容。ArkWeb框架提供了这样的能力,允许开发者拦截页面和资源加载请求,并自定义响应。本文将详细介绍如何使用ArkWeb框架实现这些......
  • 冬季游戏协作挑战,6 款办公软件能否成为团队的坚实后盾?
    在游戏行业的节日盛宴中,每一个新游戏的上线或重大更新都是一场与时间赛跑的挑战,需要开发团队、测试团队和运营团队如同精密齿轮般紧密协作。而可视化团队协作办公软件则成为了推动这一复杂机器高效运转的润滑剂。本文将站在全J人游戏公司的视角,深入剖析6款此类办公软件,探讨它......