大家帮我做下这题吧,画宝石迷阵的,我是菜鸟 要求用户输入宝石(其实就是圆)的行数和列数,在pictureBox里就会画出一个由七种不同颜色随机组成的图,类似下图:这代码怎么写啊?谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 定义一个二维数组,填充随机数,然后for循环遍历,画图 不都告诉你代码了吗,还问什么http://topic.csdn.net/u/20120815/14/0b2c6c1e-232f-484f-9bdd-c8eb3d9f9267.html 给你一个参考吧:http://www.cnblogs.com/effun/archive/2010/09/01/blockgame.html其实这里比较难的是随机色的生成,绝对不是简单的用Random可以实现的。玩过宝石迷阵的都知道,不同的模式下,新生成的宝石有一定的原则。比如在经典模式下,玩着玩着就会有一个浑厚的声音告诉你,NO MORE MOVES!于是Game Over。但在其它模式下,Game Over是由其它因素(比如时间或步骤)确定的,也就是说,绝对不会出现没有可移动的宝石的情况。而且,我甚至觉得,连道具宝石生成的概率都是可控的,比如在闪电模式中,你会发现爆炸和闪电宝石出现的频率会比其它模式多点,而在金矿模式下,道具出现的频率会越来越小。所以说,单纯的Random是肯定不行的,最极端的情况是根本一步都没法动,应该有更好的算法。 Color[] colors = new Color[] { Color.Red, Color.Orange, Color.Yellow, Color.Green, Color.Cyan, Color.Blue, Color.Pink }; private void pictureBox1_Paint(object sender, PaintEventArgs e) { DrawCircle(e.Graphics, 5, 5); } private void DrawCircle(Graphics g, int row, int col) { Random random = new Random(); int r = 10; for (int i = 0; i < row; i++) { for (int j = 0; j < col; j++) { Rectangle rect = new Rectangle(j * r * 2, i * r * 2, 2 * r, 2 * r); g.FillEllipse(new SolidBrush(colors[random.Next(7)]), rect); } } }挺好的 楼主怎么了? 裸尽所有分数求答案:关于dotnet程序交互问题!!!! c#开发BHO的问题 关于文件摘要。。欢迎大神们进来讨论 请教一下串口收到的数据的分析验证问题。。。 如果Button被Disable了,如何显示Tooltip C# 操作access数据库 ~!~~~~~~~~~请教:定时任务和重复任务如何设计执行时间?===看看我的思路================= 请问能否在TFS中定制编码风格并强制执行? 如何判断一个对象是否已经创建? C# combox控件一个问题 用C#写的一个最简单最简单的代理服务器,求指教 UDP 通信, 线程接受 遇到问题啦
http://topic.csdn.net/u/20120815/14/0b2c6c1e-232f-484f-9bdd-c8eb3d9f9267.html
http://www.cnblogs.com/effun/archive/2010/09/01/blockgame.html其实这里比较难的是随机色的生成,绝对不是简单的用Random可以实现的。玩过宝石迷阵的都知道,不同的模式下,新生成的宝石有一定的原则。比如在经典模式下,玩着玩着就会有一个浑厚的声音告诉你,NO MORE MOVES!于是Game Over。但在其它模式下,Game Over是由其它因素(比如时间或步骤)确定的,也就是说,绝对不会出现没有可移动的宝石的情况。而且,我甚至觉得,连道具宝石生成的概率都是可控的,比如在闪电模式中,你会发现爆炸和闪电宝石出现的频率会比其它模式多点,而在金矿模式下,道具出现的频率会越来越小。所以说,单纯的Random是肯定不行的,最极端的情况是根本一步都没法动,应该有更好的算法。
private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
DrawCircle(e.Graphics, 5, 5);
}
private void DrawCircle(Graphics g, int row, int col)
{
Random random = new Random();
int r = 10;
for (int i = 0; i < row; i++)
{
for (int j = 0; j < col; j++)
{
Rectangle rect = new Rectangle(j * r * 2, i * r * 2, 2 * r, 2 * r);
g.FillEllipse(new SolidBrush(colors[random.Next(7)]), rect);
}
}
}
挺好的 楼主怎么了?