首 页 行业资讯 新车 试驾评测 养车用车 车型库

c语言在网页里做找不同游戏的代码

发布网友 发布时间:2022-04-23 15:25

我来回答

2个回答

热心网友 时间:2023-10-07 07:28

#include <graphics.h>
#include <conio.h>//easyx 输入输出(由三部分组成)
#include<time.h>
#include<stdlib.h>
#include <stdio.h>
#include "win32timer.h"
//处理鼠标点击事件,返回值为整数,代表不同的点击区间。
int panan()
{
int p=0;
MOUSEMSG m;
FlushMouseMsgBuffer();//清空鼠标缓存区
while(p==0)
{
m = GetMouseMsg();// 获取一条鼠标消息
//m.uMsg整数,判断是点击鼠标事件类型,左键单击,左键双击,右键单击,右键双击。。。。。。
//m.x表示鼠标点击坐标的x轴数值
//m.y表示鼠标点击坐标的y轴数值
if (m.uMsg == WM_LBUTTONDOWN&&m.x>300&&m.x<400&&m.y>20&&m.y<100)
{
p=1;//用户单击鼠标左键,并且点击位置的x坐标在300到400之间,y坐标在20到100之间的区域,函数返回整数1
}
if (m.uMsg == WM_LBUTTONDOWN&&m.x>400&&m.x<500&&m.y>20&&m.y<100)
{
p=2;
}
if (m.uMsg == WM_LBUTTONDOWN&&m.x>500&&m.x<600&&m.y>20&&m.y<100)
{
p=3;
}
if (m.uMsg == WM_LBUTTONDOWN&&m.x>300&&m.x<400&&m.y>100&&m.y<180)
{
p=4;
}
if (m.uMsg == WM_LBUTTONDOWN&&m.x>400&&m.x<500&&m.y>100&&m.y<180)
{
p=5;
}
if (m.uMsg == WM_LBUTTONDOWN&&m.x>500&&m.x<600&&m.y>100&&m.y<180)
{
p=6;
}
if (m.uMsg == WM_LBUTTONDOWN&&m.x>300&&m.x<400&&m.y>180&&m.y<260)
{
p=7;
}
if (m.uMsg == WM_LBUTTONDOWN&&m.x>400&&m.x<500&&m.y>180&&m.y<260)
{
p=8;
}
if (m.uMsg == WM_LBUTTONDOWN&&m.x>500&&m.x<600&&m.y>180&&m.y<260)
{
p=9;
}
if (m.uMsg == WM_LBUTTONDOWN&&m.x>300&&m.x<400&&m.y>260&&m.y<340)
{
p=10;
}
if (m.uMsg == WM_LBUTTONDOWN&&m.x>400&&m.x<500&&m.y>260&&m.y<340)
{
p=11;
}
if (m.uMsg == WM_LBUTTONDOWN&&m.x>500&&m.x<600&&m.y>260&&m.y<340)
{
p=12;
}
if (m.uMsg == WM_LBUTTONDOWN&&m.x>300&&m.x<400&&m.y>340&&m.y<420)
{
p=13;
}
if (m.uMsg == WM_LBUTTONDOWN&&m.x>400&&m.x<500&&m.y>340&&m.y<420)
{
p=14;
}
if (m.uMsg == WM_LBUTTONDOWN&&m.x>500&&m.x<600&&m.y>340&&m.y<420)
{
p=15;
}
if (m.uMsg == WM_LBUTTONDOWN&&m.x>300&&m.x<400&&m.y>420&&m.y<500)
{
p=16;
}
if (m.uMsg == WM_LBUTTONDOWN&&m.x>400&&m.x<500&&m.y>420&&m.y<500)
{
p=17;
}
if (m.uMsg == WM_LBUTTONDOWN&&m.x>500&&m.x<600&&m.y>420&&m.y<500)
{
p=18;
}
if (m.uMsg == WM_LBUTTONDOWN&&m.x>500&&m.x<600&&m.y>500&&m.y<520)
{
p=19;//退出
}
if (m.uMsg == WM_LBUTTONDOWN&&m.x>400&&m.x<500&&m.y>500&&m.y<520)
{
p=20;//重新开始
}
if (m.uMsg == WM_LBUTTONDOWN&&m.x>300&&m.x<400&&m.y>500&&m.y<520)
{
p=21;//查看答案
}
}
return p;
}
int cnt = 0;
int stop = 0;
void myISR_Called_Per_1000ms(void)//1000毫秒触发一次
{
char time[20];
if(stop ==0){
sprintf(time,"时间: %d秒 ",cnt++);
outtextxy(200,500,time);//在屏幕上显示
}
}
/*
* 使用说明:
*
* 1. 用户程序需要 #include "win32timer.h" ;
* 2. 用户需要将 win32timer.c 添加至根目录,或添加至工程;
* 3. 用户程序直接调用UserTimerSet(uDelay,UserFun); 即可,
* 其中,uDelay为定时调用的定时周期,单位为毫秒(ms),
* UserFun为用户被调函数void ISR(void)的函数名ISR。
* 4. 可以同时使用多个timeSetEvent,每个timeSetEvent都可以
* 返回定时器编号,详细见MSDN关于timeSetEvent的说明。
*/
void main()
{
IMAGE a,b,shangbiao,xiabiao,kandaan,chenggong;
//将图片转化成二进制数据
int c,z=0,e=0;
int butong[18];
initgraph(600, 520);//初始化图形系统,参数定义窗口大小
int i,p,w1=0;
char x[10],y[10],w[10];
loadimage(&shangbiao,"shangbiao.jpg");//装载图片到内存变量
loadimage(&xiabiao,"xiabiao.jpg");//装载图片到内存变量
loadimage(&kandaan,"kandaan.jpg");//装载图片到内存变量
loadimage(&chenggong,"chenggong.jpg");//装载图片到内存变量
loadimage(&a,"a.jpg");//装载图片到内存变量
loadimage(&b,"b.jpg");//装载图片到内存变量
c=2;
UserTimerSet ( 1000, myISR_Called_Per_1000ms ) ; //新加;设置定时器,每秒钟触发一次,调用myISR_Called_Per_1000ms函数
do{
stop = 0;//重新初始化计数器
cnt= 0;
z=0,e=0;
putimage(0,20,&a);//在坐标(0,20)处绘制图形a.jpg
putimage(0,0,&shangbiao);//在坐标(0,0)处绘制图形shangbiao.jpg
putimage(0,500,&xiabiao);//在坐标(0,500)处绘制图形xiabiao.jpg。
putimage(300,20,&b);//在坐标(300,20)处绘制图形b.jpg。
putimage(300,500,&kandaan);//在坐标(300,500)处绘制图形kandaan.jpg。
for(i=0;i<18;i++)//利用循环对数组butong赋初值为0
{
butong[i]=0;
}
butong[0]=11;
butong[1]=18;
sprintf(x,"%d",c); //数值变量c的初值为2,此处将数值c的值转换为字符串形式,存储在字符数组变量x中,即x中存储的是“2”。
outtextxy(70,500,x);//在坐标(70,500)处,打印显示x字符串内容“2”。表示 总错数:2
sprintf(y,"%d",z); //数值变量z的初值为0,此处将数值z的值转换为字符串形式,存储在字符数组变量y中,即y中存储的是“0”。
outtextxy(170,500,y);//在坐标(170,500)处,打印显示y字符串内容“0”。表示 找到数:0
sprintf(w,"点击次数:%d次",w1);
outtextxy(0,420,w);
do{
p=panan(); //调用pann函数,进行鼠标点击事件的处理。
w1=w1+1;
sprintf(w,"点击次数:%d次",w1);
outtextxy(0,420,w);
if(p==20){
stop = 0;
cnt = 0;//新加。清除计时器
w1=0;
break; //函数返回20表示点击的是“重新开始”。跳出该次do-while;因为p=20,所以继续执行外层的do-while。
}
if(p==19)exit(0); //函数返回10表示点击的是“退出游戏”,exit函数结束程序执行。
if(p==21) //函数返回21表示点击的是“查看答案”
{
stop=-1;//新加,查看答案时,停止计时器。
setlinecolor(BLUE); //设置划线的颜色
for(i=0;i<c;i++)//c为总的不同数2,循环2次。
{ //butong 数组前两个变量被定义为11,18
e=butong[i];
if(e==18)
{
rectangle(500,420,600,500);//e==18时执行;界面中绘制矩形图形,参数为矩形的左上顶点坐标和右下顶点坐标
}
else{
rectangle(400,260,500,340);
}
}
}
for(i=0;i<c;i++)//循环查看是否找到不同
{
if(p==butong[i])//返回值p是否与不同数组中预制的数值 11 18 相同,相同即认为找到。
{
setlinecolor(RED);//设置划线颜色为红色
if(p==18)//p为18
{
rectangle(500,420,600,500);//在18对应的位置绘制矩形
}
else
{
rectangle(400,260,500,340);//在11对应的位置绘制矩形
}
z=z+1;//找到数 加1
sprintf(y,"%d",z); //数值z转换为字符串存入到y中
outtextxy(170,500,y);//界面中更新找到数
}
}
}while(z<c);//只有找到数小于总错误数,循环继续执行。否则循环退出。
if(z=c&&p!=20)//判断总错数是否和找到数相同,并且是否p不等于20
{
putimage(200,100,&chenggong); //绘制图形成功
stop=-1;//新加,成功时,停止计时器。
p=panan();//继续等待用户选择命令。但此处用户选择“重新开始”则游戏重新开始,用户点击其他任意一点,程序都会退出。
}

}while(p==20);
}

热心网友 时间:2023-10-07 07:28

L[j].cursor = L[k].cursor;
L[k].cursor = j;
L[0].cursor = GetLength(L) + 1; //让下标0的元素指向新的空白结点
return OK;追问你说明白点

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com