范文无忧网范文学习范文大全

MATLAB编的五子棋游戏!

06月12日 编辑 fanwen51.com

[用地产名词编的相声《相亲》]a:(愁眉苦脸,哎声叹气) b:怎么了啊,小张? a:郁闷啊!不是马上要过年了嘛! b:过年好啊!要和家人团聚了啊,多好啊! a:好什么好?年年岁岁花相似,岁岁年年人不同! b:什么事啊?还人不同。 b:到底什么事...+阅读

MATLAB编的五子棋游戏!

直接上程序吧: //wuziqi.java import java.applet.Applet; import java.awt.Button; import java.awt.Checkbox; import java.awt.CheckboxGroup; import java.awt.Color; import java.awt.Graphics; import java.awt.Label; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.awt.event.MouseMotionListener; SuppressWarnings("serial") public class wuziqi extends Applet implements ActionListener,MouseListener,MouseMotionListener,ItemListener { int color_Qizi=0;//旗子的颜色标识 0:白子 1:黑子 int intGame_Start=0;//游戏开始标志 0未开始 1游戏中 int intGame_Body[][]=new int[16][16]; //设置棋盘棋子状态 0 无子 1 白子 2 黑子 Button b1=new Button("游戏开始"); Button b2=new Button("重置游戏"); Label lblWin=new Label(" "); Checkbox ckbHB[]=new Checkbox[2]; CheckboxGroup ckgHB=new CheckboxGroup(); public void init() { setLayout(null); addMouseListener(this); add(b1); b1.setBounds(330,50,80,30); b1.addActionListener(this); add(b2); b2.setBounds(330,90,80,30); b2.addActionListener(this); ckbHB[0]=new Checkbox("白子先",ckgHB,false); ckbHB[0].setBounds(320,20,60,30); ckbHB[1]=new Checkbox("黑子先",ckgHB,false); ckbHB[1].setBounds(380,20,60,30); add(ckbHB[0]); add(ckbHB[1]); ckbHB[0].addItemListener(this); ckbHB[1].addItemListener(this); add(lblWin); lblWin.setBounds(330,130,80,30); Game_start_csh(); } public void itemStateChanged(ItemEvent e) { if (ckbHB[0].getState()) //选择黑子先还是白子先 { color_Qizi=0; } else { color_Qizi=1; } } public void actionPerformed(ActionEvent e) { SuppressWarnings("unused") Graphics g=getGraphics(); if (e.getSource()==b1) { Game_start(); } else { Game_re(); } } public void mousePressed(MouseEvent e){} SuppressWarnings("unused") public void mouseClicked(MouseEvent e) { Graphics g=getGraphics(); int x1,y1; x1=e.getX(); y1=e.getY(); if (e.getX()300 || e.getY()300) { return; } if (x1%20>10) { x1+=20; } if(y1%20>10) { y1+=20; } x1=x1/20*20; y1=y1/20*20; set_Qizi(x1,y1); } public void mouseEntered(MouseEvent e){} public void mouseExited(MouseEvent e){} public void mouseReleased(MouseEvent e){} public void mouseDragged(MouseEvent e){} public void mouseMoved(MouseEvent e){} public void paint(Graphics g) { draw_qipan(g); } public void set_Qizi(int x,int y) //落子 { if (intGame_Start==0) //判断游戏未开始 { return; } if (intGame_Body[x/20][y/20]!=0) { return; } Graphics g=getGraphics(); if (color_Qizi==1)//判断黑子还是白子 { g.setColor(Color.black); color_Qizi=0; } else { g.setColor(Color.white); color_Qizi=1; } g.fillOval(x-10,y-10,20,20); intGame_Body[x/20][y/20]=color_Qizi+1; if (Game_win_1(x/20,y/20)) //判断输赢 { lblWin.setText(Get_qizi_color(color_Qizi)+"赢了!"); intGame_Start=0; } if (Game_win_2(x/20,y/20)) //判断输赢 { lblWin.setText(Get_qizi_color(color_Qizi)+"赢了!"); intGame_Start=0; } if (Game_win_3(x/20,y/20)) //判断输赢 { lblWin.setText(Get_qizi_color(color_Qizi)+"赢了!"); intGame_Start=0; } if (Game_win_4(x/20,y/20)) //判断输赢 { lblWin.setText(Get_qizi_color(color_Qizi)+"赢了!"); intGame_Start=0; } } public String Get_qizi_color(int x) { if (x==0) { return "黑子"; } else { return "白子"; } } public void draw_qipan(Graphics G) //画棋盘 15*15 { G.setColor(Color.lightGray); G.fill3DRect(10,10,300,300,true); G.setColor(Color.black); for(int i=1;i

用MATLAB模拟双骰子游戏

MATLAB 程序如下,最终收敛到0.508左右

NumIterations = 10000; %实验次数

NumWins = 0; %已经赢了的次数

NumWinsVec = zeros(1, NumIterations);

for ii = 1:NumIterations

points = sum(randi(6, 1, 2)); %掷2颗骰子,算总数

switch points

case {3, 11} %如果是3, 11点

NumWins = NumWins + 1; %赢的次数加1

case {4, 5, 6, 8, 9, 10} %如果是4,5,6,8,9,10点

flag = false; %初始化flag,flag==true时本轮结束

while ~flag

newPoints = sum(randi(6, 1, 2)); %掷2颗骰子,算总数

switch newPoints

case 7 %如果新的点数是7

NumWins = NumWins + 1; %赢的次数加1

flag = true; %本轮结束

case points %如果新的点数等于本轮第一次的点数

flag = true; %本轮结束(赢的次数不变)

end

end

end

NumWinsVec(ii) = NumWins; %记下本轮结束后总共赢的次数

end

WinPrecentage = NumWinsVec ./ (1:NumIterations); %全部结束后算概率

figure; plot(1:NumIterations, WinPrecentage); %画图

Matlab编写程序实现一个随机运动的小球

clc,clear;

%一个三维随机运动的小球

r=0.5;%球的半径

%运动的范围

x1=0;x2=30;

y1=0;y2=30;

z1=0;z2=30;

%初始位置 随机生成

x0=rand(1)*(x2-x1-2*r)+x1;

y0=rand(1)*(y2-y1-2*r)+y1;

z0=rand(1)*(z2-z1-2*r)+z1;

pos=[x0;y0;z0];

figure(1)

[x,y,z] = ellipsoid(pos(1),pos(2),pos(3),r,r,r);

surf(x,y,z,ones(size(x))) %画出来球

n=200;%随机运动的次数

p=1; %p可以用来控制每次运动距离的大小

for i=1:n

%产生运动的方向与运动距离,用一个随机向量表示

s=0;

while(s==0)

direct=rand(3,1)-0.5;

dd=direct/norm(direct,2);

dd=dd*p;

post=pos+dd;

if (post(1)>=x1+r&post(1)<=x2-r)&(post(2)>=y1+r&post(2)<=y2-r)&(post(3)>=z1+r&post(3)<=z2-r)

s=1;

end

end

pos=pos+dd;

[x,y,z] = ellipsoid(pos(1),pos(2),pos(3),r,r,r);

surf(x,y,z,ones(size(x))) %画出来球

axis([x1 x2 y1 y2 z1 z2])

pause(0.1); %设置暂停时间

end因为是随机运动 如果每次运动的距离设置的不大,小球基本上是在初始位置的范围内运动

延伸阅读:

中国结怎么编的编 初学者应先准备两条练习线,4号白色、粉红色斜纹线各120厘米,线头合并、打结,连接成甲、乙两端不同颜色;按图解将基本结练熟,记住易错的地方,再开始用新线做正式结体,可保持作品...

公务员与事业编的区别1、参加公务员考试,被录取的都是公务员。 公务员有两种,一种是行政单位的执行行政编制的公务员,另一种是参照公务员法的执行事业编制的公务员。两种的区别仅仅是编制性质不同,其...

公务员和事业编的区别1.公务员是行政编制,财政全额拨款。 事业编制分三种,财政全额拨款,差额拨款,自收自支。 经费来源不同。 2.升迁不同。公务员除了熬年头,即工龄长薪级工资涨,就只能升职才能涨薪水...

五子棋的游戏规则是什么五子棋对局,执行黑方指定开局、三手可交换、五手两打的规定。整个对局过程中黑方有禁手,白方无禁手。黑方禁手有三三禁手、四四禁手和长连禁手三种,下子规则如下: 1、对局双方各...

QQ五子棋游戏规则二.简明职业连珠五子棋比赛规则的解释 1 、五子棋是两个人之间进行的竞技活动,由于对黑方白方规则不同,黑棋必须先行。 2 、五子棋专用盘为 15*15 ,五连子的方向为横、竖、斜。...

matlab怎么实现数据采集和存储用matlab实现数据采集的方法 我们在这里介绍两种共同学习参考。 ① 直接利用MATLAB数据采集箱中提供的的函数命令进行采集,即wavrecord 。wavrecord是利用Windows 音频输入设...

matlab程序运行保存你首先看一下是不是每行语句都用“;”来结束了。 例如:A=imread('temp.jpg')这句话,如果结束时没有加分号,系统就会把结果显示在命令窗口中,那是很耗时间的。如果所有的语句都没...

如何在matlab中建立向量和矩阵如何在matlab中建立向量和矩阵:1、向量的创建 1)直接输入: 行向量:a=[1,2,3,4,5] 列向量:a=[1;2;3;4;5] 2)用“:”生成向量 a=J:K 生成的行向量是a=[J,J+1,…,K] a=J:D:K 生成行向量a...

五子棋的必胜开局都有哪些五子棋的必胜开局都有哪些,走五子棋的窍门怎样才能赢:如果是标准的rif26种开局的话,在5手2打的前提下,黑必胜的有花月、浦月、云月、雨月、溪月、峡月、水月、岚月、金星、恒星...

推荐阅读
图文推荐
栏目列表