1.看程序运行截图吧!!
由于博主本人较笨,就不动画演示了,如果动画的话可能将是一个漫长的过程!2.游戏题目
随机生成4个不相同的数字从小到大排序,用户开始游戏,如果用户猜对数字和数字对应的位置,界面回馈A,如果数字正确位置不正确,则回馈B。
3.程序思路
1.先随机产生四个不一样的一位数
2.用数组保存这四个数
3.接收用户输入,并且做出判断,分别判断数字是否一样还有判断数字的位置是否一样
4.如果数字一样位置也一样则输出A,否则输出B
5.用户全部猜对打印:恭喜你,猜对了!!
4.代码实现
// 猜数字游戏.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
#include <iostream>
#include"stdlib.h"
#include"time.h"
int main()
{
//保存原来的数字
int originalArray[4] = {};
//保存猜的数字
int guessArray[4] = {};
//记录数字和位置相同的个数
int countA = 0;
//记录数字相同位置不同的数字
int countB = 0;
//放种子-
srand((unsigned int)time(NULL));
for (int i = 0; i < 4;i++) {
bool isExist = false;
int temp = 0;
while (1)
{
//产生一个随机数
temp = rand() % 10;
//判断是否有重复
for (int j = 0; j < i; j++)
{
if (originalArray[j]==temp) {
//说明重复
isExist = true;
break;
}
}
if (isExist==false)
{
break;
}
}
//插入排序
int j = 0;
for (; j < i; j++)
{
//下标为j对应的数字和产生的数字比较
if (temp<originalArray[j])
{
//j后面的内容向后移动
for (int k = i; k >j; k--)
{
originalArray[k] = originalArray[k - 1];
}
break;
}
}
//保存到数组中
originalArray[j] = temp;
}
//输出
/*for (int i = 0; i < 4; i++)
{
printf("%d",originalArray[i]);
}
printf("\n");*/
//开始游戏
while (1)
{
printf("请输入猜测的数字:");
for (int i = 0; i < 4; i++)
{
scanf("%d", &guessArray[i]);
}
//判断用户输入
for (int i = 0; i < 4; i++)
{
for (int j=0;j<4;j++)
{
//判断数字
if (originalArray[i]==guessArray[j])
{
//判断位置
if (i==j)
{
countA++;
}
else
{
countB++;
}
}
}
}
if (countA==4)
{
//说明全对
printf("恭喜你,猜对了!!!");
break;
}
else
{
printf("%dA%dB\n",countA,countB);
countA = 0;
countB = 0;
}
}
//system("pause");
return 0;
}
5.感悟
这个小游戏初次一听确实挺简单的,但是在实现的过程中却遇到了不少问题,比如如何产生随机数,如何使随机数的大小不一样,并且还要在产生随机数的同时给随机数排序,尽管困难重重,时不时还能把自己绕进循环里,但苦中作乐,写完这个小程序还是收获不少。
ps:欢迎关注哟,会经常给你们推送一些有趣的小程序。