成都网站建设设计

将想法与焦点和您一起共享

vb点虐 中级篇 vb net

VB.NET设置屏幕分辨率、颜色位数、刷新率 实例代码

这篇文章介绍了VB.NET设置屏幕分辨率、颜色位数、刷新率

专注于为中小企业提供成都网站建设、成都网站设计服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业响水免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了1000多家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

实例代码,有需要饥冲的朋友可以参考一下

复制代码

代码如下:

Private

Declare

Function

GetDeviceCaps

Lib

"gdi32"

(ByVal

hdc

As

Long,

ByVal

nIndex

As

Long)

As

Long

Private

Declare

Function

ChangeDisplaySettings

Lib

"user32"

Alias

"ChangeDisplaySettingsA"

(lpDevMode

As

Any,

ByVal

dwflags

As

Long)

As

Long

Private

Const

CCDEVICENAME

As

Long

=

32

Private

Const

CCFORMNAME

As

Long

=

32

Private

Const

DM_BITSPERPEL

As

Long

=

H40000

Private

Const

DM_PELSWIDTH

As

Long

=

H80000

Private

Const

DM_PELSHEIGHT

As

Long

=

H100000

Private

Const

DM_DISPLAYFLAGS

As

Long

=

H200000

Private

Const

DM_DISPLAYFREQUENCY

=

H400000

Private

Const

CDS_FORCE

As

Long

=

H80000000

Private

Const

BITSPIXEL

As

Long

=

12

Private

Const

HORZRES

As

Long

=

8

Private

Const

VERTRES

As

Long

=

10

Private

Const

VREFRESH

=

116

Private

Type

DEVMODE

dmDeviceName

As

String

*

CCDEVICENAME

dmSpecVersion

As

Integer

dmDriverVersion

As

Integer

dmSize

As

Integer

dmDriverExtra

As

Integer

dmFields

As

Long

dmOrientation

As

Integer

dmPaperSize

As

Integer

dmPaperLength

As

Integer

dmPaperWidth

As

Integer

dmScale

As

Integer

dmCopies

As

Integer

dmDefaultSource

As

Integer

dmPrintQuality

As

Integer

dmColor

As

Integer

dmDuplex

As

Integer

dmYResolution

As

Integer

dmTTOption

As

Integer

dmCollate

As

Integer

dmFormName

As

String

*

CCFORMNAME

dmUnusedPadding

As

Integer

dmBitsPerPel

As

Integer

dmPelsWidth

As

Long

dmPelsHeight

As

Long

dmDisplayFlags

As

Long

dmDisplayFrequency

As

Long

End

Type

Private

Sub

cmdChangeDesktopMode_Click()

Dim

DM

As

DEVMODE

With

DM

.dmPelsWidth

=

CInt(txtNewWidth.Text)

.dmPelsHeight

=

CInt(txtNewHeight.Text)

.dmBitsPerPel

=

CInt(txtNewColor.Text)

.dmDisplayFrequency

=

CInt(txtNewFreq.Text)

.dmFields

=

DM_PELSWIDTH

Or

DM_PELSHEIGHT

Or

DM_BITSPERPEL

Or

DM_DISPLAYFREQUENCY

.dmSize

=

LenB(DM)

End

With

If

ChangeDisplaySettings(DM,

CDS_FORCE)

Then

MsgBox

"错误!不支蠢肢前持此模式!"带清

End

If

End

Sub

Private

Sub

Form_Load()

txtOldWidth.Text

=

GetDeviceCaps(Me.hdc,

HORZRES)

txtOldHeight.Text

=

GetDeviceCaps(Me.hdc,

VERTRES)

txtOldColor.Text

=

GetDeviceCaps(Me.hdc,

BITSPIXEL)

txtOldFreq.Text

=

GetDeviceCaps(Me.hdc,

VREFRESH)

End

Sub

VB.NET实现五子棋的人工智能-1

人工智能也就是所谓的AI(Artificial Intelligence) 是一门很抽象的技术 AI程序的编写不需要依据任何既定的思考模式或者规则 尤其是游戏中的AI可以完全依程序设计者本身的思考逻辑制作 我个人认为人工智能的核心应该是使计算机具有自动的处理事件的能力 而我们的所有的研究也应该围绕着这一方向 主体是策略类的人工智能

策略类人工智能可以说是AI中比较复杂的一种 最常见的策略类AI游戏就是棋盘式游戏 在这类游戏中 通常的策略类AI程序都是使计算机判断目前状况下所有可走的棋与可能的获胜状况 并计算当前计算机可走棋步的获胜分数或者玩家可走棋步的获胜分数 然后再决定出一个最佳走法 下面先介绍一下五子棋的AI构想

五子棋的AI构想

有句话叫 当局者迷 旁观者清 但这句话在由AI所控制的计算机玩家上是不成立的 因为计算机必须知道有那些获胜方式 并计算出每下一步棋到棋盘上任一格子的获胜几率 也就是说 一个完整的五子棋的AI构想必须   能够知道所有的获胜组合

建立和使用获胜表

设定获胜的分数

使电脑具有攻击和防守的能力

一 求五子棋的获胜组合

在一场五子棋的游戏中 计算机必须要知道有那些的获胜组合 因此我们必须求得获胜组合的总数 我们假定当前的棋盘为 *

( )计算水平方向的获胜组合数 每一列的获胜组合是 共 列 所以水平方向的获胜组合数为 * =

( )计算垂直方向的获胜组合总数 每一行的获胜组合是 共 行 则垂直方向的获胜组合数为 * =

( )计算正对角线方向的获胜组合总数 正对角线上的获胜组孙祥合总数为

+( + + + + )* =

( )计算反对角线方向的获胜组合总数 反对角线上的获胜组合总数为   +( + + + + )* = 这样所有的获胜组合数为 + + + =

二 建立和使用获胜表

我们已经计算出了一个 * 的五子棋盘会有 种获胜方式 这样我们可以利用数组建立获胜表 获胜表的主要作用是 判断当前的获胜方式是否有效 判断当前的获胜方式中到底有多少子落入该获胜组合中 详细的使用您将在后面的程序中可以看出

三 分数的设定

在游戏中为了让计算机能够决定下一步最佳的走法 必须先计算出计算机下到棋盘上任一空格的分数 而其中最高分数便是计算机下一步的最佳走法

原理 我们判定当前讨论的空格与当前讨论的点有几种获胜的方式 有几种该空格就加几分 这种原理初听起来似乎是无法入手 没关系 当您了解我们后面的程序后您就会明白这种决策原理了

这种决策有一些缺陷 因为如果只根据这个模型设计 就有可能出现电脑或玩家有三个子连成一线的颤凯源时候 计算机却判断不出 它认为其他某些空格是当前的获胜的最佳位置而不去攻击或防守 没关系我们完全可以通过一个加强算法来改变当前的分值情况 也就是说当电脑或玩家有三个子或四个子连成一线时 我们通过加强算法将当前与三个子或四个子有关的空格的分值提高 从而可以弥补这一缺憾

四 攻击与防守

以上的方式 事茄态实上计算机只是计算出了最佳的攻击位置 为了防守我们还应计算当前玩家的最佳的攻击位置 这样有什么用呢?道理很简单 如果玩家最佳攻击位置的分数大于计算机最佳攻击位置上的分数 那么计算机就将下一步的棋子摆在玩家的最佳攻击位上以阻止玩家的进攻 否则计算机便将棋子下在自己的最佳攻击位置上进行攻击

事实上 这个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怎样学?

你得先补基础。

最好去学校,找计算机系的学生,抄下专业专业课程和对应的课本(说不定做扮桐顺便能讨些旧课本),卖齐这些课本(一般学校里面就有书店)慢慢学。

(以下课程不全)

至少需要读一遍的:计算机导论、程序纯坦缺数设计基础、软件工程、编译原理

重点学习的:算法与数据结构、面向对象程序设计

还有VB.Net需要一定的基础,建议先从 C++ 或 VB(版本6.0)入门


分享标题:vb点虐 中级篇 vb net
网址分享:http://chengdu.cdxwcx.cn/article/ddpddgi.html