我认为此程序应该从2个方向考虑,如果你真的做游戏的话,C#必须配合别的软件一起搞,如果只是做一个机器人程序的话,我建议是这样考虑:
1.只先考虑平面化游戏,不变换视角的~用一个PICTUREBOX加载整个球场图片
2.球场的边线,球门,裁判,球员,中线,总之一些该记录的东西全部用坐标的方式记录下来~
3.球员的移动就是在图片的键盘按下事件里面写,首先,当人带球时,你要处理对方球员的动向和自己球员的动向~根据电脑的难易度来划分犯规和盯人比例,这里面全部用“%”来判断,例如 简单就用 “20%” 难就用“50%”这种方式来,再举个更贴切的例子~假设 对方球员的奔跑速度为100,简单的话就是100*20%,难就是100*50%明白了吗
4.关键里面有一个数据交换的问题~何为数据交换,例如:你带球前进,对方球员短球,这就上把数据发送给你,你接受此数据后,判断根据对方断球几率,和你自己的闪避几率来做 随即数,如果符合则被断掉,如果不符合则不会被断,这样你会继续前进,全都都用是这样来判断,里面要写很多很多很多的计算类朋友你累了~不容易啊~做好的话,想着兄弟一份~呵呵~QQ48017015 ,加QQ的请著名 为CSND朋友,否则我是不会随便加人的,因为现在骗子太多了~呵呵

解决方案 »

  1.   

    1. 将球场信息(一个结构体)直接写进文件合适吗?我希望用C#来写分析程序,但C#怎么读这个结构体呢?
    >>存储使用xml存储,如果要写成类,可以使用序列化的方法存储与读取。2. 将读取的数据进行一定的转化后再在分析程序中动态地显示出来,比如说我想看一个其中的一个机器人所走过的路径等,绘图用GDI好还是API好?我现在用GDI,那又在哪绘比较好呢?我用的是PictureBox继承的类来完成绘图
    >>做这这些东西当然是用DirectX来完成了,
    3. 还是绘图的,我希望能将每个机器人的信息独立出来,就是相当于有若干个图层,每个层上面画一个机器人的运动情况,但图层怎么实现啊,好晕啊?刚开始搞绘图,好雾啊!4. 继续问绘图,路径或机器人走过同一个地方,那画的图被盖住了,如何恢复,好像有“异或”绘图吧?5. 所谓的双缓冲就是附设一个BitMap来完成绘图吗?这个不是很清楚,BitMap能否透明,我想如何没法做图层,就只好画若干个PictureBox了,虽然性能会降得不可思议6. 这个没思路。 如果,我想在球赛进行的时候同步进行分析,如何做啊,这时候再通过文件来做媒介太不实际了吧?
    >>分析什么啊,分析数据当然是在内存中了。绘图当然是使用directX了,其它的不用考虑。
    directx in .net resource:
    http://msdn.microsoft.com/theshow/episode037/default.asp
    http://www.sunlightd.com/Windows/DirectX.NET/
      

  2.   

    谢谢 wdwd05(学.NET,从头开始) 和 wolve(我是一个中专生) 的解答,现在我纠正一下:    我现在并不是在做游戏,比赛平台是有的,我们有现成的算法库(因为不是个人的东西,不能贴出来),进行比赛时由于动作很多,虽然有暂停和回放功能,但还是有点欠缺,现在每个周期中都将球场的信息写进一个文件,其中已包含了所有队员及对手球员及球的信息,然后,用C#加载这个文件,读出其中的数据再进行处理,比如将一个球员走过的路径绘出来等,但不知道是写文件时就出错还是C#读文件时出错,反正还有问题,大家如果可能帮忙看一下:
    http://www.doocy.com/C#/PlatFormStat.rar
    这个是我的程序源文件,由于我很少看C#的参考书,而且,学这个不久,可能结构不清楚,也没有写注释,希望大家谅解,对C#的进一步开法还是有很多问题啊!DirectX一定没概念啊,咋整哩?VC中如何进行XML的读写啊?大家有没有GDI绘图的资料啊?如果不行,就又重新回到VC进行开始分析器了!
      

  3.   

    C#足够实现了,没必要VC,会花掉更多的精力
      

  4.   

    绘图不一定要用directx的,C#中用GDI+也可以完成这种简单的图形绘制。我的理解,你的图里面应该就是曲线吧。关于你所谓的土层观点,我可以给出一种解决方案,称为类图层方案,即并非真正的图层概念。
    图里只是曲线,最终要的元素是什么?计算机绘制曲线是通过一个点一个点来drawline完成的,没有完全的曲线。所以最重要的元素当然是点。你在绘图的代码里面定义一个数组来存放各条曲线的点坐标或者是数据(是数据你绘图的时候要经过计算换算成绘图座标)。另外再建一个类来写曲线信息,包括绘制开关,数据角标等等属性,再声明该类的arraylist来存放各曲线的信息。绘图时就可以很简单的实现一条曲线一条曲线的绘制,也可以方便的控制哪条绘制哪条不绘制。
    如果图形比较复杂,建议还是使用drictx,那是不二的选择~!
      

  5.   

    C#里面结构和类的概念已经模糊啦,结构里面也可以定义成员函数。最大的区别还在于结构是值类型,类是引用类型。怎么解释这个最大区别的影响呢?举例说如果你把它作为一个参数传递给一个函数,如果是引用类型,你在函数中改变了其值,则它将保存这种改变但是如果是值类型,那么它就会在函数调用结束后变会调用之前的值。你可以把引用和C里面的&联系起来思维。
      

  6.   

    谢谢,现在我想将机器人写成一个类,并且包含一个BitMap属性,这样,每个机器人绘制自己的曲线,不过,这样,就得加好几个picturebox来显示各个机器人的曲线了,就是叠在一起
      

  7.   

    用数据库来做数据中介没问题
    另,建议:
    不要用Timer来控制“比赛了”
    改用线程吧[Sleep]
      

  8.   

    嗯,谢谢,线程是要加的,而且非加不可,因为只是测试用,所以只是简单地用Timer来进行,但即使加了线程Timer也是不可少的,我认为,线程一般跟Timer配合起来比较好用数据库的读写速度应该没问题吧?我指比文本文件快吗?