2 qq 20022095 qq_20022095 于 2014.12.13 20:25 提问

打字游戏出现的字母出现重复,怎么解决,星期一就要评审了


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Collections;

namespace project_word_game
{
public partial class Form1 : Form
{
public int mark = 0;//计算用户击中字母个数
public int fault = 0;//计算用户未击中字母个数
public int intoal = 0;//计算产生的字母总数
public Form1()
{
InitializeComponent();
this.Activate();
}

    private void button1_Click(object sender, EventArgs e)
    {
        timer2.Enabled = true;
        timer1.Enabled = true;

    }

    private  void Create_lable()//通过自定义label,生成label,使其出现的坐标和颜色随机生成
    {

        this.KeyPreview = true;
        Random ra = new Random(DateTime.Now.Millisecond);
        Label lb = new Label();
        lb.Location = new Point(ra.Next(10,340),0);
        lb.Text= ((char)ra.Next(65,90)).ToString();
        lb.Font = new Font("宋体", 20);
        lb.AutoSize = true;
        lb.Height = 30;
        lb.Width = 30;
        int c1 = ra.Next(0, 256);
        int c2 = ra.Next(0, 256);
        int c3 = ra.Next(0, 256);
        lb.BackColor = Color.FromArgb(c1, c2, c3);
        panel1.Controls.Add(lb);
    }
    private void Move_label()//控制label的下降,通过自增top来实现
    {
        //Random ra = new Random(DateTime.Now.Millisecond);
        foreach (Label l in panel1.Controls)
        {
            l.Top += 8;
        }
    }
    private void timer2_Tick(object sender, EventArgs e)//控制label的移动
    {
        Move_label();
        foreach (Label l in this.panel1.Controls)
        {
            if ((l.Top + l.Height) >= this.panel1.Height && l.Visible==true)//如果用户未击中,并且label已经触及panel底部
            {
                l.Visible = false;
                fault += 1;//失误数加一
                label7.Text = fault.ToString();
                if (fault == 20)//游戏的结束点,当用户失误达到20,便提示游戏结束。
                {
                 timer2.Enabled = false;
                 timer1.Enabled = false;
                 DialogResult rt=   MessageBox.Show("游戏结束,是否重新开始?","提示",MessageBoxButtons.OKCancel);
                 if (rt == DialogResult.Cancel)//通过消息框,如果用户选取消,则结束程序
                 {
                     MessageBox.Show("谢谢您的使用!", "再见");
                     this.Close();
                 }
                 else//如果用户选确定,则表示用户愿意再玩一次游戏,则游戏界面初始化,等待用户点开始
                 {
                     mark = 0;
                     fault = 0;
                     intoal = 0;
                     label6.Text = "0";
                     label7.Text = "0";
                     label11.Text = "0";
                     foreach (Label la in panel1.Controls)
                     {
                         la.Visible = false;
                     }

                 }
                }
            }

        }



    }

    private void button2_Click(object sender, EventArgs e)
    {
        timer2.Enabled = false;
        timer1.Enabled = false;
    }

    private void Form1_KeyPress(object sender, KeyPressEventArgs e)
    {


    }

    private void Form1_Load(object sender, EventArgs e)
    {

        comboBox1.Text = "初级";

    }

    private void Form1_KeyDown(object sender, KeyEventArgs e)//用户输入和字母进行比较
    {
        string str = e.KeyCode.ToString().ToUpper();
        foreach (Label l in this.panel1.Controls)
        {
            if (l.Text == str)
            {
                l.Visible = false;
                mark += 1;
                label6.Text = mark.ToString();
            }

        }

    }

    private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
        if (comboBox1.Text == "初级")
        {
            timer1.Interval = 1500;
            timer2.Interval = 400;
        }
        if (comboBox1.Text == "中级")
        {
            timer1.Interval = 1200;
            timer2.Interval = 300;
        }
        if (comboBox1.Text == "高级")
        {
            timer1.Interval = 900;
            timer2.Interval = 200;
        }
    }

    private void button3_Click(object sender, EventArgs e)
    {
        timer1.Enabled = false;
        timer2.Enabled = false;
        label6.Text = "0";
        label7.Text = "0";
        mark = 0;
        fault = 0;
        MessageBox.Show("谢谢您的使用!","再见");
        this.Close();
    }

    private void timer1_Tick(object sender, EventArgs e)//控制label生产
    {
        Create_lable();
        intoal += 1;
        label11.Text = intoal.ToString();
    }

    private void Form1_MouseEnter(object sender, EventArgs e)
    {

    }


}

}


1个回答

caozhy
caozhy   Ds   Rxr 2014.12.13 20:35

label6.Text = mark.ToString();后面加上e.Handled = true;

qq_20022095
qq_20022095 这样子还是不能
3 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
c#简单打字游戏
运行效果图如下: /*   * 利用Random类,结合Timer控件,设计窗体。在窗体上的文本框中显示一个大写字符,如果用户输入正确,则产生另一个大写字符。   * 实现打字游戏。(提示:金山打字通的简易版)窗体中的按钮可以用菜单实现。   * 菜单命令组成:   * (1)“设置”菜单:开始游戏、结束游戏和退出游戏。   * (2)“查看”菜单:查看正确
汇编打字游戏程序(别人写的,我修改了部分,然后写了详细的注释)
Init_game macro op1,op2,op3,op4,op5 local ns mov cx,00h mov dh,op1 mov dl,op2 ns:mov ah,02h;设置光标位置 mov bh,00h;页号为0 int 10h push cx mov ah,0ah;在当前光标位置写字符 mov al,op3;al=字符的ascii码 mov bh,00
C# 窗口实现打字游戏
按照惯例 首先先看一下运行之后的结果图 按相应的键值,发射出子弹,实现打字游戏!上代码using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; u
【凉菜鸟成长之路】Head First C#160页打字游戏出现的问题及解决
在HEADFIRSTC#学习过程中,遇见了160页的打字游戏,按照书中的标准一路走下来首先遇到了
打字游戏初级版——C语言
其中用到了图形库graphics.h 在网络课程中学到的。 #include #include #include #include #include IMAGE backimg; IMAGE bamime; IMAGE state; #include #pragma comment(lib,"winmm.lib") void Play()//进入游戏 ————有字母从
HTML5-打字游戏
在网上找了一个HTML5的代码,照着敲了一下。发现收获还是蛮大的。而这个代码大多数是使用jq来写的。对于刚学js不久的自己也算是学习jq的一个不错的项目。游戏效果图如下: 这个图是只写好html和css的图: 这两个是写好的代码效果: HTML代码: HTML5金山打字游戏源码
打字游戏C#编程 掉字母打字游戏(设计+代码)
打字游戏C#编程 掉字母打字游戏(设计+代码)
js编写的打字游戏
该游戏对HTML、CSS、JS的综合运用。代码之间使用的方法有详细的解释。先说一下大致思路:       1. 首先我们要做的是CSS的布局,设div属性,用绝对定位定位置。       2.写主要代码,创建一个字母(当然字母都是图片)。       3.当实现了生成图片,并能让他从顶端出来,说明你已经成功开始了。那么接下来写下降的函数(分数什么的放在最后写)。        4.让图片可以成功的...
教你如何写js小游戏----打字母
从上面掉落字母键盘输入字母,正确通过,错误下一个字母知道错几个 写这个小游戏知道几个关键的东西 1、 onkeydown事件,当鼠标按下时 2、onclick事件,点击 3、var a=(Math.random()*500);          Math.random()随机产生0-1的小数 4、String.fromCharCode(65+(a*100)%26)       将数
简单的Java打字游戏
简单的Java打字游戏 源代码下载地址:http://www.zuidaima.com/share/1586973185674240.htm