c语言:编写猜数字小游戏。

时间:2023-02-17 07:48:13 其他范文 收藏本文 下载本文

c语言:编写猜数字小游戏。(精选5篇)由网友“zhangqiao198888”投稿提供,下面是小编为大家带来的c语言:编写猜数字小游戏。,希望大家能够喜欢!

c语言:编写猜数字小游戏。

篇1:c语言:编写猜数字小游戏。

编写猜数字小游戏,

程序:

#include#includevoid menu{printf(“***欢迎来挑战猜数字游戏***\n”);printf(“*****请选择开始或退出*****\n”);printf(“******1.start 0.exit******\n”);}void game(){int num = 0;srand((unsigned)time(NULL));//随着时间变化生成不同的随机数int ret = rand() % 100 + 1;//是从一个时间点到此时的秒数while (1){printf(“请猜数字:”);scanf(“%d”,&num);if (num == ret){printf(“你真聪明,猜对了!\n”);break;}else if(num >ret){printf(“你好笨,猜大了!\n”);}else if (num < ret){printf(“你真蠢,猜小了!\n”);}}}int main(){int input = 1;while (input){menu();printf(“请选择:”);scanf(“%d”,&input);switch (input){case 0:break;case 1:game();break;default:break;}}return 0;}

结果:

***欢迎来挑战猜数字游戏***

*****请选择开始或退出*****

******1.start 0.exit******

请选择:1

请猜数字:50

你真蠢,猜小了!

请猜数字:75

你真蠢,猜小了!

请猜数字:100

你好笨,猜大了!

请猜数字:85

你真蠢,猜小了!

请猜数字:93

你好笨,猜大了!

请猜数字:90

你好笨,猜大了!

请猜数字:87

你真蠢,猜小了!

请猜数字:88

你真蠢,猜小了!

请猜数字:89

你真聪明,猜对了!

***欢迎来挑战猜数字游戏***

*****请选择开始或退出*****

******1.start 0.exit******

请选择:0

请按任意键继续. . .

篇2:c语言实现猜数字小游戏

#include#include#include void fun(int c ){ srand((unsigned)time(NULL)); int ret = rand() % 100 + 1; printf(“请输入一个数>”); while (1) { scanf(“%d”, &c); if (c == ret) { printf(“正确\n”); break; } else if (c >ret) { printf(“猜大了\n”); } else { printf(“猜小了\n”); } }} void menu() { printf(“********************\n”); printf(“****游戏开始********\n”); printf(“********************\n”); printf(“*****请选择*********\n”); printf(“********************\n”); printf(“****1 游戏开始******\n”); printf(“********************\n”); printf(“****2 游戏结束******\n”); printf(“********************\n”); printf(“********************\n”); }int main(){ int c = 0; int num = 0; int input = 0; while (1) { menu(); printf(“请选择\n”); scanf(“%d”, &input); switch (input) { case 1: printf(“游戏开始\n”); fun( num); break; { case 2: printf(“游戏结束\n”); break; } } //break; } printf(“%d”, c); system(“pause”); return 0;

篇3:C语言小游戏

C语言小游戏

最基础的贪吃蛇的代码

#include

#include//基本型态定义。支援型态定义函数。使用者界面函数 图形装置界面函数。

#include //用户通过按键盘产生的对应操作 (控制台) #include

#include //日期和时间头文件

#define LEN 30

#define WID 25

int Snake[LEN][WID] = {0}; //数组的元素代表蛇的各个部位 char Sna_Hea_Dir = 'a';//记录蛇头的移动方向

int Sna_Hea_X, Sna_Hea_Y;//记录蛇头的位置

int Snake_Len = 3;//记录蛇的`长度

clock_t Now_Time;//记录当前时间,以便自动移动

int Wait_Time ;//记录自动移动的时间间隔

int Eat_Apple = 1;//吃到苹果表示为1

int Level ;

int All_Score = -1;

int Apple_Num = -1;

HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE); //获取标准输出的句柄

//句柄 :标志应用程序中的不同对象和同类对象中的不同的实例 方便操控, void gotoxy(int x, int y)//设置光标位置

{

COORD pos = {x,y}; //定义一个字符在控制台屏幕上的坐标POS

//定位光标位置的函数 SetConsoleCursorPosition(hConsole, pos);

}

void Hide_Cursor//隐藏光标 固定函数

{

CONSOLE_CURSOR_INFO cursor_info = {1, 0};

SetConsoleCursorInfo(hConsole, &cursor_info);

}

void SetColor(int color)//设置颜色

{

SetConsoleTextAttribute(hConsole, color);

//是API设置字体颜色和背景色的函数 格式:SetConsoleTextAttribute(句柄,颜色);

}

void Print_Snake()//打印蛇头和蛇的脖子和蛇尾

{

int iy, ix, color;

for(iy = 0; iy

for(ix = 0; ix

{

if(Snake[ix][iy] == 1)//蛇头

{

SetColor(0xf); //oxf代表分配的内存地址 setcolor:34行自定义设置颜色的函数

gotoxy(ix*2, iy);

printf(

}

if(Snake[ix][iy] == 2)//蛇的脖子

{

color = rand()%15 + 1; //rand()函数是产生随机数的一个随机函数。C语言里还有 srand()函数等。

//头文件:stdlib.h

if(color == 14)

color -= rand() % 13 + 1;

SetColor(color);

gotoxy(ix*2, iy);

printf(

}

if(Snake[ix][iy] == Snake_Len)

{

gotoxy(ix*2, iy);

SetColor(0xe);

printf(

} //变色

}

}

void Clear_Snake()//擦除贪吃蛇

{

int iy, ix;

for(iy = 0; iy

for(ix = 0; ix

{

gotoxy(ix*2, iy);

if(Snake[ix][iy] == Snake_Len)

printf(

}

}

void Rand_Apple()//随机产生苹果

{

int ix, iy;

do

{

ix = rand() % LEN;

iy = rand() % WID;

}while(Snake[ix][iy]);

Snake[ix][iy] = -1;

gotoxy(ix*2, iy);

printf(

Eat_Apple = 0;

}

void Game_Over()//蛇死掉了

{

gotoxy(30, 10);

printf(

Sleep(3000);

system(

exit(0);

}

void Move_Snake()//让蛇动起来

{

int ix, iy;

for(ix = 0; ix

for(iy = 0; iy

if(Snake[ix][iy] == 1)

{

switch(Sna_Hea_Dir)//根据新的蛇头方向标志蛇头 {

case 'w':

if(iy == 0)

Game_Over();

else

Sna_Hea_Y = iy - 1;

Sna_Hea_X = ix;

break;

case 's':

if(iy == (WID -1))

Game_Over();

else

Sna_Hea_Y = iy + 1;

Sna_Hea_X = ix;

break;

case 'a':

if(ix == 0)

Game_Over();

else

Sna_Hea_X = ix - 1;

Sna_Hea_Y = iy;

break;

case 'd':

if(ix == (LEN - 1))

Game_Over();

else

Sna_Hea_X = ix + 1;

Sna_Hea_Y = iy;

break;

default:

break;

}

}

if(Snake[Sna_Hea_X][Sna_Hea_Y]!=1&&Snake[Sna_Hea_X][Sna_Hea_Y]!=0&&Snake[Sna_Hea_X][Sna_Hea_Y]!=-1)

Game_Over();

if(Snake[Sna_Hea_X][Sna_Hea_Y]

{

++Snake_Len;

Eat_Apple = 1;

}

for(ix = 0; ix

for(iy = 0; iy

{

if(Snake[ix][iy] >0)

{

if(Snake[ix][iy] != Snake_Len)

Snake[ix][iy] += 1;

else

Snake[ix][iy] = 0;

}

}

Snake[Sna_Hea_X][Sna_Hea_Y] = 1;//处理蛇头

}

void Get_Input()//控制蛇的移动方向

{

if(kbhit())

{

switch(getch())

{

case 87:

Sna_Hea_Dir = 'w';

break;

case 83:

Sna_Hea_Dir = 's';

break;

case 65:

Sna_Hea_Dir = 'a';

break;

case 68:

Sna_Hea_Dir = 'd';

break;

default:

break;

}

}

if(clock() - Now_Time >= Wait_Time)//蛇到时间自动行走 {

Clear_Snake();

Move_Snake();

Print_Snake();

Now_Time = clock();

}

}

void Init()//初始化

{

system(

system(

Hide_Cursor();

gotoxy(61, 4);

printf(

gotoxy(61, 6);

printf(

gotoxy(61, 8);

printf(

gotoxy(61, 10);

printf(

gotoxy(61, 12);

printf(

int i;

for(i = 0; i

Snake[10+i][15] = i+1;

int iy, ix;//打印蛇

for(iy = 0; iy

for(ix = 0; ix

{

if(Snake[ix][iy])

{

SetColor(Snake[ix][iy]); gotoxy(ix*2, iy);

printf(

}

}

}

void Pri_News()//打印信息

{

SetColor(0xe);

gotoxy(73,4);

All_Score += Level;

printf(

gotoxy(73, 6);

printf(

gotoxy(73, 8);

printf(

gotoxy(73, 10);

printf(

gotoxy(73, 12);

printf(

}

void Lev_Sys()//等级系统

{

if(((Apple_Num-1) / 10) == Level)

{

++Level;

if(Wait_Time >50)

Wait_Time -= 50;

else

if(Wait_Time >10)

Wait_Time -= 10;

else

Wait_Time -= 1;

}

}

int main(void)

{

Init();

srand((unsigned)time(NULL));//设置随机数的种子 Now_Time = clock();

int speed1=1000,speed2,a;

printf(

printf(

scanf(

Level=1;

Wait_Time=speed1-speed2;

printf(

scanf(

while(a--)

Rand_Apple(); while(1)

{

if(Eat_Apple) {

++Apple_Num; Rand_Apple(); Lev_Sys(); Pri_News(); }

Get_Input(); Sleep(10); }

return 0;

}

篇4:C语言编写的俄罗斯方块

Tc2.0中怎么样设置图形显示?

Tc2.0中有两种显示模式,一种是我们所熟知的字符模式,另一种是图形模式,在字符模式下只能显式字符,如ASCII字符。一般是显示25

行,每行80个字符。程序缺省的是字符模式。在字符模式下不能显式图形和进行绘图操作。要想进行图形显示和绘图操作,必须切换到图形模

式下。

Tc2.0中用initgraph()函数可以切换到图形模式,用closegraph()可以从图形模式切换回字符模式。initgraph()和closegraph()都是图形

函数,使用图形函数必须包括头文件graphics.h。

void far initgraph(int far *graphdriver,int far *graphmode,char far *pathtodriver);graphdriver是上涨指向图形驱动序号变量的指针;graphmode是在graphdriver选定后,指向图形显示模式序号变量的指针。pathtodriver表示存放图形驱动文件的路径。

Tc2.0中有多种图形驱动,每种图形驱动下又有几种图形显示模式。在我的程序中图形驱动序号为VGA,图形显示模式序号为VGAHI。这是一种分辨率为640*480(从左到右坐标依次为0-639,从上到下坐标依次为0-479),能够显示16种颜色的图形模式。别的图形驱动序号和图形显示模式序号,可以从手册或联机帮助中找到。

pathtodriver指示存放图形驱动文件的路径。图形驱动序号不同,图形驱动文件也不同。序号为VGA图形驱动对应egavga.bgi这个图形驱动文件。egavga.bgi一般在Tc目录下。

void far closegraph(void);

没有参数,从图形模式直接返回字符模式。

initgraph()和closegraph()的常用用法如下:

int gdriver = VGA, gmode=VGAHI, errorcode;

/* initialize graphics mode */

initgraph(&gdriver, &gmode, e:tc2);

/* read result of initialization */

errorcode = graphresult();

if (errorcode != grOk) /* an error occurred */

{

printf(Graphics error: %sn, grapherrormsg(errorcode));

printf(Press any key to halt:);

getch();

exit(1); /* return with error code */

}

/* return to text mode */

closegraph();

Tc2.0中常用图形函数的用法?

在这里讲几个游戏中用到的绘图用的图形函数:

setcolor();

line();

rectangle();

settextjustify();

outtextxy();

setfillstyle();

bar();

void far setcolor(int color);

设置画线、画框和在图形模式下显示文字的当前颜色。这个函数将影响line()、rectangle()和outtextxy()函数绘图的颜色。

color可以取常的颜色常量:

BLACK ? 0

BLUE ? 1

GREEN ? 2

CYAN ? 3

RED ? 4

MAGENTA ? 5

BROWN ? 6

LIGHTGRAY ? 7

DARKGRAY ? 8

LIGHTBLUE ? 9

LIGHTGREEN ?10

LIGHTCYAN ?11

LIGHTRED ?12

LIGHTMAGENTA ?13

YELLOW ?14

WHITE ?15

void far line(int x1,int y1,int x2,int y2);

用当前颜色从(x1,y1)画一条到(x2,y2)的线段,

void far rectangle(int left,int top,int right,int bottom);

用当前颜色画一个左上角为(left,top)、右下角为(right,bottom)的矩形框。

void far settextjustify(int horz,int vert);

设置图形模式下文字输出的对齐方式。主要影响outtextxy()函数。

horiz和vert可取如下枚举常量:

horiz ?LEFT_TEXT ? 0 ?Left-justify text

?CENTER_TEXT ? 1 ?Center text

?RIGHT_TEXT ? 2 ?Right-justify text

vert ?BOTTOM_TEXT ? 0 ?Justify from bottom

?CENTER_TEXT ? 1 ?Center text

?TOP_TEXT ? 2 ?Justify from top

void far outtextxy(int x,int y,char * textstring);

在(x,y)处用当前字体(缺省的字体是DEFAULT_FONT)显示字符串textstring,字符串的对齐方式由settextjustify()指定。

void far setfillstyle(int pattern,int color);

设置图形的填充模式和填充颜色,主要影响bar()等函数。

pattern一般取枚举常量值SOLID_FILL,color的取值与setcolor(int color)中color的取值范围相同。

介绍完了前面两个问题,现在来写一个程序。这个程序演示前了面所介绍的几个图形函数。

程序prog1.c

怎样获取I盘输入?

在Tc2.0中有一个处理键盘输入的函数bioskey();

int bioskey(int cmd);

当cmd为1时,bioskey()检测是否有键按下。没有键按下时返回0;有键按下时返回按键码(任何按键码都不为0),但此时并不将检测到的按

键码从键盘缓冲队列中清除。

当cmd为0时,bioskey()返回键盘缓冲队列中的按键码,并将此按键码从键盘缓冲队列中清除。如果键盘缓冲队列为空,则一直等到有键按

下,才将得到的按键码返回。

Escape键的按键码为0x11b,下面的小程序可以获取按键的按键码。

for (;;)

{

key=bioskey(0); /* wait for a keystroke */

printf(0x%xn,key);

if (key==0x11b) break; /* Escape */

}

常用按键的按键码如下:

#define VK_LEFT 0x4b00

#define VK_RIGHT 0x4d00

#define VK_DOWN 0x5000

#define VK_UP 0x4800

#define VK_HOME 0x4700

#define VK_END 0x4f00

#define VK_SPACE 0x3920

#define VK_ESC 0x011b

#define VK_ENTER 0x1c0d

完整的程序请参见prog2.c、prog3.c。

prog2.c获取按键的按键码,按Escape键退出程序。

prog3.c根据不同的按键进行不同的操作,按Escape键退出程序。

怎样控制方块的移动?

方块移动的实现很简单,将方块原来的位置用背景色画一个同样大小的方块,将原来的方块涂去。然后在新的位置上重新绘制方块就可以

篇5:C语言编写实现玫瑰花

#include

#include

#include

/*玫瑰花*/

#define FNX(x) (int)(xo+(x)*1.0)

#define FNY(y) (int)(getmaxy()-(yo+(y)*1.0))

#define FNX2(phi) cos(phi)*ac-sin(phi)*bs

#define FNY2(phi) cos(phi)*as+sin(phi)*bc

/*画旋转的椭圆*/

void elli(int xo,int yo,int a,int b,double theta)

{

int i;

double da,c,s,ac,as,bc,bs,xf,yf,phi,x,y;

theta=theta*0.01745;

da=3*0.1745;

c=cos(theta);s=sin(theta);

ac=a*c;as=a*s;bc=b*c;bs=b*s;

x=FNX2(0);y=FNY2(0);

moveto(FNX(x),FNY(y));

for(i=1;i<=360;i++)

{

phi=i*da;xf=x*cos(phi)*0.1;yf=b*sin(phi)*0.1;

x=FNX2(phi);y=FNY2(phi);

lineto(FNX(x),FNY(y));

}

}

/*花*/

void hua(int x,int y)

{

register i;

/*画粉红色玫瑰*/

setcolor(12);

arc(x+65,y-60,150,350,8);

arc(x+66,y-54,300,470,8);

arc(x+65,y-56,30,230,10);

arc(x+64,y-57,300,490,17);

ellipse(x+73,y-30,250,450,27,40);

ellipse(x+59,y-30,100,290,27,40);

ellipse(x+65,y-40,140,270,20,30);

setfillstyle(SOLID_FILL,5);

floodfill(x+65,y-20,12);

/*画红色玫瑰*/

arc(x,y,150,350,12);

arc(x+1,y+8,280,470,12);

arc(x,y+2,30,230,16);

arc(x,y+3,80,240,28);

arc(x+2,y+8,180,330,22);

arc(x-2,y+2,310,460,25);

ellipse(x-12,y+30,120,300,30,40);

ellipse(x+10,y+28,250,423,30,42);

ellipse(x-4,y+10,290,393,30,40);

setfillstyle(SOLID_FILL,4);

floodfill(x+5,y+31,12);

/*画紫色花骨朵*/

ellipse(x+120,y+5,0,360,15,25);

setfillstyle(SOLID_FILL,1);

floodfill(x+120,y,12);

/*画黄色花骨朵*/

ellipse(x-70,y+10,0,360,14,20);

setfillstyle(SOLID_FILL,14);

floodfill(x-70,y+10,12);

setcolor(10);

/*画红花花萼*/

ellipse(x-15,y+32,190,310,30,35);

ellipse(x+16,y+32,235,355,26,35);

ellipse(x,y+35,190,350,43,50);

arc(x,y+82,190,350,6);

setfillstyle(SOLID_FILL,2);

floodfill(x,y+75,10);

/*画粉花花萼*/

ellipse(x+50,y-48,190,320,22,50);

ellipse(x+80,y-48,220,350,22,50);

ellipse(x+65,y-28,180,360,36,50);

floodfill(x+65,y+18,10);

/*画主枝*/

for(i=0;i<3;i++ )

{

ellipse(x-98,y+100+i,255,371,100,80);

ellipse(x-20,y+30+i,260,358,140,140);

ellipse(x+224,y+20+i,180,218,160,140);

}

/*画侧枝*/

ellipse(x+70,y+34,180,233,140,140);

ellipse(x,y+40,205,255,100,120);

ellipse(x+135,y-30,209,249,72,120);

ellipse(x,y+20,263,301,100,120);

ellipse(x+85,y-10,278,305,100,120);

ellipse(x+100,y-62,282,308,90,120);

小学数学教学设计原理与里方法

《认识钟表》的教学说课稿

pep四年级英语上册教学计划

一等奖认识钟表说课稿

一年级数学认识钟表教案

一年级数学教案-认识钟表2

一年级数学《认识钟表》教案

二年级数学上册课件

小学四年级英语教学计划

小学数学老师教学随笔

c语言:编写猜数字小游戏。
《c语言:编写猜数字小游戏。.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

【c语言:编写猜数字小游戏。(精选5篇)】相关文章:

5的乘法口诀小学数学教案2024-04-12

认识钟表小学一年级数学教学计划2023-05-13

小学四年级英语工作教学计划2023-03-06

小学三年级英语教学计划2024-04-04

优秀的小学数学《可能性》教学设计与反思2023-04-29

认识钟表教学设计2023-02-19

五年级数学上册《数学广角,数字编码》教学反思2023-09-21

小学三年级英语的教学计划2023-01-05

pep小学英语三上册教学计划2023-05-22

小学三年级英语课堂教学计划示例2022-11-14

点击下载本文文档