猫史档案馆


【LW说】第一期:用做一个看心术游戏

用户:Lonely_wandererLonely_wanderer查看:30 回复:7 评论:30 创建时间:2020-02-28T11:53:27


大家好!刚进来,先上一段今天的代码……

先说一下规则:规则:心里像一个十位的整数a,然后把a的十位加上a的个位得到s,再用a-s得的x记住相对应的符号,按下回车看看电脑输出的是不是你心里的x!

#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;
int main () {
	srand((int)time(NULL));
	char x = rand()%13+35; 
	char shuiji;
	for (int i=0 ; i<=99 ; i++){
		if (i%9 == 0){
			if (i<10){
				cout << " ";
			}
			cout << i << x;
		}else {
			shuiji = rand()%13+34;
		    if (i<10){
		    	cout << " ";
			}
			cout << i << shuiji;
		}
		if ((i+1)%5 == 0 && i>0){
			cout << endl;
		}else{
			cout << " ";
		}
	}
	cout << "规则:心里像一个十位的整数a,然后把a的十位加上a的个位得到s,再用a-s得的x记住相对应的符号" ; 
	getchar();
	cout << "你心里所想的是不是:" << x << endl;
	return 0;
}

好了,今天要做的列表是随机的,让人会觉得比较神奇一点

其实,并不是看心术,而是一种简单算法而已

首先,先调用C++的头文件:

#include <iostream>
#include <ctime>
#include <cstdlib>

第一个是基本的输出输入流……第二个就是把时间转换会字符串的头文件,简单点来说,就是设置随机数每次是不同的

第三个是调用产生随机数的头文件

然后,就写个主函数的框架——这里就不写自定义函数了

using namespace std;
int main (){

return 0;
}

先调用srand函数,也就是随机数发生器的初始化函数

然后把ASCLL33~47范围的随机一个数赋值给x(哈哈,没想到吧,x其实是内定的)

emotion_雷电猴_疑问

然后在声明一个随机的字符串,是用来输出字符表的

srand((int)time(NULL));
char x = rand()%13+35; 
char shuiji;

因为我们是0~99的字符表的,所以就写一个0到99的循环代码

for (int i-0 ; i<=99 ; i++){

}

emotion_编程猫_嗨起来

大揭秘啦,其实这个x就是0~99中能被9整除的数字!

所以在循环中判断,如果i能整除9的话,这个地方就是x!

否者的话就是随机的乱七八糟的字符(这个不用管)

if (i%9==0){

}else{

}

然后为了是格式更完美,因为0~9都是1个数字,所以最好加一个空格,否者显得很乱

emotion_编程猫_冷漠

if (i<10){
  //这里面就是小于10的,就需要多输出一个空格
  cout << " " ;
}
cout << i << x;
//这里的i就是输出序号,x就不说了

我们再来写万一i还不是x时的代码:

我们需要在否则框里写

shuiji = rand()%13+34;
if (i<10){
   cout << " ";
}
cout << i << shuiji;

把33~47的值复制给随机的字符,这里也是判断是是否是0~9的(其实这里和上面的一样,可以直接写一个自定义函数,我会在品论区发)

emotion_星能猫_爱你

在循环的最后还需要换行,每5个一行(其他的也行,看个人)

就要再写一个换行的代码:

if ((i+1)%5 == 0 && i>0){
    cout << endl;
}else{
    cout << " ";
}

问题来了,为什么要写(i+1)呢?因为是有第0项的,所以加一个1,其他的自然往后排啦!

可是如果这样的话那0不就换行了吗?

就要在加一个且了直接排除0换行的可能,否者就接着输出空格

emotion_雷电猴_捂嘴笑

最后,在循环外写一下规则。

还需要一个回车来输出x,

getchar();

这一行代码就是等待直到按下回车……

最后,在输出那个x啦!

cout << "你心里所想的x是不是:" << x << endl;

好啦,终于说完了……

第一次发帖,希望多点赞,(发帖不易啊)

加油!

本期LX说就结束啦

 

 


回复

上一页1 页 / 共 1下一页
Lonely_wandererLonely_wanderer

这个是自定义函数的代码:

#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;
void panduan (int i){
	if (i<10){
		cout << " ";
	}
}
int main () {
	srand((int)time(NULL));
	char x = rand()%13+35; 
	char shuiji;
	for (int i=0 ; i<=99 ; i++){
		if (i%9 == 0){
			panduan (i);
			cout << i << x;
		}else {
			shuiji = rand()%13+34;
		    panduan (i);
			cout << i << shuiji;
		}
		if ((i+1)%5 == 0 && i>0){
			cout << endl;
		}else{
			cout << " ";
		}
	}
	cout << "规则:心里像一个十位的整数a,然后把a的十位加上a的个位得到s,再用a-s得的x记住相对应的符号" ; 
	getchar();
	cout << "你心里所想的是不是:" << x << endl;
	return 0;
}

点赞1


评论


Lonely_wandererLonely_wanderer

怎么评论区空空如也……

点赞0


评论


一个特别菜的萌新一个特别菜的萌新

eemotion_编程猫_搓头

点赞0


评论


MineWorldMineWorld

来蹭个浏览量emotion_雷电猴_围观

点赞0


评论


爵士OIer爵士OIer

我明白了,就是随机生成一堆符号,然后有一个对应的数,让你算出来x然后去匹配,最后看一下是不是。

点赞1


评论


YKS夜晚的星空YKS夜晚的星空

emotion_编程猫_加油

点赞0


评论


爵士OIer爵士OIer

e.你不知道模拟?

点赞0


评论