游戏过程

news/2025/2/28 15:56:03/文章来源:https://www.cnblogs.com/cannedmint/p/18615778

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-1if(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("                              ");
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/855038.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

6.Group组件

关于Group组件的简单介绍首先,Group组件本身并不是一个“布局”类的组件,它只是一个容器,没有提供调整内部组件展示位置的方法,也就是说,当我们将多个组件(比如button)放在group中时,他们(根据流式规则?)会全部挤在窗口的左上角,当然,如果我们没有设置组件的大小的话…

直播预告:OpenAI 开始拥抱 RTC!为什么 LLM+RTC 才是多模态 AI 的未来?丨RTE Dev Talk

如果您正在开发具备语音对话、视觉理解等多模态能力的 AI Agent,请加入我们的直播讨论!OpenAI 今日发布了 OpenAI Realtime API 的重大更新,其中包括价格下调、新增模型以及一项尤为重要的改进: WebRTC 支持 。结合此前 WebRTC 创建者加入 OpenAI 的消息,这清晰地表明 Ope…

实验6 模板类、文件I/O与异常处理

实验四 vector.hpp#pragma once#include<iostream>#include<stdexcept>using namespace std;template<typename T>class Vector {private:int size;T* ptr;public:Vector(int size, int value = 0) :size{ size } {if (size < 0) {throw length_error(&qu…

把半年前完全没思路的题解了的感觉真好

虽然处理了很多次索引思路,不过最后还是过了。第一眼就有解题思路,这种感觉真不错,要的就是这种打怪升级的正反馈。 附上解题代码 `# @lc app=leetcode.cn id=2266 lang=python3[2266] 统计打字方案数@lc code=start from collections import Counter from functools import…

【Windows安全】13种回调函数执行ShellCode

#windows #回调函数 回调机制 在我们使用回调函数执行Shellcode之前,我们首先需要去了解Windows回调机制,Windows回调机制就像你和你的助手一样,比如说每一个律师所中的每一个律师都有一个实习助手,律师需要助手在特定的情况下去处理一些特殊的任务,但这些任务并不是日常…

MaLoader:一款基于Tauri+Rust的免杀马生成工具

免责声明 本公众号“黑客之道HackerWay”提供的资源仅供学习,利⽤本公众号“黑客之道HackerWay”所提供的信息而造成的任何直接或者间接的后果及损失,均由使⽤者本⼈负责,本公众号“黑客之道HackerWay”及作者不为此承担任何责任,一旦造成后果请自行承担责任!简介 MaLoade…

Element Plus组件库el-select组件多选回显踩坑

前情公司有经常需要做一些后台管理页面,我们选择了Element Plus,它是基于 Vue 3,面向设计师和开发者的组件库,是Vue框架生态中比较火的UI组件库,组件库丰富易用,组件链接:一个 Vue 3 UI 框架 | Element Plus,项目中经常会用到el-select多选功能,组件自带的多选交互也是…

Transformers 框架 Pipeline 任务详解(四):问答(question-answering)

本文深入介绍了 Transformers 框架中的 question-answering 任务,涵盖任务简介、应用场景如智能助手和客户服务、任务配置与模型选择、实战代码示例,以及如何利用 Gradio 创建 WebUI 界面,使用户能通过浏览器实时获取问答结果。文章旨在帮助读者快速掌握使用 Transformers 构…

docker高级篇(大厂进阶):安装mysql主从复制

docker高级篇(大厂进阶):安装mysql主从复制@目录1.Docker复杂安装详说1.1安装mysql主从复制本人其他相关文章链接 1.Docker复杂安装详说 1.1安装mysql主从复制主从搭建步骤: 1)新建主服务器容器实例3307 2)进入/mydata/mysql-master/conf目录下新建my.cnf 3)修改完配置后…

Bugku-CTF getshell

前几天在打2024 长城杯 & 国赛时发现的一道类似题题目:<?php define(pfkzYUelxEGmVcdDNLTjXCSIgMBKOuHAFyRtaboqwJiQWvsZrPhn, __FILE__); $cPIHjUYxDZVBvOTsuiEClpMXAfSqrdegyFtbnGzRhWNJKwLmaokQ = urldecode("%6E1%7A%62%2F%6D%615%5C%76%740%6928%2D%70%78%7…

无锡在线教育系统开发怎么样

无锡在线教育系统的开发作为当前教育领域内的一种创新方式,正在逐渐受到更多人的重视和应用。从现有的数据来看,它不仅提升了教学质量和学习的灵活性,还能在很大程度上降低运营和维护成本。那么,究竟这种开发状况是怎样的,接下来我们深入了解一下其发展情况及前景。来自ww…

Obfuscar:一款针对.NET程序的开源代码混淆工具

关于Obfuscar Obfuscar是一款针对.NET程序的开源代码混淆工具,该工具支持使用大量重载将 .NET 程序集中的元数据(包括方法、属性、事件、字段、类型和命名空间的名称)重命名为最小集合,在大多数情况下仅通过签名即可区分。 例如,如果某个类仅包含接受不同参数的方法,则可…