贪吃蛇游戏实验报告

使用教材:C语言课程设计与游戏开发实践
一、实验目的

  1. 熟悉实验环境VC++(或Dev C++);
  2. 熟悉console的输入和输出;
  3. 通过游戏的需求,进一步掌握数组的使用。
    二、实验环境
    DEV C++/VC++
    三、实验记录
    实验思路:以实验教材P87至P91页的代码为基础,加入计分功能,计命功能,变速功能,游戏成功和失败出口,规则和选择蛇型的输入界面,道具,复活和暂停等功能。
    实验过程:由于一开始思路比较正确且有上次实验经验,问题都能得到较好解决。但由于缺乏如加入断点等调试经验,导致浪费较多时间。
    实验结果:代码量248行,分为front() startup() show() move() updateWithInput() back() 6个模块,基本实现上述功能。
    实验的代码和注释:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <windows.h>
#define H  24 //画面尺寸
#define w  79
int dire;     // 小蛇移动位置,上下左右分别用1,2,3,4表示
int f_x, f_y; // 食物F
int S_x, S_y; // 道具S
int canvas[H][w] = {
    0 };//数组画布
int a;        //用户输入变量
int life = 3, score = 0;
void gotoxy(int x, int y)
{
   
	HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
	COORD pos;
	pos.X = x;
	pos.Y = y;
	SetConsoleCursorPosition(handle, pos);
}
void front()
{
   
	printf("规则:1、游戏界面中,通过'W''A''S''D'操纵蛇移动,'p'键暂停,'ESC'键退出。\n");
	printf("      2、游戏过程中,用户通过吞食道具和食物得分,生命=3,初始分数=4,食物'F'分数+1,道具'S’生命-1且分数-20。\n");
	printf("      3、游戏过程中,误食道具“S”,碰墙和咬自己的尾巴生命-1,当生命=0时游戏结束,分数=100时游戏通关。\n");
	printf("      4、游戏过程中,分数到达一定程度后,蛇的速度会发生变化。\n");
	printf("                                    蛇的样式1,@**************\n");
	printf("                                    蛇的样式2,@$$$$$$$$$$$$$$\n");
	printf("                                    蛇的样式3,@&&&&&&&&&&&&&&\n");
	printf("了解规则后,将输入法切换成英文,输入数字1到3选择蛇的样式,按下回车,游戏开始。\n");
begin:scanf("%d", &a);
	if (a < 1 || a>3) {
   //检测非法输录
		printf("非法输入,清正确输入\n");
		goto begin;
	}
	system("cls");
}
void startup() // 初始化数据
{
   
	int i, j;
	for (i = 0; i < H; i++)
	{
   
		canvas[i][0] = -1;
		canvas[i][w - 1] = -1;
	}
	for (j = 0; j < w; j++
  • 4
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值