根据我的复制+测试,发现 转杯子猜的球位置 2 有点大问题!我觉得非常的奇怪:“????怎么回事啊 ????”
但是这就是事实(可恶),问题:它连转都不转,,非常的离谱,我看到那 700 多的阅读,感到十分怀疑:“这些人到底有没有运行过程序啊?为什么没有一个人跟我反馈呢?太离谱了!”
于是,我觉得出一篇文章来解决这个问题,在此之前,我决定把 转杯子猜的球位置 2 的网址发一下:
极其离谱,那么,程序十分简单:
某不知名人士:(终于来了,你写那么多没用的干嘛!)
#include <bits/stdc++.h>
#include <windows.h>
using namespace std;
char a[50][50]={"------",
"| |",
"| |",
"| |",
"------"};
int c,n=10,kl,sudu;
bool k[200]={0,1,0,0};
using namespace std;
void color(int x)
{
switch(x)
{
case 1:SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |FOREGROUND_RED );break;
case 2:SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |FOREGROUND_BLUE );break;
case 3:SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |FOREGROUND_GREEN);break;
case 4:SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |FOREGROUND_RED |FOREGROUND_BLUE );break;
case 5:SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |FOREGROUND_RED |FOREGROUND_GREEN);break;
case 6:SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |FOREGROUND_BLUE |FOREGROUND_GREEN);break;
case 7:SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |FOREGROUND_GREEN|FOREGROUND_BLUE |FOREGROUND_RED);break;
default:SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |FOREGROUND_GREEN|FOREGROUND_BLUE |FOREGROUND_RED);break;
}
}
void cls()
{
system ("cls");
}
void xy(int y,int x)
{
COORD coord;
coord.X=x;
coord.Y=y;
HANDLE a=GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleCursorPosition(a,coord);
}
void out(int x,int y,bool t)
{
if (kl)
color(rand()%7+1);
if (t)
for (int i=0;i<5;i++,x++)
{
xy(x,y);
for (int j=0;j<6;j++)
cout <<a[i][j];
}
else
for (int i=0;i<5;i++,x++)
{
xy(x,y);
for (int j=0;j<6;j++)
cout <<" ";
}
}
void yuan()
{
for (int i=1;i<=n;i++)
out (8,12*i-3,1);
}
void dong()
{
int a,b,i,t;
a=rand()%n+1;
do
b=rand()%n+1;
while (b==a);
t=abs(12*a-12*b);
swap (k[a],k[b]);
out (8,12*a-3,0);
out (8,12*b-3,0);
for (i=7;i>=1;i--)
{
out (i,12*a-3,1);
out (16-i,12*b-3,1);
Sleep (sudu);
out (i,12*a-3,0);
out (16-i,12*b-3,0);
}
if (a>b)
for (i=1;i<=t;i++)
{
out (1,a*12-3-i,1);
out (15,b*12-3+i,1);
Sleep (sudu);
out (1,a*12-3-i,0);
out (15,b*12-3+i,0);
}
else
for (i=1;i<=t;i++)
{
out (15,b*12-3-i,1);
out (1,a*12-3+i,1);
Sleep (sudu);
out (15,b*12-3-i,0);
out (1,a*12-3+i,0);
}
for (i=1;i<=7;i++)
{
out (16-i,12*a-3,1);
out (i,12*b-3,1);
Sleep (sudu);
out (16-i,12*a-3,0);
out (i,12*b-3,0);
}
yuan();
}
int main()
{
system("mode con cols=130 lines=28");
srand(int (0));
int in,d;
xy(0,5); cout <<"转杯子猜球:请选择难度星级:1 ~ 20 ( 1 最简单 ,20 最难,难度超过20会有惊喜呦,嘿嘿嘿)";
xy(1,5); cin >>in;
if (in<1) in=1;
if (in>20) in=30,kl=1;
Sleep (500);
cls();
xy(0,5); cout <<"转杯子猜球:请选择杯子个数:3 ~ 10";
xy(1,5);
c=(in+5)*3;
cin >>n;
if (n<3) n=3;
if (n>10) n=10;
sudu=round(30/n)-round(in/n);
cls();
yuan();
for (int i=1;i<=7;i++)
{
xy(i,11); cout <<"○";
Sleep (100);
xy(i,11); cout <<" ";
}
for (int i=1;i<=c;i++)
dong();
xy(20,20);
cout <<"转完了,请问球在哪个杯子里呢?";
xy(22,20);
cin >>in;
for (int i=1;i<=n;i++)
if (k[i])
{
d=i;
break;
}
xy(24,20);
if (in==d)
cout <<"恭喜你猜对了!!";
else
cout <<"很遗憾,正确答案是" <<d;
Sleep(1000);
xy(30,100);
return 0;
}