请用c#语言建立一个打地鼠游戏,要求使用窗体应用程序,有四个窗体,可以进行游戏模式选择,游戏界面显示游戏时间倒计时、游戏得分,完成一局后可以选择退出或者返回首页,或者再来一局,这三个是按钮,要求按动按钮后完成窗体跳转,请根据以上描述,生成完整代码
时间: 2024-03-20 19:44:33 浏览: 62
一个C# 打地鼠的游戏
4星 · 用户满意度95%
很高兴为您提供代码,以下是C#语言建立打地鼠游戏的示例代码:
```csharp
// 主界面窗体
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
}
// 进入游戏界面
private void btnStart_Click(object sender, EventArgs e)
{
GameForm gameForm = new GameForm();
this.Hide();
gameForm.ShowDialog();
this.Show();
}
// 进入设置界面
private void btnSetting_Click(object sender, EventArgs e)
{
SettingForm settingForm = new SettingForm();
this.Hide();
settingForm.ShowDialog();
this.Show();
}
// 退出游戏
private void btnExit_Click(object sender, EventArgs e)
{
this.Close();
}
}
// 游戏界面窗体
public partial class GameForm : Form
{
private int time = 30;
private int score = 0;
private Random random = new Random();
public GameForm()
{
InitializeComponent();
}
private void GameForm_Load(object sender, EventArgs e)
{
timer1.Start();
}
// 点击地鼠
private void btnMole_Click(object sender, EventArgs e)
{
score++;
lblScore.Text = "得分:" + score.ToString();
}
// 游戏结束
private void GameOver()
{
timer1.Stop();
MessageBox.Show("游戏结束,得分:" + score.ToString());
}
// 游戏时间倒计时
private void timer1_Tick(object sender, EventArgs e)
{
time--;
lblTime.Text = "时间:" + time.ToString();
if (time == 0)
{
GameOver();
}
else
{
int index = random.Next(0, 9);
Control[] controls = this.Controls.Find("btnMole" + index.ToString(), true);
if (controls.Length > 0)
{
Button btnMole = (Button)controls[0];
btnMole.Visible = true;
}
}
}
// 返回主界面
private void btnBack_Click(object sender, EventArgs e)
{
this.Close();
}
// 再来一局
private void btnRetry_Click(object sender, EventArgs e)
{
time = 30;
score = 0;
lblTime.Text = "时间:" + time.ToString();
lblScore.Text = "得分:" + score.ToString();
foreach (Control control in this.Controls)
{
if (control is Button)
{
Button btn = (Button)control;
if (btn.Name.StartsWith("btnMole"))
{
btn.Visible = false;
}
}
}
timer1.Start();
}
}
// 设置界面窗体
public partial class SettingForm : Form
{
public SettingForm()
{
InitializeComponent();
}
private void btnSave_Click(object sender, EventArgs e)
{
// 保存设置
this.Close();
}
private void btnCancel_Click(object sender, EventArgs e)
{
this.Close();
}
}
```
在窗体设计器中,需要添加4个窗体,分别为`MainForm`、`GameForm`、`SettingForm`和`GameOverForm`。在`GameForm`中,需要添加9个`Button`控件,命名为`btnMole0`、`btnMole1`、`btnMole2`、`btnMole3`、`btnMole4`、`btnMole5`、`btnMole6`、`btnMole7`和`btnMole8`。在`MainForm`中,需要添加3个`Button`控件,命名为`btnStart`、`btnSetting`和`btnExit`。在`GameForm`中,需要添加3个`Button`控件,命名为`btnBack`、`btnRetry`和`btnExit`。在`SettingForm`中,需要添加各种设置控件。
阅读全文