我用C语言模拟那个猜数字的游戏,现在已经实现了的。代码如下的:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void main()
{
int i,j,m=0,n=0;
int a1,a2,a3,a4,b1,b2,b3,b4;
srand(time(NULL));
do
{
j=rand()/10;
a1=j%10;
a2=j/10%10;
a3=j/100%10;
a4=j/1000;
}while((a1==a2)||(a1==a3)||(a1==a4)||(a2==a3)||(a2==a4)||(a3==a4)||(j<1000));
//printf("%d/n",j);
printf("输入一个4位数:/n");
do
{
scanf("%d",&i);
b1=i%10;
b2=i/10%10;
b3=i/100%10;
b4=i/1000;
if(a1==b1) n++;
if(a2==b2) n++;
if(a3==b3) n++;
if(a4==b4) n++;
if(a1==b2||a1==b3||a1==b4) m++;
if(a2==b1||a2==b3||a2==b4) m++;
if(a3==b1||a3==b2||a3==b4) m++;
if(a4==b1||a4==b2||a4==b3) m++;
printf("有%d个数是数值和位置均正确,有%d个数是只是数值正确位置不对。/n",n,m);
m=0;
n=0;
}while((a1!=b1)||(a2!=b2)||(a3!=b3)||(a4!=b4));
printf("恭喜你猜对了!!!");
scanf("%d",&i);
}
#include<stdlib.h>
#include<time.h>
void main()
{
int i,j,m=0,n=0;
int a1,a2,a3,a4,b1,b2,b3,b4;
srand(time(NULL));
do
{
j=rand()/10;
a1=j%10;
a2=j/10%10;
a3=j/100%10;
a4=j/1000;
}while((a1==a2)||(a1==a3)||(a1==a4)||(a2==a3)||(a2==a4)||(a3==a4)||(j<1000));
//printf("%d/n",j);
printf("输入一个4位数:/n");
do
{
scanf("%d",&i);
b1=i%10;
b2=i/10%10;
b3=i/100%10;
b4=i/1000;
if(a1==b1) n++;
if(a2==b2) n++;
if(a3==b3) n++;
if(a4==b4) n++;
if(a1==b2||a1==b3||a1==b4) m++;
if(a2==b1||a2==b3||a2==b4) m++;
if(a3==b1||a3==b2||a3==b4) m++;
if(a4==b1||a4==b2||a4==b3) m++;
printf("有%d个数是数值和位置均正确,有%d个数是只是数值正确位置不对。/n",n,m);
m=0;
n=0;
}while((a1!=b1)||(a2!=b2)||(a3!=b3)||(a4!=b4));
printf("恭喜你猜对了!!!");
scanf("%d",&i);
}
现在我想将它窗体化,用C#来改,修改的代码是这样的:
这是窗体:
这是代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace 猜数字游戏
{
{
public partial class Form1 : Form
{
public int m = 0, n = 0;
public int a1, a2, a3, a4, b1, b2, b3, b4;
public Form1()
{
InitializeComponent();
}
{
public int m = 0, n = 0;
public int a1, a2, a3, a4, b1, b2, b3, b4;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
if (a1 == b1) n++;
if (a2 == b2) n++;
if (a3 == b3) n++;
if (a4 == b4) n++;
if (a1 == b2 || a1 == b3 || a1 == b4) m++;
if (a2 == b1 || a2 == b3 || a2 == b4) m++;
if (a3 == b1 || a3 == b2 || a3 == b4) m++;
if (a4 == b1 || a4 == b2 || a4 == b3) m++;
label1.Text = Convert.ToString(m);
label3.Text = Convert.ToString(n);
}
{
if (a1 == b1) n++;
if (a2 == b2) n++;
if (a3 == b3) n++;
if (a4 == b4) n++;
if (a1 == b2 || a1 == b3 || a1 == b4) m++;
if (a2 == b1 || a2 == b3 || a2 == b4) m++;
if (a3 == b1 || a3 == b2 || a3 == b4) m++;
if (a4 == b1 || a4 == b2 || a4 == b3) m++;
label1.Text = Convert.ToString(m);
label3.Text = Convert.ToString(n);
}
private void Form1_Load(object sender, EventArgs e)
{
int j;
Random ran = new Random();
int start = 1000;
int end = 9999;
j = ran.Next(start,end);
b1 = j % 10;
b2 = j / 10 % 10;
b3 = j / 100 % 10;
b4 = j / 1000;
a1 = Convert.ToInt32(textBox1.Text);
a2 = Convert.ToInt32(textBox2.Text);
a3 = Convert.ToInt32(textBox3.Text);
a4 = Convert.ToInt32(textBox4.Text);
}
{
int j;
Random ran = new Random();
int start = 1000;
int end = 9999;
j = ran.Next(start,end);
b1 = j % 10;
b2 = j / 10 % 10;
b3 = j / 100 % 10;
b4 = j / 1000;
a1 = Convert.ToInt32(textBox1.Text);
a2 = Convert.ToInt32(textBox2.Text);
a3 = Convert.ToInt32(textBox3.Text);
a4 = Convert.ToInt32(textBox4.Text);
}
}
}
编译的时候没有问题的,可是咦运行就出现错误了的:
}
编译的时候没有问题的,可是咦运行就出现错误了的:
调试时出现了这个界面的:
为什么会出现这个情况呢?要怎么改呀?
各位老师,高手,帮帮忙啦···