vb.net图形工具 vb绘制图形程序( 二 )


四 攻击与防守
以上的方式 事实上计算机只是计算出了最佳的攻击位置 为了防守我们还应计算当前玩家的最佳的攻击位置 这样有什么用呢?道理很简单 如果玩家最佳攻击位置的分数大于计算机最佳攻击位置上的分数 那么计算机就将下一步的棋子摆在玩家的最佳攻击位上以阻止玩家的进攻 否则计算机便将棋子下在自己的最佳攻击位置上进行攻击
事实上 这个AI构想是很强大的如果你不是很厉害的五子棋高手的话 可能很快会被计算机打败 我在联众上可是中级棋手啊 跟这种构想打的时候胜率也不是很高
使用编写五子棋
一 编写前的准备
用计算机的思想描述整个下棋的过程
考虑步骤
( )为了简便我们可以先让电脑先走第一步棋 电脑每走一步就会封掉许多玩家的获胜可能情况
( )当玩家走棋的时候我们首先应该考虑玩家走棋的合法性
( )如果合法 那么玩家也会封掉许多电脑的获胜的可能情况
( )电脑的思考路径 首先判断当前玩家和电脑的所有获胜组合是否需要进行加强赋值 是进行加强赋值 否则进行普通的赋值
( )比较当前玩家和电脑谁的分值最大 将分值最大的点作为电脑的下一步走法
利用窗体和图形工具建立五子棋的棋盘界面
( )添加一个picturebox控件
作用 使用picturebox控件绘制棋子和棋盘
( )添加一个label控件
作用 显示当前的获胜标志 也就是当某一方获胜或和棋时显示此标签
( )添加一个mainmenu控件
作用 控制游戏的开始或结束
( )添加一个mediaplay组件
作用 使程序可以播放音乐
设置整体框价
我们采取 * 的棋盘 为主要的平台 利用数组定义整个棋盘桌面 利用数组定义获胜组合以及获胜标志等
二 声明全局数组和变量
定义虚拟桌面
Dim table( ) As Integer定义当前玩家桌面空格的分数
Dim pscore( ) As Integer定义当前电脑桌面空格的分数
Dim cscore( ) As Integer定义玩家的获胜组合
Dim pwin( ) As Boolean定义电脑的获胜组合
Dim cwin( ) As Boolean定义玩家的获胜组合标志
Dim pflag( ) As Boolean定义电脑的获胜组合标志
Dim cflag( ) As Boolean定义游戏有效标志
lishixinzhi/Article/program/ASP/201311/21668
VB.net可以开发小型3D图形显示软件吗?可以借助DirectX来编程 。免费3D引擎可不好找,一般来说速度比不上硬件加速后的DX , 尤其令人头疼的是一般都没有针对VB的文档,LZ有这方面理想的话,自己写一个吧……
我不得不承认在VB上写DirectX的教程相当难找!如果LZ想深入研究三维图形问题,C++一定要学,就算不能用C++编程 , 起码要能把C++程序翻译成VB程序 。
我自己学会DX编程花了两三个月(很浅) 。编这样一个程序难度是有点大的 。
工具:DirectX9和其针对VB的库(项目-添加引用 。.NET库里DX库一般都有) , VB不知道现在支不支持DX10以上的版本,不过9绝对够用了 。
思路:一切3D图形都是由三角形拼成的 。矩形挖掉一个圆孔可不是一个方便画的图形 , 我估计至少得有24个三角形 。你需要记录这些点的坐标,或者干脆把它们写在文件里,到时读出来 。
这是我的一个老DX程序的不完全的代码(显示一个黑乎乎的平面),不一定能编译,可以参考一下 。
Imports Microsoft.DirectX '一定要~
Public Class FormMain
'Direct3D Startup
Dim d3dpp As New Direct3D.PresentParameters 'DX基本参数,例如全屏还是窗口等
Public MyDevice As Direct3D.Device ‘DX基本设备 , 画图就靠它 。

推荐阅读