Head?Left:Right /测试

Rule

  • 游戏内有两个初始为 \(1\) 的值 \(l,r\) 和一个无穷序列
  • 玩家每次可以选择将这个数乘到任意一个数上,并将另一个数乘以当前数
  • 因为 long long int 会溢出,因此你的目标为将两个数都乘到 \(0\)
  • 使用左右方向键操作
#include<bits/stdc++.h>
namespace rander{
	std::vector<long long> list;
	int it,ssize;
	int reset(int size){if(size<=0)return -1;int seed=std::rand();std::mt19937 Rand(seed);ssize=size;it=0;list.clear();for(int i=1;i<=size;++i){list.push_back(Rand());}return seed;}
	int reset(){struct _timeb T;_ftime(&T);srand(T.millitm);return rander::reset(1000);}
	std::vector<long long> randlist(int size){int seed=ssize;reset(size);std::vector<long long> ret=list;reset(seed);return ret;}
	int randabs(){if(ssize<=0)reset();int ret=list[it];it++;if(it>=ssize)reset(ssize);return abs(ret);}
	int rand(){if(ssize<=0)reset();int ret=list[it];it++;if(it>=ssize)reset(ssize);return ret;}
	int rand(int mod){int ret=rander::rand()%mod;return ret;}
	long long randabs(int mod){long long ret=abs(rander::rand());if(mod)ret%=mod;return ret;}
	long long rand(int l,int r){if(l<0)return rander::rand(0,r);long ret=rander::randabs(r-l+1)+l;return ret;}
	template<typename _T>_T from(std::vector<_T>p){long long ret=rander::randabs(p.size());return p[ret];}
	template<typename _T>void randsort(std::vector<_T>&p){for(int i=1;i<=p.size();++i){int x=rander::rand(0,p.size()-1),y=rander::rand(0,p.size()-1);std::swap(p[x],p[y]);}}
	template<typename _T>void randsort(_T &p,int from,int to){for(int i=1;i<=to-from+1;++i){int x=rander::rand(from,to),y=rander::rand(from,to);std::swap(p[x],p[y]);}}
};
#if CLOCKS_PER_SEC==1000
#define put "cls"
#include<windows.h>
#include<conio.h>
#else
#define put "clear"
#endif
using namespace std;
long long headl=0,headr=0;
vector<int>v;
void fix(){
	while(v.size()!=10){
		v.push_back(rand()%100+1);
	}
}
void start(int seed){
	srand(seed);
	headl=headr=1;
	v.clear();
	fix();
}
void print(){
	system(put);
	cout<<"[Head?Left:Right]"<<'\n';
	cout<<"Made by HaneDaniko"<<'\n'<<'\n';
	cout<<v[0]<<" << ";
	for(int i=1;i<=v.size()-1;++i) cout<<v[i]<<" ";
	cout<<'\n'<<'\n';
	cout<<"Lhead: "<<headl<<'\n';
	cout<<"Rhead: "<<headr<<'\n'<<'\n';
}
int main(){
	int seeds;
	while(1){
		cout<<"Input Seed: ";
		cin>>seeds;
		start(seeds);
		print();
		bool lose1=false,lose2=false;int sco=0;
		if(CLOCKS_PER_SEC==1000){
			while(1){
				if(lose1 and lose2) break;
				while(kbhit()){
					int ch=getch();
					if(ch==75){
						headl*=v[0];
						headr*=headl;
						if(headl==0){
							lose1=true;
						}
						if(headr==0){
							lose2=true;
						}
						v.erase(v.begin());
						fix();
						print();
					}
					else if(ch==77){
						headr*=v[0];
						headl*=headr;
						if(headl==0){
							lose1=true;
						}
						if(headr==0){
							lose2=true;
						}
						v.erase(v.begin());
						fix();
						print();
					}
					sco++;
				}
			}
			print();
			cout<<"Finished"<<'\n';
			cout<<"score: "<<300-sco<<'\n'<<'\n';
			Sleep(1000);
			system("pause");
		}
		else{
			cout<<"There's no version for Linux yet"<<endl;
		}
	}
}
posted @   HaneDaniko  阅读(2)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· Windows编程----内核对象竟然如此简单?
点击右上角即可分享
微信分享提示