首页 > 其他分享 >C语言RPG迷宫游戏

C语言RPG迷宫游戏

时间:2022-11-12 12:00:24浏览次数:75  
标签:射手 吸血鬼 可调 迷宫 C语言 RPG 数据结构 游戏

C语言RPG迷宫游戏

算法与数据结构

期中作业
数据结构是由数据元素依据某种逻辑联系组织起来的结构。算法施加于数据结构,常用于解决复杂的计算问题。本次作业要求解决一个游戏走迷宫问题。游戏有以下设置:

  1. 游戏的为平面迷宫,迷宫形状为16X16个正方形方格所组成的正方形, 迷宫中的障碍物分布可调。有入口格和出口格,此外每个方格可以是路、草、石头(障碍物)、宝石或其他属性(可自行设计)。有两个特殊的格子,一个称为基地,另一 个称为源。在程序中,迷宫可以用二维数组的方式表达。
  2. 源可以不断产生吸血鬼,吸血鬼具有固定生命值,产生后可以四处移动,每次走1格,消耗1个生命值(参数可调),生命值消耗殆尽则吸血鬼消失,之后该格子会产生宝石(可选)。
    3.走迷宫的主角为一名射手 (或若干名,参数可调),装备若干支箭(参数可调),他的任务如下:

a)从入口走到出口, 则胜利并游戏结束;
b)在行走过程中, 保护基地不被吸血鬼占领;
c)尽量多 地射死吸血鬼,获得较高分值:
d) 如果吸血鬼占领了基地,则游戏失败。

4.射手每次走3格(路)或2格(草) (参数可调),如果射手被吸血鬼追上,则射手被杀死。
5. 箭的射程为5格(参数可调),收集宝石可以增加下一支箭的射程。
6.游戏开始后, 射手不由人操控,由事先设计好的算法自动行动。对于编程,本次作业有以下要求:

  1. 基础要求:
    a)实现二维迷宫的图形展示;
    b)实现吸血鬼的产生和随机移动:
    c)实现算法自动操控射手的移动和射箭;
    d)实现游戏的计分系统。

  2. 基本要求:通过对场景(迷宫)的设计,实现-一个简易关卡,使得主角很容易地抵挡吸血鬼的攻击,完成通关。
    3.扩展要求1:研究各种游戏参数的配置以及场景布置,使得游戏具有更好的趣味性。

注意:以上要求没有统一的、唯一正确的解决方案,同学们应该自己进行研究和探索。

期中作业上交材料的要求:
1.自己设计解决方案, 简易的解决方案得分较低,完整的解决方案,即使部分完成,得分也会较高;
2.作业上交形式为电子版文件。所有文件打包为一个文件,以“学号+姓名”的方式命名;
3.上交实现游戏的源程序 (c文件);
4.关于游戏, 有很多可研究的内容,比如:

a)分别以什么数据结构去实现游戏中的各种对象(草地、吸血鬼、射手等等) ?
b)射手应该如何规划从入口到出口的路线?
c)射手应该在何时偏离规划好的、至出口的路线,转而去保护基地?
d)射手应该以什么方式解决防守吸血鬼的问题,并拿到尽量多的宝石?
e)如何产生更有趣味性的场景布置和参数设计?
f)其他可待研究的问题。

请对上述问题进行研究,并撰写文章说明为实现各部分而采用的数据结构,并给出总体的程序流程图(docx 文件);
字数:论文部分字数(程序代码不计算在内)不少于1000,字数太少扣分。
上交期限:第14周周日(12月04日),打包成zip文件统一上传智慧树系统的期中作业部分。
抄袭0分!

源码传送门

传送门:https://pan.baidu.com/s/1JJs9vbZahUCB6cQvXLgAVg?pwd=1111

标签:射手,吸血鬼,可调,迷宫,C语言,RPG,数据结构,游戏
From: https://www.cnblogs.com/codewriter/p/16883406.html

相关文章

  • 新手初学c语言
    #include<stdio.h>intmain(){   printf("您好这是我写的第一个代码");   return0; }第二个代码#include<stdio.h>intmain(){inta=0;intb=0;intc=0;scanf_......
  • 按照C语言程序结构组成数字电路进行计算的计算机
    按照C语言程序结构组成数字电路进行计算的计算机按照C语言程序结构组成数字电路进行计算的计算机是一种可以按照C语言程序结构来安排加法器,输出显示电路,输入电路,的数字计算......
  • C语言随笔3
    常见关键字auto自动变量   breakcasecharconstcontinuedefaultdodoubleelse   enum枚举   extern引入外部符号   floatforgotoiflongin......
  • C语言数组指针遍历二维数组
    #include<stdio.h>#include<stdlib.h>#include<string.h>intmain(void){inta[3][2]={{1,2},{3,4},{5,6}};int(......
  • 复习C语言
    1.scanf的原理#include<stdio.h>//scanf的特点://scanf会卡住,是因为标准输入缓冲区是空的,他会等着你输入intmain(){inta;scanf("%d",&a);printf("a=......
  • C语言必背18个经典程序
    C语言必背18个经典程序1、/*输出9*9口诀。共9行9列,i控制行,j控制列。*/#include"stdio.h"main(){inti,j,result;for(i=1;i<10;i++){for(j=1;j<10;j++){......
  • C语言 函数05 函数的声明
    函数声明1、告诉编译器有一个函数叫什么,参数是什么,返回类型是什么。但是具体是不是存在,函数声明决定不了。2、函数的声明一般出现在函数的使用之前。要满足先声明后使用。3......
  • C语言 函数03 函数的调用
    传值调用函数的形参和实参分别占有不同内存块,对形参的修改不会影响实参。传址调用传址调用是把函数外部创建变量的内存地址传递给函数参数的一种调用函数的方式。这种传参方......
  • 初识C语言3
    前言承接上文,我们继续学习1.关键字static上一篇博客我们讲解到static修饰局部变量,现在我们讲解一下static修饰全局变量1.1static修饰全局变量源文件1intg_val=2022;源文......
  • C语言 指针及动态内存分配
    大一学《计算系统基础》的时候,没有讲这一块的内容,导致后面遇到指针就头疼,今天特来梳理一下这块的内容。1.变量的类型类型的语言,即要求定义变量的时候必须制定类型,然后编译器......