当前位置:首页 » 编程语言 » 打地鼠游戏c语言
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

打地鼠游戏c语言

发布时间: 2022-05-18 15:15:49

① 关于C#简单打地鼠游戏

弄一个0到8的随机数,随机生成一个数。而每一个数代表着一张图片。这样就可以了

② C#制作一个简单的打地鼠游戏

简单版本:
9个picturebox ID从1-9
然后用timer 来计时,比如让地鼠停留1秒,则设置timer 时间间隔1s, 然后timer tick事件里 做下面操作:
先置空9个picturebox
从1-9 产生随机数, 随机数是几 就把第几个picturebox 附上地鼠图片。
时间可以自己定义。

③ 新人求教,c语言打地鼠

在一个二维数组中,存放标记。
设置难度:分:
一次只显示一个
一次只显示二个
一次只显示三个
对应产生2*N个随机数,对应(x,y),设置为1,其它空的设置为0.

大概的游戏流程循环:
结束条件: 打到M个停止。
1,产生随机数,且不相同
2,在对应的坐标中,画出地鼠,
在N秒内,没有击中,地鼠消失;击中,加分。
(击中的坐标,要与用户点的坐标想比较即可,在这个范围就得分)

④ 用c#做打地鼠小游戏怎么写入计分的代码啊

你这是把九个按钮作为打击对象吧?那你就定义两个int全局变量啊啊a、b,timer1_Tick事件执行一次a++,按钮点击一次,判断如果背景图是地鼠 b++,最后在timer2_Tick触发的时候就知道地鼠出现次数a,和你打中的次数b了

⑤ C语言编程打地鼠

刚写好的,打地鼠小游戏。

功能:每三秒,会在游戏区域随机位置刷出地鼠,鼠标点击地鼠,无论点中与否,地鼠都会立即刷新。

点中地鼠按你要求计分,点不中记录失败次数,3次失败,游戏结束,显示GAME OVER!

#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
#include<conio.h>
#include<time.h>
#include<string.h>
#include<malloc.h>
#definegSizek30//区域大小宽度
#definegSizeg20//区域大小高度
#definegBegin3//活动区域起始行
intmain()
{
intt=0,s0,s1,i,j,count=0,fen=0,row=0,clo=0;
chargameA[gSizeg][gSizek+1],fSave[10]={0};
SetConsoleTitle("打地鼠");
HANDLEhInput=GetStdHandle(STD_INPUT_HANDLE);//获取标准输入设备句柄
INPUT_RECORDinRec;
DWORDres;
COORDp0;
p0.X=0;
p0.Y=0;

srand(time(0));
s0=time(NULL);
strcpy(gameA[0],"GAME");
strcpy(gameA[1],"未命中次数:0,计分:000000");
for(i=gBegin-1;i<gSizeg;i++)
{
for(j=0;j<gSizek+1;j++)
{
if(i>gBegin-1&&i<gSizeg-1&&j>0&&j<gSizek-1)
gameA[i][j]='';
else
gameA[i][j]=4;
if(j==gSizek)
gameA[i][j]=0;
}
}
for(i=0;i<gSizeg;i++)
printf("%s ",gameA[i]);

while(1)
{

if(t>=3)
{
if(row>0&&clo>0)
gameA[row][clo]='';
row=rand()%(gSizeg-1);
clo=rand()%(gSizek-1);
s0=time(NULL);
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),p0);

if(row<3)
row=4;
if(clo<1)
clo=1;
gameA[row][clo]=2;
for(i=0;i<gSizeg;i++)
{
//gameA[i][gSizeg+1]=0;
printf("%s ",gameA[i]);
}

}
if(count==3)
{
p0.X=10;
p0.Y=8;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),p0);
printf("GAMEOVER!");
break;
}
s1=time(NULL);
t=s1-s0;
ReadConsoleInput(hInput,&inRec,1,&res);
if(inRec.EventType==MOUSE_EVENT&&inRec.Event.MouseEvent.dwButtonState==FROM_LEFT_1ST_BUTTON_PRESSED)//鼠标左键
{
if(inRec.Event.MouseEvent.dwMousePosition.X==clo&&inRec.Event.MouseEvent.dwMousePosition.Y==row)
{

if(fen==0)
fen=1;
if(fen>999999)
fen=999999;
else
fen=fen*2;

sprintf(fSave,"%06d",fen);
gameA[1][18]=0;
strcat(gameA[1],fSave);
}
else
{
count++;
fen=0;
gameA[1][11]=count+'0';
}
t=4;
}
}
while(1);
return0;
}

⑥ 新手用C#做的打地鼠小游戏,有些不懂的求解释啊

建立了一个按钮数组bt,要程序运行时添加进行,foreach是循环引用数组中的每个按钮,像做计算器等程序的数字键也可以用这种方式

⑦ 怎么用game maker做打地鼠小游戏

去网络的gamemaker吧丫.置顶的帖子里有基础中文教程及GML语言手册下载的.这两本先看懂才算是了解GM的使用方法拉.接着就要找写范例来学习了.
当然如果你一些VB.C的基础语言都不会.那就得先补习那些东西拉...既然你是电脑课的.那应该会吧...

打地鼠游戏...我写下大致思路.GM吧里有很多教程.貌似够用的样子.
首先素材.
画几种地鼠钻出来的动态GIF.可以用FW做.也可以分别画出静态的几张然后分别导入GM``
画地鼠被砸后眩晕的动态GIF.
画砸中后会减生命的生物.
画表示生命的图像.如爱心什么的.
画有9个洞洞的背景.
画个锤子砸下的动态GIF.
然后导入成精灵.背景.再制作出锤子.地鼠的对象.
然后你要解决以下问题.
首先,让一个锤子的实例跟随鼠标.
具体方法可参考GM吧里的帖子"[脚本]鼠标拖拽实例"地址如下.
http://tieba..com/f?kz=575116883
当然还是得修改一些的.你得学会怎样参考别人的脚本拉.
你先把脚本复制粘贴到一个对象里.然后会发现有些字是黑色的细体字.有些是粗体.有些变成了蓝色...
黑色细字没有特殊含义.是制作人自定的变量.
粗体是一些本身在C语言中就有特殊作用的语句.蓝色字是GM里事先帮你定义好的特殊变量.贴吧资料贴里的GML语言手册有详细讲解.
绿色的句子是以//开头的.意思是备注.在语句中不起作用.
还有种是紫色的.上面的脚本里貌似没有会变成紫色的字.不过紫色字带表的是那些精灵.对象之类的素材名称.为了避免混淆各类素材.最好在每个素材前加上前缀.比如地鼠精灵素材可写成spr_hamster,地鼠的对象写成obj_hamster拉.
你要做的是先看懂脚本里所有语句的意思.然后就能按照自己需求改了.

接着要解决的是地鼠出现再消失的位置.这个用随机变量choose(x1,x2...)应该可以解决吧.就不多说拉0.0.

再然后要解决砸中地鼠后的图片效果.这个效果要在地鼠对象里做.
全局鼠标按下之后.锤子要作出砸下的样子.这个跟act游戏中按下某键后主角的腿踢出一记的算法应该差不多.可以参考一些act游戏制作的教程.
鼠标按在地鼠身上后.地鼠要作晕厥状.方法也是一样的.
会减生命的物种到此跟地鼠的制作方法一样.

再接着要算分.砸中什么地鼠得多少分.砸中什么生物扣一颗生命...
算分可以用脚本和变量赋值来控制.再定义一个全局累加变量.如global.score
扣生命可定一个全局计数器和解散实例.

剩下就是you win或game over了.
你可以决定之前定义的累加变量等于几的时候赢.
之前定义的计数器为0时game over.

嗯就是这么回事了~你要确定你要解决的问题是什么然后再一一解决.当然你也可以边做边发现问题边解决.
总之加油拉.不懂可以在贴吧里问.
当然如果你自己连做都不做.
那贴吧里就不会有人帮你咯.
我学GM还没几个星期...所以虽然以上问题貌似都能解决.但是经常兜圈子0.0`、、所以还是最好去贴吧里看看拉.免得你被我带坏了思路也绕弯子拉...

汗`、、别看这么多.都不是复制哒哦```
我耐心打的.希望你也耐心看下拉0.0``、、、

⑧ 打地鼠的代码怎么写啊

package com.lzw;
import java.awt.EventQueue;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class Shrewmouse extends JFrame implements Runnable {
private JLabel[] mouses; //存放显示底数的标签数组
private ImageIcon imgMouse; //地鼠图片对象
public static void main(String args[]){
EventQueue.invokeLater(new Runnable(){
public void run(){
try{
Shrewmouse frame=new Shrewmouse(); //创建窗体
frame.setVisible(true); //显示窗体
new Thread(frame).start(); //启动线程
}catch(Exception e){
e.printStackTrace();
}
}
});
}
public Shrewmouse(){
super();
this.setResizable(false); //禁止调整窗体大小
this.getContentPane().setLayout(null); //窗体不使用布局管理器
this.setTitle("简易的打地鼠游戏"); //设置窗体标题
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ImageIcon img=new ImageIcon(getClass().getResource("background.jpg"));
//初始化背景图片
imgMouse=new ImageIcon(getClass().getResource("mouse1.jpg"));
//初始化地鼠图片对象
mouses=new JLabel[6]; //创建显示地鼠的标签数组
for(int i=0;i<6;i++){ //遍历数组
mouses[i]=new JLabel(); //初始化每一个数组元素
mouses[i].setSize(imgMouse.getIconWidth(),imgMouse.getIconHeight());
//设置标签与地鼠图片相同大小
mouses[i].addMouseListener(new MouseAdapter(){//为标签添加鼠标事件监听适配器
/**
* 处理鼠标单击事件的方法
*/
@Override
public void mouseClicked(MouseEvent e){
Object source=e.getSource(); //获取事件源,即地鼠标签
if(source instanceof JLabel){ //如果事件是标签组件
JLabel mouse=(JLabel)source; //强制转换为JLabel标签
mouse.setIcon(null); //取消标签图标
}
}
});
this.getContentPane().add(mouses[i]); //添加显示地鼠的标签到窗体
}

mouses[0].setLocation(253, 300); //设置每个标签的位置
mouses[1].setLocation(333, 250);
mouses[2].setLocation(388, 296);
mouses[3].setLocation(362, 364);
mouses[4].setLocation(189, 353);
mouses[5].setLocation(240, 409);

final JLabel backLabel=new JLabel(); //创建显示背景的标签
backLabel.setBounds(0, 0, img.getIconWidth(), img.getIconHeight());
this.setBounds(100,100,img.getIconWidth(),img.getIconHeight());
backLabel.setIcon(img); //添加背景到标签
this.getContentPane().add(backLabel); //添加背景标签到窗体
}
/**
* 线程的核心方法
*/

public void run(){
while(true){ //使用无限循环
try{
Thread.sleep(3000); //使线程休眠3秒
int index=(int)(Math.random()*6); //生成随机的地鼠索引
if(mouses[index].getIcon()==null){ //如果地鼠标签没有设置图片
mouses[index].setIcon(imgMouse); //为该标签添加地鼠图片
}
}catch(InterruptedException e){
e.printStackTrace();
}
}
}

}

⑨ C语言鼠标操作

我之前给别人写过一个打地鼠的小游戏,就是用鼠标操作的。发给你参考下。代码很简单。

主要函数我在下方说明了,但更多信息你必须自己网络看,一言两语说不完。

SetConsoleCursorPosition函数可以定位光标位置,也就是文字内容显示的起点。

ReadConsoleInput(HANDLE hConsoleInput,*INPUT_RECORD lpBuffer,DWORD nLength,
DWORD lpNumberOfEventsRead)函数可以获取鼠标的操作信息。

调用过上面函数后,lpBuffer由于是传址,所以其地址里的值就包含了鼠标信息。

lpBuffer.EventType == MOUSE_EVENT //判断是鼠标事件

lpBuffer.Event.MouseEvent.dwButtonState == FROM_LEFT_1ST_BUTTON_PRESSED//判断是鼠标左键点击

两个判断一起就是鼠标左键点击的判断,其他事件参数你可以自己网上找。

#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
#include<conio.h>
#include<time.h>
#include<string.h>
#include<malloc.h>
#definegSizek30//区域大小宽度
#definegSizeg20//区域大小高度
#definegBegin3//活动区域起始行
intmain()
{
intt=0,s0,s1,i,j,count=0,fen=0,row=0,clo=0;
chargameA[gSizeg][gSizek+1],fSave[10]={0};
SetConsoleTitle("打地鼠");
HANDLEhInput=GetStdHandle(STD_INPUT_HANDLE);//获取标准输入设备句柄
INPUT_RECORDinRec;
DWORDres;
COORDp0;
p0.X=0;
p0.Y=0;

srand(time(0));
s0=time(NULL);
strcpy(gameA[0],"GAME");
strcpy(gameA[1],"未命中次数:0,计分:000000");
for(i=gBegin-1;i<gSizeg;i++)
{
for(j=0;j<gSizek+1;j++)
{
if(i>gBegin-1&&i<gSizeg-1&&j>0&&j<gSizek-1)
gameA[i][j]='';
else
gameA[i][j]=4;
if(j==gSizek)
gameA[i][j]=0;
}
}
for(i=0;i<gSizeg;i++)
printf("%s ",gameA[i]);

while(1)
{

if(t>=3)
{
if(row>0&&clo>0)
gameA[row][clo]='';
row=rand()%(gSizeg-1);
clo=rand()%(gSizek-1);
s0=time(NULL);
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),p0);

if(row<3)
row=4;
if(clo<1)
clo=1;
gameA[row][clo]=2;
for(i=0;i<gSizeg;i++)
{
//gameA[i][gSizeg+1]=0;
printf("%s ",gameA[i]);
}

}
if(count==3)
{
p0.X=10;
p0.Y=8;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),p0);
printf("GAMEOVER!");
break;
}
s1=time(NULL);
t=s1-s0;
ReadConsoleInput(hInput,&inRec,1,&res);
if(inRec.EventType==MOUSE_EVENT&&inRec.Event.MouseEvent.dwButtonState==FROM_LEFT_1ST_BUTTON_PRESSED)//鼠标左键
{
if(inRec.Event.MouseEvent.dwMousePosition.X==clo&&inRec.Event.MouseEvent.dwMousePosition.Y==row)
{

if(fen==0)
fen=1;
if(fen>999999)
fen=999999;
else
fen=fen*2;

sprintf(fSave,"%06d",fen);
gameA[1][18]=0;
strcat(gameA[1],fSave);
}
else
{
count++;
fen=0;
gameA[1][11]=count+'0';
}
t=4;
}
}
while(1);
return0;
}

⑩ c语言中怎么写打地鼠的游戏

在一个二维数组中,存放标记。

设置难度:分:

  • 一次只显示一个

  • 一次只显示二个

  • 一次只显示三个

对应产生2*N个随机数,对应(x,y),设置为1,其它空的设置为0.



大概的游戏流程循环:

结束条件: 打到M个停止。

1,产生随机数,且不相同

2,在对应的坐标中,画出地鼠,

在N秒内,没有击中,地鼠消失;击中,加分。

(击中的坐标,要与用户点的坐标想比较即可,在这个范围就得分)