猜数字游戏
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机程序设计(C语言)课程设计报告
题目:猜数字游戏
学院:
专业:
班级:
姓名:
指导教师:
设计日期:
题目:猜数字游戏
一、选题背景:
猜数字是一种开发智力的游戏,在现代社会中越来越流行,现用已学的C语言程序的各种知识练习编写简单的应用的程序来实现游戏的功能。
二、设计思想:
该游戏的实现主要用到C语言中的库函数来实现图形界面能并运用各种循环结构和分支结构来实现选择功能,依次完成整个游戏的制作。
三、主要解决问题的方法及技术关键
1、主要问题及解决方法
图形界面的绘制问题,主要是运用到C语言库函数自带的绘制图形的函数。
数字的选择问题和剩余钱数计算问题,主要是用到循环结构和分支结构的嵌套使用。
2、技术关键
库函数的使用
循环结构和分支结构的综合使用四、程序流程图
五、程序清单:
#include
#include
#include
#include
#include
#define up 0x4800
#define down 0x5000
#define left 0x4b00
#define right 0x4d00
#define esc 0x11b
static int kkk=1;
int currenti=1;
int rpiao[5];
int xpiao[5];
int com[16];
int money=100;
void initmu(void)
{
int i;
char s[3];
char m[5];
char n[2];
n[0]=157;
n[1]=NULL;
setcolor(2);
rectangle(100,20,500,120);
rectangle(90,0,510,130);
setcolor(14);
rectangle(100,220,500,420);
rectangle(90,210,510,430);
setfillstyle(9,2);
floodfill(91,1,2);
setfillstyle(9,14);
floodfill(91,211,14);/*编框,大小,位置,颜色*/
setcolor(4);
for(i=0;i<=14;i++)
{
setcolor(4);
rectangle(110+i*25,230,135+i*25,265);
itoa(i+1,s,10);
setcolor(15);
outtextxy(115+i*25,245,s);
outtextxy(120,300,"please choose the five number you want!!!"); }
outtextxy(120,330,"use UP choose,use LEFT and RIGHT move");
outtextxy(120,400,"press esc to quit");/*向图内添加字母*/
itoa(money,m,10);
outtextxy(230,180,n);
outtextxy(250,180,m);
if(kkk==1)
{
setfillstyle(1,4);
bar(115+(currenti-1)*25,255,130+(currenti-1)*25,260);
kkk=kkk-1;
}
}
void initcom(void)
{
int i;
for(i=0;i<=15;i++)
com[i]=i;
}
void rrrpiao(void)
{
int i;
int k;
for(i=0;i<=4;i++)
{
rpiao[i]=random(15)+1;
k=rpiao[i];
if(com[k]==0)
i=i-1;
else
com[k]=0;
}
} /*选择数字*/
void show(int k)
{
if(k==2)
outtextxy(120,40,"you get the fourth prize 5 yuan");
if(k==3)
outtextxy(120,40,"you get the third prize 20 yuan");
if(k==4)
outtextxy(120,40,"congratulations!!! you get 1000 yuan"); if(k==5)
outtextxy(120,40,"great!!!!!,you get 10000 yuan!!!!!"); }/*每局结束后显示的结果*/
void jisuan(void)
{
int k=0;
int i,j;
for(i=0;i<=4;i++)
for(j=0;j<=4;j++)
if(rpiao[i]==xpiao[j])
k=k+1;
if(k==0||k==1)
money-=10;
if(k==2)
money-=5;
if(k==3)
money+=10;
if(k==4)
money+=990;
if(k==5)
money+=9990;
show(k);
}/*总钱数的计算*/
void xxxpiao(void)
{
static int i=0;
int j;
int k;
int key;
char s[3];
key=bioskey(1);
if(key)
key=bioskey(0);
if(key==esc)
{
closegraph();