建一个文本文档,输入以下代码,后缀改为.frm用枣腔纯vb打开就可以了
以下是程序源码凳咐:
VERSION 5.00
Begin VB.Form Form1
BorderStyle = 3 'Fixed Dialog
Caption = "猜数游戏"
ClientHeight= 3900
ClientLeft = 45
ClientTop = 435
ClientWidth = 4680
LinkTopic = "Form1"
MaxButton = 0 'False
MinButton = 0 'False
ScaleHeight = 3900
ScaleWidth = 4680
ShowInTaskbar = 0 'False
StartUpPosition = 3 '窗口缺省
Begin VB.CommandButton Command2
Caption = "重新圆并开始"
Height = 615
Left= 2640
TabIndex= 2
Top = 2760
Width = 1095
End
Begin VB.CommandButton Command1
Caption = "确定"
Height = 615
Left= 840
TabIndex= 1
Top = 2760
Width = 1095
End
Begin VB.TextBox Text1
Height = 375
Left= 1200
TabIndex= 0
Top = 2040
Width = 2055
End
Begin VB.Label Label9
Caption = "戏"
BeginProperty Font
Name= "宋体"
Size= 24
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H000080FF&
Height = 615
Left= 3720
TabIndex= 11
Top = 240
Width = 615
End
Begin VB.Label Label8
Caption = "游"
BeginProperty Font
Name= "宋体"
Size= 24
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H00808080&
Height = 615
Left= 3240
TabIndex= 10
Top = 240
Width = 615
End
Begin VB.Label Label7
Caption = "数"
BeginProperty Font
Name= "宋体"
Size= 24
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H0000FFFF&
Height = 495
Left= 2760
TabIndex= 9
Top = 240
Width = 615
End
Begin VB.Label Label6
Caption = "猜"
BeginProperty Font
Name= "宋体"
Size= 24
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H00FF00FF&
Height = 495
Left= 2280
TabIndex= 8
Top = 240
Width = 735
End
Begin VB.Label Label5
Caption = "入"
BeginProperty Font
Name= "宋体"
Size= 24
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H00FF0000&
Height = 615
Left= 1800
TabIndex= 7
Top = 240
Width = 855
End
Begin VB.Label Label4
Caption = "进"
BeginProperty Font
Name= "宋体"
Size= 24
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H0000FF00&
Height = 735
Left= 1320
TabIndex= 6
Top = 240
Width = 735
End
Begin VB.Label Label3
Caption = "迎"
BeginProperty Font
Name= "宋体"
Size= 24
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H00FFFF00&
Height = 735
Left= 840
TabIndex= 5
Top = 240
Width = 735
End
Begin VB.Label Label2
Caption = "欢"
BeginProperty Font
Name= "宋体"
Size= 24
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H000000FF&
Height = 615
Left= 360
TabIndex= 4
Top = 240
Width = 495
End
Begin VB.Label Label1
Caption = "我这儿有1~10的整数,你猜猜看他是多少......"
Height = 375
Left= 480
TabIndex= 3
Top = 1320
Width = 3855
End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Dim x As Integer, y As Integer, z As Integer
Dim cishu As Integer
Private Sub Command1_Click()
If cishu = 3 Then MsgBox "已经猜3次了,这个数是" &x: Exit Sub
y = Val(Text1.Text)
If Text1.Text = "" Or Not IsNumeric(Text1.Text) Then
MsgBox "输入有误!请重新输入数字", 48
Text1.Text = ""
Text1.SetFocus
Exit Sub
End If
cishu = cishu + 1
Select Case x - y
Case Is <0
z = MsgBox("你猜数大了,请重猜。注意:你只有三次机会", 48 + 1)
Text1.Text = ""
Text1.SetFocus
Case Is >0
z = MsgBox("你猜数小了,请重猜。注意:你只有三次机会", 48 + 1)
Text1.Text = ""
Text1.SetFocus
Case Else
z = MsgBox("恭喜你猜中了!", 1)
End Select
End Sub
Private Sub Command2_Click()
cishu = 0
Randomize Timer
x = Int((Rnd * 10) + 1)
End Sub
Private Sub Form_Load()
cishu = 0
Randomize Timer
x = Int((Rnd * 10) + 1)
End Sub
代码结束
http://hi.baidu.com/卓7358/
欢迎来我空间
哇,C语言直接写屏小游戏,这样写屏比较累啊。.版本 2
.程序集 窗口程序集1
.程序集变量 电脑得分, 整数型
.程序集变量 自己得分, 整数型
.程序集变量 电脑出, 整数型, , , 1剪刀2布3石头
.子程序 __启动窗口_创建完毕
置随机数种子 (取启动时间 ())
_启动窗口.获取焦点 ()
.子程序 _按钮石头_被单击
电脑出 = 取随机数 (1, 3)
.如果 (电脑出 = 3)
标签对手.标题 = “石头”
信息框 (“平了!”, 0, )
.否则
.如果 (电脑出 = 1)
标签对手.标题 = “剪刀”
信息框 (“赢了!”, 0, )
自己得分 = 自己得分 + 1
.否则
标签对手.标题 = “布”
信息框 (“输了!”, 0, )
电脑得分 = 电脑得分 + 1
.如果结束
.如果结束
标签分.标题 = “比分 : ” + 到文本 (电脑得分) + “-” + 到文本 (自己得分)
标签自己.标题 = “”
标签对手.标题 = “”
_启动窗口.获取焦点 ()
.子程序 _按钮剪刀_被单击
电脑出 = 取随机数 (1, 3)
标签自己.标题 = “剪刀”
.如果 (电脑出 = 3)
标签对手.标题 = “石头”
信息框 (“输了!”, 0, )
电脑得分 = 电脑得分 + 1
.否则
.如果 (电脑出 = 1)
标签对手.标题 = “剪刀”
信息框 (“平了!”, 0, )
.否则
标签对手.标题 = “布”
信息框 (“赢了!”, 0, )
自己得分 = 自己得分 + 1
.如果结束
.如果结束
标签分.标题 = “比分 : ” + 到文本 (电脑得分) + “-” + 到文本 (自己得分)
标签自己.标谨陪题 = “”
标签对手.标题 = “”
_启动窗口.获取焦点 ()
.子程序 _按钮布_被单击
电脑出 = 取随机数 (1, 3)
标签自己.标题 = “布”
.如果 (电脑出 = 3)
标签对手.标题 = “石头”
信息框 (“赢了!”, 0, )
自己得分 = 自己得分 + 1
.否则
.如果 (电脑出 = 1)
标签桥晌棚对手.标题 = “剪刀”
信息框 (“输了!”, 0, )
电脑得分 = 电脑得分 + 1
.否则
标签对手.标题 = “布”
信息框 (“平了!”, 0, )
.如果结束
.如果结束
标签分.标题 = “比分 : ” + 到文本 (电脑得分) + “-” + 到文本 (自己得分)
标签自己.标题 = “”
标签对手.标题 = “”
_启动窗口.获取焦敏则点 ()
.子程序 __启动窗口_放开某键, 逻辑型
.参数 键代码, 整数型
.参数 功能键状态, 整数型
.判断开始 (键代码 = #Z键)
_按钮石头_被单击 ()
.判断 (键代码 = #X键)
_按钮剪刀_被单击 ()
.判断 (键代码 = #C键)
_按钮布_被单击 ()
.默认
.判断结束
我的楼主可以自己玩一下试试吧
#define N 200
#include <graphics.h>
#include <stdlib.h>
#include <dos.h>
#define LEFT 0x4b00
#define RIGHT 0x4d00
#define DOWN 0x5000
#define UP 0x4800
#define ESC 0x011b
int i,key
int score=0/*得分*/
int gamespeed=50000/*游戏速度自己调整*/
struct Food
{
int x/*食物的横坐标*/
int y/*食物的纵坐标*/
int yes/*判断是否要出现食物的变量*/
}food/*食物的结构体*/
struct Snake
{
int x[N]
int y[N]
int node/*蛇的节数*/
int direction/*蛇移动方向*/
int life/* 蛇的生命,0活着,1死亡*/
}snake
void Init(void)/*图形驱动*/
void Close(void)/*图形结束*/
void DrawK(void)/*开始画面*/
void GameOver(void)/*结束游戏*/
void GamePlay(void)/*玩游戏具体过程*/
void PrScore(void)/*输出成绩*/
/*主函数*/
void main(void)
{
Init()/*图形驱动*/
DrawK()/*开始画面*/
GamePlay()/*玩游戏具体过程*/
Close()/*图形结束*/
}
/*图形驱动*/
void Init(void)
{
int gd=DETECT,gm
initgraph(&gd,&gm,"c:\\tc")
cleardevice()
}
/*开始画面,左上角坐标为(50,40),右下角坐标为(610,460)的围墙*/
void DrawK(void)
{
/*setbkcolor(LIGHTGREEN)*/
setcolor(11)
setlinestyle(SOLID_LINE,0,THICK_WIDTH)/*设置线型*/
for(i=50i<=600i+=10)/*画围墙*/
{
rectangle(i,40,i+10,49)/*上边*/
rectangle(i,451,i+10,460)/*下边*/
}
for(i=40i<=450i+=10)
{
rectangle(50,i,59,i+10)/*左边*/
rectangle(601,i,610,i+10)/*右边*/
}
}
/*玩游戏具体过程*/
void GamePlay(void)
{
randomize()/*随机数发生器*/
food.yes=1/*1表示需要出现新食物,0表示已经存在食耐码物*/
snake.life=0/*活着*/
snake.direction=1/*方向往右*/
snake.x[0]=100snake.y[0]=100/*蛇头*/
snake.x[1]=110snake.y[1]=100
snake.node=2/*节数*/
PrScore()/*输出得分*/
while(1)/*可以重复玩游戏,压ESC键结束*/
{
while(!kbhit())/*在没有按键的情况下,蛇自己移动身体*/
{
if(food.yes==1)/*需要出现新食物*/
{
food.x=rand()%400+60
food.y=rand()%350+60
while(food.x%10!=0)/*食物随机出现后必须让食物能够在整格内,这样才可以让蛇吃到*/
并闭food.x++
while(food.y%10!=0)
food.y++
food.yes=0/*画面上有食物了*/
}
if(food.yes==0)/*画面上有食物了就要显示*/
{
setcolor(GREEN)
昌蔽哪 rectangle(food.x,food.y,food.x+10,food.y-10)
}
for(i=snake.node-1i>0i--)/*蛇的每个环节往前移动,也就是贪吃蛇的关键算法*/
{
snake.x[i]=snake.x[i-1]
snake.y[i]=snake.y[i-1]
}
/*1,2,3,4表示右,左,上,下四个方向,通过这个判断来移动蛇头*/
switch(snake.direction)
{
case 1:snake.x[0]+=10break
case 2: snake.x[0]-=10break
case 3: snake.y[0]-=10break
case 4: snake.y[0]+=10break
}
for(i=3i<snake.nodei++)/*从蛇的第四节开始判断是否撞到自己了,因为蛇头为两节,第三节不可能拐过来*/
{
if(snake.x[i]==snake.x[0]&&snake.y[i]==snake.y[0])
{
GameOver()/*显示失败*/
snake.life=1
break
}
}
if(snake.x[0]<55||snake.x[0]>595||snake.y[0]<55||
snake.y[0]>455)/*蛇是否撞到墙壁*/
{
GameOver()/*本次游戏结束*/
snake.life=1/*蛇死*/
}
if(snake.life==1)/*以上两种判断以后,如果蛇死就跳出内循环,重新开始*/
break
if(snake.x[0]==food.x&&snake.y[0]==food.y)/*吃到食物以后*/
{
setcolor(0)/*把画面上的食物东西去掉*/
rectangle(food.x,food.y,food.x+10,food.y-10)
snake.x[snake.node]=-20snake.y[snake.node]=-20
/*新的一节先放在看不见的位置,下次循环就取前一节的位置*/
snake.node++/*蛇的身体长一节*/
food.yes=1/*画面上需要出现新的食物*/
score+=10
PrScore()/*输出新得分*/
}
setcolor(4)/*画出蛇*/
for(i=0i<snake.nodei++)
rectangle(snake.x[i],snake.y[i],snake.x[i]+10,
snake.y[i]-10)
delay(gamespeed)
setcolor(0)/*用黑色去除蛇的的最后一节*/
rectangle(snake.x[snake.node-1],snake.y[snake.node-1],
snake.x[snake.node-1]+10,snake.y[snake.node-1]-10)
} /*endwhile(!kbhit)*/
if(snake.life==1)/*如果蛇死就跳出循环*/
break
key=bioskey(0)/*接收按键*/
if(key==ESC)/*按ESC键退出*/
break
else
if(key==UP&&snake.direction!=4)
/*判断是否往相反的方向移动*/
snake.direction=3
else
if(key==RIGHT&&snake.direction!=2)
snake.direction=1
else
if(key==LEFT&&snake.direction!=1)
snake.direction=2
else
if(key==DOWN&&snake.direction!=3)
snake.direction=4
}/*endwhile(1)*/
}
/*游戏结束*/
void GameOver(void)
{
cleardevice()
PrScore()
setcolor(RED)
settextstyle(0,0,4)
outtextxy(200,200,"GAME OVER")
getch()
}
/*输出成绩*/
void PrScore(void)
{
char str[10]
setfillstyle(SOLID_FILL,YELLOW)
bar(50,15,220,35)
setcolor(6)
settextstyle(0,0,2)
sprintf(str,"score:%d",score)
outtextxy(55,20,str)
}
/*图形结束*/
void Close(void)
{
getch()
closegraph()
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)