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

问题描述

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


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)
    {

    }

}

}


解决方案

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

时间: 2024-11-05 16:36:44

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

win8.1电脑玩单击游戏经常发生蓝屏死机状况的三大解决方法

win8.1电脑玩单击游戏经常发生蓝屏死机状况的三大解决方法   电脑玩游戏经常蓝屏死机的解决方法一: 1.首先了解发生蓝屏前电脑的情况及所做的操作.如果电脑在CPU或内存等超频后,出现蓝屏,则蓝屏故障与超频有关,只要将频率恢复正常即可. 2. 如果电脑在光驱读盘时被非正常打开导致蓝屏,则蓝屏故障是由于被误操作引起的,此故障一般将光盘重新放入光驱,再关上光驱托盘即可. 3.如果电脑在带电插拔某设备时发生蓝屏,则蓝屏故障与带电插拔设备有关,一般重新启动电脑即可恢复. 4. 如果电脑在使用某一个应用

win8.1系统玩游戏提示TP提示自加载初始化失败的解决方

最近有不少用户又更新了Win8.1系统安装了Updata,不过很多游戏用户表示在更新后玩游戏出现 TP提示 的窗口,内容则为自加载初始化失败,特别是腾讯的游戏如LOL,CF等,那么我们如何解决这个问题呢?下面小编就分享一下解决方法. 一.用兼容性模式运行游戏 安装补丁后出现游戏不兼容的现象,我们可以设置游戏为win7系统兼容模式运行. 操作方法:右键点击要运行的游戏图标,选择属性,打开属性后切换到"兼容性"选项卡",然后勾选"以兼容模式运行该程序"在列表中

从蔡文胜收购4399小游戏谈小游戏网站的前景

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 传域名投资大王蔡文胜已经全资收购了4399在线小游戏网站,具体收购金额不详.蔡总在面对记者提问的时候说道:"中国的普通互联网用户相对低端,对他们来说,互联网越简单越好.我曾做过实验,我让五六岁的小孩同时玩4399和其他小游戏网站的游戏,一个星期之后,他会更喜欢使用4399."这也正是投资4399在线小游戏的主要原因. 统计

Unity3D游戏开发,游戏体碰撞问题,请教!

问题描述 Unity3D游戏开发,游戏体碰撞问题,请教! 初学unity3d,遇到个问题,想请教一下大家! 买了一本unity3d游戏开发的书,实现一个小项目实例,太空射击游戏,现在我把敌机,主角和子弹都放在了场景上了,主角能发射子弹: 也按照书上给敌机.子弹.主角添加了相关组件,运行时碰撞没有效果.请指点! 解决方案 它们是在同一个场景层还是同一个,如果是不同的场景层应该没有效果吧: 你再仔细检查一下代码: 如果回答对你有帮助,请采纳 解决方案二: http://wenku.baidu.com

Android实训案例(八)——单机五子棋游戏,自定义棋盘,线条,棋子,游戏逻辑,游戏状态存储,再来一局

Android实训案例(八)--单机五子棋游戏,自定义棋盘,线条,棋子,游戏逻辑,游戏状态存储,再来一局 阿法狗让围棋突然就被热议了,鸿洋大神也顺势出了篇五子棋单机游戏的视频,我看到了就像膜拜膜拜,就学习了一下,写篇博客梳理一下自己的思路,加深一下印象 视频链接:http://www.imooc.com/learn/641 一.棋盘 我们一看就知道,我们必须自定义View,这里我们定义一个GameView来做游戏主类,第一步,先测量,我们这里不难知道,五子棋他的棋盘是一个正方形,所以我们需要去测

《Cocos2D权威指南》——3.8 垂直射击游戏—加载游戏数据

3.8 垂直射击游戏-加载游戏数据 为了使大家对CCSprite和各相关类的使用有更加直观的印象,下面我们结合前面的游戏示例,使用精灵表单优化游戏性能,同时在游戏开始和结束时添加菜单,让玩家对游戏有更多控制权.当然,在这个示例小游戏中,这种优化是看不出差别的.但这是最佳实践,建议读者以后编写游戏都以这种方式使用精灵. **3.8.1 注释draw方法和背景 ** 首先,在Xcode中打开之前的项目中把draw方法注释掉,同时恢复先前注释掉的添加游戏背景的代码段,编译并运行,如图3-6所示. 注意

《游戏机制——高级游戏设计技术》一1.4 原型制作技术

1.4 原型制作技术 游戏机制--高级游戏设计技术 原型是产品或工序的一个模型,它通常是预备性的.不完整的.它的作用是在产品实际制造出来之前测试产品的可用性.由于原型不像最终产品那样需要仔细润饰和打磨,因此它构建和修改起来更为快速且廉价.游戏设计师制作原型来测试游戏的机制和可玩性.游戏设计师经常使用的原型技术有软件原型(software prototype).纸面原型(paper prototype)和物理原型(physical prototype). 1.4.1 一些术语 多年以来,软件开发者

《游戏机制——高级游戏设计技术》一导读

前 言 游戏机制--高级游戏设计技术 这是一本涉及游戏最深层次的书.一个游戏无论看上去多么棒,如果其机制乏味或失衡,那么它玩起来就不会有趣.游戏机制产生可玩性,要创造出优秀的游戏,你必须懂得这件事之中的道理. 本书将告诉你如何设计.测试及调整游戏的核心机制.这些理论适用于任何游戏-从庞大的角色扮演游戏(RPG,role-playing game)到手机休闲游戏,再到传统的桌上游戏(board game).在学习过程中,我们会使用大量你可能已经耳熟能详的实际游戏作品作为案例,包括<吃豆人>(Pa

《游戏机制——高级游戏设计技术》一1.1 规则定义游戏

1.1 规则定义游戏 游戏机制--高级游戏设计技术 游戏这个概念有很多不同的定义.但大多数说法都同意:规则是游戏的本质特性.例如,在<Fundamentals of Game Design>一书中,Ernest Adams是如此定义游戏的: 游戏是在一个模拟出来的真实环境中,参与者遵照规则行动,尝试完成至少一个既定的重要目标的游乐性活动. 在<Rules of Play>中,Katie Salen和Eric Zimmerman提出如下定义: 游戏是一个让玩家在规则的约束下参与模拟的