前言
好久没有碰过代码了,上次看C#估计还是上个学期233,这次老师突然布置了一个C#语言编写的井字棋程序让我有点措手不及.不过,仗着微软爸爸的vs的强大的代码补全能力,最后还是将这个程序做好了(遇到了很多坑).
要求
该程序的要求还是有点多了,以下一一列举:
1. 在程序初始化时,要求输入玩家用户名,输入后出现提示文字,并选择是先手还是后手.
2. 点击Fight!后,进入游戏界面,在九宫格中下一步棋后,电脑(敌人)会判断形势并下第二部棋,如此直至有三子连成一线(玩家或电脑赢),或者格子被占满(和局).旁边有提示按钮,点击后会出现提示;得分按钮会出现具体的得分界面;退出按钮则会退出程序
3. 得分界面,点开后会显示自己的得分情况.最高得分按钮会记录玩家玩这个游戏以来所得的最高分;打印按钮则会打印自己的具体得分情况
主体
首先制作打开程序时出现的”登录”界面,即该程序的mainwindow:
样式:
这里要注意的是,只有当输入完姓名后才能出现下面的提示文字等控件,所以应事先将其属性定为隐藏,点击”commit”按钮后触发事件
private void btm_commit_click(object sender, RoutedEventArgs e)
{
if (TBox1.Text.Length>0&&TBox1.Text.Length<10)//判断玩家输入的文字长度,更为严谨的做法应该是判断字母+数字的长度,以及玩家输入的字符串不符合时应出现提示信息
{
storage.name = TBox1.Text;//定义在storage类中的静态变量,为了存储玩家名称,成绩等信息
TBlock2.Text = "Hi " + storage.name + ". Welcome to the battlefield!Now,lets begin the game!!!Hey,do you want to place a bomb first?";//其实应该直接在前台代码中写好内容,不必在后台再赋值,因多次修改代码所致
TBlock2.Visibility = Visibility.Visible;//显示提示文本块
RB1.Visibility = Visibility.Visible;//显示单选按钮,让用户选择是否先手
RB2.Visibility = Visibility.Visible;//同上
btm_fight.Visibility = Visibility.Visible;//显示进入游戏界面的按钮
btm_commit.IsEnabled = false;//禁止玩家再次点击commit按钮
}
}
在玩家确定好是否先手后,就该点击Fight!按钮进入游戏界面了
private void to_