• 1.项目需求:
  • 2.项目分析:
  • 3.项目设计:
    • 3.1设计字母结构体:
    • 3.2屏幕大小:
    • 3.3 添加二维数组空格函数 LnitGrid(GridArray ga)
    • 3.4 显示网格 ShowGrid(GridArray ga, struct LetterNode* px, int n)
    • 3.5 产生随机字母函数 RandLetter(struct LetterNode* px, int n)
    • 3.6 main函数
    • 3.7 调用的头文件

1.项目需求:

随机产生一个字母从屏幕下落,玩家输入字母,如果和显示字母相同,就消去字母;游戏会再随机产生一个字母,继续游戏,如果字母落出屏幕,玩家失败,游戏结束;

2.项目分析:

项目由两个模块构成:
1.显示模块 : 显示模块由二维数组构成,把随机产出的字母赋值到二维数组中。
2.处理模块 : 处理模块功能有:随机产生字母 ,输入字母比较,字母是否落出屏幕,字母下降功能;

3.项目设计:

3.1设计字母结构体:

struct LetterNode
{char ch;int row;int col;
};

3.2屏幕大小:

#define ROWSIZE 20                                   // 行
#define COLSIEE 70                                  // 列
typedef char GridArray[ROWSIZE][COLSIEE + 1];      //二维数组的 网格
#define LETSIZE 1                                   // 产生的字母数

3.3 添加二维数组空格函数 LnitGrid(GridArray ga)

void LnitGrid(GridArray ga)          //
{for (int i = 0; i < ROWSIZE; i++){memset(ga[i], ' ', sizeof(char) * COLSIEE);ga[i][COLSIEE] = '\0';}
}

3.4 显示网格 ShowGrid(GridArray ga, struct LetterNode* px, int n)

清屏函数:system(“cls”); 头文件: #include <windows.h>

void ShowGrid(GridArray ga, struct LetterNode* px, int n)
{assert(px != NULL);system("cls");               //清屏LnitGrid(ga);for (int i = 0; i < n; ++i){ga[px[i].row][px[i].col] = px[i].ch;}for (int i = 0; i < ROWSIZE; ++i){printf("%s \n", ga[i]);}
}

3.5 产生随机字母函数 RandLetter(struct LetterNode* px, int n)

void RandLetter(struct LetterNode* px, int n)
{assert(px != NULL);srand((int)time(NULL));for (int i = 0; i < n; i++){px[i].ch = rand() % 26 + 'a';px[i].row = 0;px[i].col = rand() % COLSIEE;}
}

3.6 main函数

_kbhit() : //键盘是否有输入 头文件:#include<conio.h>

int main()
{GridArray ga;char ch;struct LetterNode x[LETSIZE] = { 0 };RandLetter(x, LETSIZE);while (1){ShowGrid(ga, x, LETSIZE);Sleep(1000);          //1000毫秒 == 1 秒if (_kbhit())          //键盘是否有输入{//ch = getchar();ch = _getch();     //无需等待回车输入if (ch == x[0].ch){x[0].ch = rand() % 26 + 'a';x[0].row = -1;x[0].col = rand() % COLSIEE;}}x[0].row += 1;if (x[0].row >= ROWSIZE){printf("游戏结束 \n");break;}}return 0;
}

3.7 调用的头文件

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<stdbool.h>
#include<assert.h>
#include<Windows.h>
#include<time.h>
#include<conio.h>
#include<ctype.h>

运行结果:

【打字母游戏_C语言实现】相关推荐

  1. python编写格斗游戏_C语言实现的开源 2D 格斗游戏: Punch Kick

    <Punch & Kick>是作者在大学期间用C语言开发的2D格斗游戏,其开源主要是面向开发者及编程爱好者,这款游戏并不适合发烧级玩家.审美帝. 下面是作者自己对这个游戏的介绍: ...

  2. c语言打字母游戏,C语言实现打字游戏

    该程序在TC3.0环境下编译通过,共有9个函数.分别是printScreen,start,leave,levelChoice,newWord,moving,wordHit,result和main. 其 ...

  3. c加加计算机游戏,用C语言实现五子棋游戏_C语言_软件编程

    C语言写五子棋,使用多文件形式,使用代码看起来更好看:在这里我实现的功能是双人博弈,如果要实现人机对战,那么代码就会很复杂: 一.main.c 在主调函数中首先要提供一个给用户选择的界面,在这里我们假 ...

  4. python实现消消乐游戏_C语言实现消消乐游戏

    本文实例为大家分享了C语言实现消消乐游戏的具体代码,供大家参考,具体内容如下 问题描述 给定一个矩阵, 判断移动哪一个格子,可以实现消除.(定义连续三个即可消除) 据说是华为的笔试题. 分析 先写一个 ...

  5. java三子棋人机游戏_C语言编程入门游戏《三子棋》

    经过C语言初级阶段的系统学习,对基本C语言的知识有了一定的了解和认识,能够通过C语言编程解决一些简单的问题.本次完成一个简单的游戏<三子棋>. 游戏简介:常见的3x3棋盘,有两名游戏玩家, ...

  6. win32框架,GDI图形编程写一个HelloWorld游戏_c语言

    1.如图,实现功能: Hello World!字符串跟随鼠标移动 鼠标左击Hello World!颜色为红色 鼠标右击Hello World!颜色为蓝色 鼠标滚轮滚动改变Hello World!颜色的 ...

  7. C语言零基础项目:打字母游戏!详细思路+源码分享

    每天一个C语言小项目,提升自己的编程能力!​ <字母游戏>是一款有趣的打字游戏,可以提高你的打字速度. 今天就用C语言写了这么个打字母的小程序,就是以前学习机上那种字母往下掉,然后按相应键 ...

  8. c语言打字母游戏源码

    #include <graphics.h> #include <conio.h> #include <time.h>// 来自公众号:c语言与cpp编程// 欢迎界 ...

  9. C语言项目实战:《打字母游戏》零基础项目丨183 行源代码示例

    这篇文章主要为大家详细介绍了C语言实现--<打字练习系统>,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下! 游戏介绍: <字母游戏>是一款敏捷打 ...

最新文章

  1. C语言实现傅里叶变换函数dft,idft,fft,ifft
  2. linux java maven_Linux——java+tomcat+maven 安装
  3. DbgPrint/KdPrint输出格式控制
  4. 独立成分分析(Independent component analysis, ICA)
  5. [Angularjs]过滤器
  6. [BZOJ2324][ZJOI2011][最小费用最大流]营救皮卡丘
  7. onvif 开发之video streamer---onvif实现功能和经验
  8. C#基础(Day08)
  9. 常用机器学习算法汇总比较(完)
  10. 只想做程序员的钢铁侠埃隆·马斯克,是如何成为亿万富翁的?
  11. 如何将本机的的git仓库提交到gitbub中
  12. 快速有效分离RNA——土壤RNA纯化试剂盒
  13. AdGuard2022手机电脑广告拦截工具
  14. Python模拟post提交表单数据 ——某二手车网站回拨电话的分析与利用
  15. PHP中的网络编程 -- Socket篇
  16. 设(X1,X2,…,Xn) 是来自正态总体N(μ,σ2),的一个样本,其中μ,σ2未知,求μ与σ2的极大似然估计量.
  17. 算法实现之宝石与石头
  18. 现在自学Java可以找到工作吗?
  19. python列表逆序输出_Python 让列表逆序排列的 3 种方式
  20. java多线程-爬电影天堂上的电影下载地址

热门文章

  1. 常用电商系统优劣势对比—管易云、远丰电商、电商宝、海商、旺店通ERP、百数
  2. Qt网络编程实战之HTTP服务器-安晓辉-专题视频课程
  3. 【剑指 Java】第 1 弹:靠这份 Java 基础知识总结,我拿到了满意的 Offer
  4. [Powerpoint]幻灯片放映显示在副显示屏
  5. 蛮力法-分治法-处理最近对问题
  6. 小象学院之python实例
  7. C语言实现统计整数出现次数
  8. 关于我想写个脚本,最后却搞了个桌面宠物这件事(二)
  9. python海龟交易策略_【手把手教你】用Python量化海龟交易法则 - 简书
  10. 淘宝二维码对网店推广的好处