今天周末,用WF4.0写个小游戏,供大家娱乐一下。界面做的不是很美观,请见谅。
效果:
一运行程序,游戏就开始了。
你输入一个数字4,提示“尝试输入一个较大的数字”,如下图:
你输入一个数字100,提示“尝试输入一个较小的数字”,如下图所示:
你经过猜测之后,才对了结果,系统会给你智力的评价,如下图:
如果你对结果不满意,你可以点击从新开始测试。
游戏将能力分为下面几等(纯属娱乐):
1、你的智商超越了爱因斯坦
2、你非常聪明
3、你比较聪明
4、你很正常
5、是火星来的,快回去吧,地球不适合你
实现:
1 、定义流程:
2 、WPF宿主和WF数据交换实体:
1
public
class
GuessingObject
2 {
3 // 来自用户猜测的数字
4 public int numberFromUser
5 {
6 get ;
7 set ;
8 }
9 // 来自WF的消息
10 public string messageFromWF
11 {
12 get ;
13 set ;
14 }
15 // 游戏的时间
16 public int Second
17 {
18 get ;
19 set ;
20 }
21
22 }
2 {
3 // 来自用户猜测的数字
4 public int numberFromUser
5 {
6 get ;
7 set ;
8 }
9 // 来自WF的消息
10 public string messageFromWF
11 {
12 get ;
13 set ;
14 }
15 // 游戏的时间
16 public int Second
17 {
18 get ;
19 set ;
20 }
21
22 }
3、等待用户输入活动:
1
public
sealed
class
ReadLine : NativeActivity
<
GuessingObject
>
2 {
3 [RequiredArgument]
4 public InArgument < string > BookmarkName { get ; set ; }
5
6 protected override bool CanInduceIdle
7 {
8 get
9 {
10 return true ;
11 }
12 }
13
14 protected override void Execute(NativeActivityContext context)
15 {
16 // bookmark creation
17 context.CreateBookmark( this .BookmarkName.Get(context), new BookmarkCallback(OnReadComplete));
18 }
19
20 void OnReadComplete(NativeActivityContext context, Bookmark bookmark, object state)
21 {
22 GuessingObject input = state as GuessingObject;
23 context.SetValue( this .Result, input);
24 }
25 }
2 {
3 [RequiredArgument]
4 public InArgument < string > BookmarkName { get ; set ; }
5
6 protected override bool CanInduceIdle
7 {
8 get
9 {
10 return true ;
11 }
12 }
13
14 protected override void Execute(NativeActivityContext context)
15 {
16 // bookmark creation
17 context.CreateBookmark( this .BookmarkName.Get(context), new BookmarkCallback(OnReadComplete));
18 }
19
20 void OnReadComplete(NativeActivityContext context, Bookmark bookmark, object state)
21 {
22 GuessingObject input = state as GuessingObject;
23 context.SetValue( this .Result, input);
24 }
25 }
本文转自麒麟博客园博客,原文链接:http://www.cnblogs.com/zhuqil/archive/2010/04/24/wfgame.html,如需转载请自行联系原作者