汉字英雄游戏软件C#
(1)游戏支持不同用户的使用,能够将用户信息及得分以文件形式保存,
以字符流的读写为基础借助txt进行用户的注册,登录以及相关成绩统计。
(2)从汉字库中随机抽取一个汉字显示在游戏界面上。
(3)游戏界面上以图片形式显示 26 个字母(26个图片,类似扑克牌),支持鼠标对图片的拖动。
(4)支持用户将字母分别拖动到指定区域并选择声调组成答案并提交,游戏可以根据用户提交的答案判断拼音是否正确。
(5)可其做题历史以及得分情况,做题情况记录下来。
设计核心技术
字符流的读写(以注册为例)
using System.IO;
using System.Collections;
private void button1_Click(object sender, EventArgs e)
{
ArrayList al = new ArrayList();//建立动态数组1
FileStream fs = newFileStream("账号库.txt", FileMode.Append, FileAccess.Write,FileShare.ReadWrite);
FileStream fs1 = new FileStream("账号库.txt", FileMode.Open,FileAccess.Read, FileShare.ReadWrite);
StreamWriter sr =new StreamWriter(fs);
StreamReader sr1 = new StreamReader(fs1); //读取指定文本文档
while(sr1.Peek() >= 0) //逐行读取文本文档
{
al.Add(sr1.ReadLine());//将读取到的行写到数组中
}
sr.WriteLine(username.Text.Trim()+ " " + password.Text.Trim());//开始写入值
sr.Close();
fs.Close();
}
控件的拖拽以及委托
int xPos, yPos,//中介坐标
x0, y0;//原位置坐标
bool MoveFlag;
PictureBox picBox;
private void picBox_MouseDown(objectsender, MouseEventArgs e)
{
MoveFlag = true;//已经按下.
picBox = (PictureBox)sender;//获取得到出发本事件的具体按钮
xPos = e.X;//当前x坐标.
yPos = e.Y;//当前y坐标.
x0 = picBox.Left;//移动前
y0 = picBox.Top;//移动前
}
private void picBox_MouseUp(objectsender, MouseEventArgs e)
{
MoveFlag = false;
picBox.Left = Convert.ToInt16(x0);
picBox.Top = Convert.ToInt16(y0); //回到原位置
}
private void picBox_MouseMove(objectsender, MouseEventArgs e)
{
if(MoveFlag)
{
picBox.Left +=Convert.ToInt16(e.X - xPos);//设置x坐标.
picBox.Top += Convert.ToInt16(e.Y- yPos);//设置y坐标.
}
}
从文本中随机读取一行(抽取题目)
StreamReader sr =new StreamReader("汉字库.txt"); //读取指定文本文档
ArrayList al = new ArrayList();//建立动态数组
Random r = newRandom();//随机数
while(sr.Peek() >= 0) //逐行读取文本文档
{
al.Add(sr.ReadLine());//将读取到的行写到数组中
}
int i =r.Next(0, 3748); //定义随机数的范围(汉字库中有3748个汉字) string str= al[i].ToString(); //将读取到的随机数组值赋给str
ti = str.Split(Convert.ToChar(","));
label1.Text = ti[0];
利用timer控件来进行计时
int time = 0;
int time1 = 0;
private void Form1_Load(object sender, EventArgse)
{
timer2.Interval =1000;
timer2.Enabled = true;
}
private void timer2_Tick(object sender, EventArgse)
{
time1++;
time++;
label14.Text = "游戏用时:" + time1.ToString()+ "s";
}
汉字英雄游戏软件C#下载地址:https://download.csdn.net/download/Ysuxiaolu/12064012