打字母小游戏

第一次用eaxyx相关知识,也是第一次写游戏,记录下。。。研究了好久才弄出来的+_+

  1 #include<graphics.h>
  2 #include<conio.h>
  3 #include<stdio.h>
  4 #include<time.h>
  5 #pragma comment(lib,"Winmm.lib")
  6
  7 void First();
  8 void Second();
  9 void GameStart();
 10 void GameOver();
 11
 12 char s1[10],s[10];
 13 int total/*点击次数*/,Right/*正确个数*/,num/*字母总个数*/,Rank/*等级*/;
 14 int flag=0;//标记是否按了esc;
 15 double TotalRank;//正确率,正确数与点击总数之比;
 16
 17 int main()
 18 {
 19     initgraph(750,550);
 20     setbkcolor(CYAN);
 21     cleardevice();
 22
 23     First();
 24     getch();
 25     Second();
 26     char ch;
 27     ch=getch();
 28     outtextxy(240,380,ch);
 29     getchar();
 30     Rank=ch-‘0‘;
 31     GameStart();
 32     GameOver();
 33     closegraph();
 34     return 0;
 35 }
 36 void First()
 37 {
 38     mciSendString("play 开场.mp3",NULL,0,NULL);
 39     setfont(50,0,"楷体");
 40     outtextxy(50,100,"没错,就是很传统的那个掉字");
 41     outtextxy(50,200,"母然后按相应键就消失的游戏");
 42     setcolor(RGB(246,105,251));
 43     setfont(60,0,"MV Boli");
 44     outtextxy(100,300,"have a try!!!");
 45     setfont(40,0,"楷体");
 46     setcolor(RED);
 47     outtextxy(400, 500, "请按任意键继续");
 48 }
 49 void Second()
 50 {
 51     cleardevice();
 52     setcolor(YELLOW);
 53     setfont(50,0,"楷体");
 54     outtextxy(200,20,"打字母游戏");
 55     setcolor(RGB(25,25,35));
 56     setfont(40,0,"新宋体");
 57     outtextxy(0,70,"游戏说明");
 58     setcolor(WHITE);
 59     setfont(30,0,"宋体");
 60     outtextxy(0,130,"一、每次下落若干个字母,字母个数当然要看级别咯");
 61     outtextxy(0,180,"二、被点中字母个数与你的点击数之比为您的正确率");
 62     outtextxy(0,230,"三、小编语是要看正确率的哦");
 63     outtextxy(0,280,"四、按键1--5选择不同游戏的级别");
 64     outtextxy(0,330,"五、5级最高,1级最低");
 65     setfont(30,0,"黑体");
 66     int c=255;
 67     while(!kbhit())
 68     {
 69         setcolor(RGB(c,82,208));
 70         outtextxy(0,380,"请输入游戏级别:");
 71         c-=25;
 72         if(c<0) c=255;
 73         Sleep(100);
 74     }
 75 }
 76 void GameStart()
 77 {
 78     mciSendString("close all",NULL,0,NULL);
 79     mciSendString("play abc.mp3",NULL,0,NULL);
 80     cleardevice();
 81     num=15*Rank;
 82     Right=0;
 83     srand(time(NULL));//设置随机种子;
 84     setfillstyle(CYAN);
 85     setcolor(BLACK);
 86     line(0,510,749,510);
 87     line(0,50,749,50);
 88     setcolor(RGB(255,0,0));
 89     setfont(40,0,"MV Boli");
 90     outtextxy(0,0,"SCORE:");
 91     sprintf(s,"%d",Right);
 92     outtextxy(150,0,s);
 93     int x,y;
 94     char target,key;
 95     int m=0;
 96     while(flag==0&&num>0)
 97     {
 98         m++;
 99         setfont(60,0,"BIG");/*设置字母的字体和大小*/
100         target=97+rand()%26;/*产生的任意小写字母*/
101         x=rand()%700; /*产生的任意下落位置*/
102         for(y=60;y<436;)
103         {
104             y+=m/10+1;
105             setcolor(RGB(255,150,255));
106             outtextxy(x,y,target);
107             if(kbhit())//检查当前是否有键盘输入
108             {
109                 key=getch();
110                 total++;
111                 if(key==target||key==target-32)
112                 {
113                     mciSendString("play 正确.mp3",NULL,0,NULL);
114                     Right++;
115                     sprintf(s,"%d",Right);
116                     setcolor(RGB(255,0,0));
117                     setfont(40,0,"MV Boli");
118                     outtextxy(0,0,"SCORE:");
119                     outtextxy(150,0,s);
120                     bar(x-60,y-60,x+60,y+60);
121                     break;
122                 }
123                 else if(key==27)
124                 {
125                     flag=1;
126                     break;
127                 }
128             }
129             Sleep(10);
130             bar(x,y,x+55,y+65);
131         }
132         num--;
133         TotalRank=Right*1.0/total*100;
134         sprintf(s1,"%.2lf",TotalRank);/*把double型换成字符型*/
135     }
136 }
137 void GameOver()
138 {
139     mciSendString("close all",NULL,0,NULL);
140     mciSendString("play 搞笑.mp3",NULL,0,NULL);
141     cleardevice();
142     setcolor(RGB(246,105,251));
143     setfont(100,0,"MV Boli");
144     outtextxy(200,300,"Game Over");
145     setcolor(RED);
146     setfont(30,0,"黑体");
147     outtextxy(180,80,"共有字母数:");
148     sprintf(s,"%d",Rank*15);
149     outtextxy(350,80,s);
150     outtextxy(420,80,"您对的个数:");
151     sprintf(s,"%d",Right);
152     outtextxy(600,80,s);
153     setcolor(YELLOW);
154     setfont(50,0,"黑体");
155     if(total==0)
156         outtextxy(200,230,"发什么呆啊");
157     else
158     {
159         outtextxy(200,130,"您的正确率:");
160         outtextxy(480,130,s1);
161         outtextxy(605,130,"%");
162         setcolor(RGB(255,25,140));
163         if(TotalRank==100 && Right==Rank*15 && Rank<9)
164             outtextxy(100,230,"你可以挑战下个级别了哦");
165         else if(TotalRank==100 && Right==Rank*15 && Rank==9)
166             outtextxy(100,230,"你真是健步如飞哦");
167         else if(TotalRank==100 && Right!=Rank*15 )
168             outtextxy(100,230,"离成功仅有一步了,唉!");
169         else if(TotalRank!=130 && Right==0 )
170             outtextxy(250,230,"你又O啦");
171         else if(95<=TotalRank&&TotalRank<100)
172             outtextxy(220,230,"哎呦,不错嘛");
173         else if(90<=TotalRank&&TotalRank<95)
174             outtextxy(200,230,"有点玩家的意思了");
175         else if(85<=TotalRank&&TotalRank<90)
176             outtextxy(200,230,"你开始找到感觉了");
177         else if(80<=TotalRank&&TotalRank<85)
178             outtextxy(220,200,"好好练习吧");
179         else if(70<=TotalRank&&TotalRank<80)
180             outtextxy(200,200,"很佩服你那么坚持");
181         else if(60<=TotalRank&&TotalRank<70)
182             outtextxy(200,200,"还是接着看电视吧");
183         else if(50<=TotalRank&&TotalRank<60)
184             outtextxy(300,200,"无语");
185         else if(40<=TotalRank&&TotalRank<50)
186             outtextxy(210,200,"到底行不行啊");
187         else if(TotalRank<40)
188             outtextxy(220,200,"开玩笑啊");
189     }
190     setfont(40,0,"楷体");
191     setcolor(WHITE);
192     outtextxy(400, 500, "请按任意键退出");
193     getch();
194 }

时间: 2024-10-17 09:12:16

打字母小游戏的相关文章

猜字母小游戏

/** 猜字母小游戏  需求如下: 程序随机产生5个按照一定顺序排列的字符作为猜测的结果(5个字符不允许重复),由玩家来猜测此字符串. 玩家可以猜测多次(不区分大小写),每猜测一次,则由系统提示结果. (猜测过程中输入非英文字符或超过5个字符会要求重新输入正确字符). 如果猜测的完全正确,则游戏结束,计算玩家的游戏得分并输出: 如果没有猜对,则提示猜测的结果,例如 猜对了几个字符,以及猜对了几个字符的位置等信息,并提示玩家游戏继续. 如果玩家在控制台录入 exit(不区分大小写),则游戏中止,程

字母小游戏

描述 给你一个乱序的字符串,里面包含有小写字母(a--z)以及一些特殊符号,请你找出所给字符串里面所有的小写字母的个数, 拿这个数对26取余,输出取余后的数字在子母表中对应的小写字母(0对应z,1对应a,2对应b....25对应y). 输入 第一行是一个整数n(1<n<1000)表示接下来有n行的字符串m(1<m<200)需要输入 输出 输出对应的小写字母 每个小写字母单独占一行 样例输入 2 asdasl+%$^&ksdhkjhjksd adklf&(%^(alk

NYOJ题目273字母小游戏

AC代码如下: ------------------------------------ 1 import java.util.Scanner; 2 3 public class Main { 4 5 public static void main(String[] args) { 6 7 Scanner sc=new Scanner(System.in); 8 9 int n=Integer.parseInt(sc.nextLine()); 10 11 while(n-->0){ 12 13

day05-java-(方法,猜字符小游戏)

day05-java-(方法,猜字符小游戏) 1.方法:  1)用于封装一段特定的逻辑功能  2)方法应尽可能的独立,只干一件事  3)方法可以被反复的调用多次  4)避免代码重复,有利于代码的维护,有利于团队的协作开发 2.方法的定义:    修饰词 返回值类型 方法名(参数列表){      方法体    } 3.方法的调用:  1)无返回值: 方法名(有参传参);   2)有返回值: 数据类型 变量 = 方法名(有参传参);              方法名(有参传参);------不建议

【C++探索之旅】第一部分第十一课:小游戏,猜单词

内容简介 1.第一部分第十一课:小游戏,猜单词 2.第一部分第十二课预告:指针一出,谁与争锋 小练习 上一课<[C++探索之旅]第一部分第十课:文件读写,海阔凭鱼跃>中我们学习了读写文件的知识. 第一部分的课程也快接近尾声了,下一课我们会学习很重要的指针的知识.之后,我们就进入第二部分:面向对象编程了.哈哈哈,激动不? 目前为止,我们也学了不少内容:编译基本原理,IDE,变量,函数,条件语句,循环语句,引用,数组,文件读写,等等.你应该为自己感到自豪. 俗语说得好:实践是最好的老师.我们学了那

结对编程小游戏2048

作业要求: 自选题目(不少于500行代码),进行结对编程 轮流担任领航员和驾驶员 记录结对编程的过程,写成结对博客 1.结对题目,写清需求 2.上传代码(截图),两人合作的合影 3.约定的规范 4.记录时间 5.心得和体会 Deadline 9月18日 23:59:59 小组成员 019任帅昌 020禹继跃 1.结对题目:2048小游戏 需求分析:在人们学习工作之余,小游戏成为了人们打发时间做的必不可少的事情了,而2048这款小游戏它不仅能在你工作学习疲惫之后使你身心放松,还能益智 2.游戏代码

《C++ Qt 设计模式》8|15拼图 小游戏的简单实现。拜托,别乱点!

第零章:介绍 看到这个游戏了,感觉蛮好玩的,实现了一下. 界面如下: 游戏玩法:在3×*3的矩阵中,每个按钮都可以点击,如果按钮四周有一个是空白,则点击此按钮则会移动到这个空白.按钮字母顺序变成“ABCD……”这样有序就赢了,最后空格可以出现在任何地方. 第一章:构思 设计模式基本上没接触过,所以就没有按书上的方式,自己想了大概要怎么实现,可能自己像的没有它给出的方式好吧,但是毕竟是菜鸟嘛,一步一步来! 1.用什么装这些按钮 学习了QGridLayOut,“The QGridLayout cla

结对编程2048小游戏

作业要求: 自选题目(不少于500行代码),进行结对编程 轮流担任领航员和驾驶员 记录结对编程的过程,写成结对博客 1.结对题目,写清需求 2.上传代码(截图),两人合作的合影 3.约定的规范 4.记录时间 5.心得和体会 Deadline 9月18日 23:59:59 小组成员 019任帅昌 020禹继跃 1.结对题目:2048小游戏 需求分析:在人们学习工作之余,小游戏成为了人们打发时间做的必不可少的事情了,而2048这款小游戏它不仅能在你工作学习疲惫之后使你身心放松,还能益智 2.游戏代码

c印记(六): 数组与递归联合应用的小游戏

目录 目录 一概述 二汉诺塔Hanoi Tower 将汉诺塔变为算法问题化描述 分析 a 当n 1的时候 b 当n 2的时候 c 当n 3的时候 d 当n N的时候 实现 三迷宫 迷宫的表示方式 手动版迷宫 AI版迷宫 一.概述 前面分别讲述了数组和递归,他们在c语言程序设计与编程当中是非常有用的,出现的频率也比较高, 下面就用两个经典的小游戏(汉诺塔,迷宫)来说明一下数组和递归的具体应用. 二.汉诺塔(Hanoi Tower) 汉诺塔:汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具.