目的
用所学内容完成两个游戏的编写
1.“杀人”游戏
输入总共参与人数,围成一个圈,给每个人一个编号,再输入一个死亡数字,然后开始报数,报到死亡数字的人被杀掉,下一个人接着从1开始继续报数。要求:输出最后存活的人的编号
技术
for while循环
具体实现
1.输入总共参与人数,
并输入死亡编号
int temp;
int killnumber;
printf("请输入参与人数:");
scanf("%d", &temp);
printf("请输入死亡号码:");
scanf("%d", &killnumber);
2.对每个人编号,并杀掉报数为死亡编号的人,算出最后活下来的人
先给people这个数组里的每个人编号
int people[1000] = {};
for (int i = 0; i < temp; i++)
{
people[i] = i + 1;
}
游戏开始
先用一个while循环,因为杀人游戏一直在进行,直到只剩一个人才结束
每个人开始报数 报到死亡编号的人,给它赋值为0,然后报数继续。
用if语句,使满足值不等于0的人才能参与报数。
每杀掉一个人,
a.将报数j归0,这样下一个人报数才能从1开始
b.使num加一,当num = 参与人数 - 1时,循环结束(游戏结束)
循环每进行一次 使m加1,当m = 参与人数时, 将m 归零,这样才能实现参与游戏的人围成了一个圈
具体代码如下:
int temp = 0;
int num = 0;
int j = 0;
int m = 0;
while (num < temp - 1)
{
if (people[m] != 0)
{
j++;
}
if (j == killnumber)
{
people[m] = 0;
j = 0;
num++;
}
m++;
if (m == temp)
{
m = 0;
}
}
3.输出最后活下来的人的编号(值不为0的数)
这里要用一个for循环,因为我们需要找出是哪一个数的值不为0
for (int i = 0; i < temp; i++)
{
if (people[i] != 0)
{
printf("剩下的数字为:%d\n",people[i]);
}
}
将以上代码连贯,及为这一个游戏的全部代码,我们也可以看一下运行结果
08021.png2.猜数字游戏
系统随机产生4个不同的随机数,使4个随机数按从小到大的顺序排列
用户输入4个猜测的数字 如果数字正确且位置正确A+1 如果数字正确但位置不正确B+1
首先生成4个随机数
导入stdlib.h和time.h头文件
生成四个不相等的随机数的使4个数字按从小到大的顺序排列
这里要用到rand 和srand函数
rand ()函数:产生随机数的一个随机函数
但是如果直接用rand 产生的4个随机数会全部相同,所以这个时候我们需要用srand函数
srand()函数:使随机数发生器初始化
srand((unsigned int)time(NULL));
srand((unsigned int)time(NULL));
int a[4] = {};
int i = 0;
for (int i = 0; i < 4;i++)
{
int temp = rand() % 10;
bool wether = false;
for (int j = 0; j < i; j++)
{
if (temp == a[j])
{
wether = true;
break;
}
}
if (wether == false)
{
a[i] = temp;
}
else
{
i--;
}
for (int j = i; j >= 0; j--)
{
if (a[j] < a[j - 1])
{
int num = a[j - 1];
a[j - 1] = a[j];
a[j] = num;
}
}
}
开始猜数字
将用户输入的数字存到一个数组里面,然后再判断用户的猜测
当4个数字都猜正确时,跳出循环
while (1)
{
int x = 0;
int y = 0;
printf("请输入四个数字:");
int b[4] = {};
for (int i = 0; i < 4; i++)
{
int n;
scanf("%d", &n);
b[i] = n;
}
//判断用户的输入
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 4; j++)
{
if (a[i] == b[j] && i == j)
{
x++;
}
else if (a[i] == b[j] &&i != j)
{
y++;
}
}
}
printf("A%d B%d\n", x, y);
if (x == 4)
{
printf("恭喜!");
break;
}
}
以上为这个游戏的代码
简单运行一下如下:
心得体会
作为很久没有接触C语言的人,一开始编这两个游戏,有一点懵,心里有想法,然后做的时候怎么也运行不出来,然后不断的修改,就会发现在思考的时候很多地方没有考虑周到,但是在不断地调试修改的过程中,也学习到了很多。编写一个程序一定要边写边运行,这样哪里不足就可以及时发现并修改,不然最后运行,整个程序充满了bug,修改起来会非常的麻烦。
网友评论