當前位置:首頁 » 編程語言 » 打地鼠游戲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秒內,沒有擊中,地鼠消失;擊中,加分。

(擊中的坐標,要與用戶點的坐標想比較即可,在這個范圍就得分)