-
个人简介
小游戏
#include <bits/stdc++.h> #include <sys/types.h> #include <sys/stat.h> using namespace std; int qian,a[11],b[11],c,d,e,f,l,i_; string filename = "c++彩票模拟器的钱.txt",s = ""; bool l1,l2,l3,l4,l5,l6,l7; int main(){ srand(time(NULL)); if(!access(filename.c_str(), F_OK) == 0){ qian = 100; ofstream file("c++彩票模拟器的钱.txt"); file << qian; file.close(); } ifstream inputFile("c++彩票模拟器的钱.txt"); getline(inputFile,s); qian = atoi(s.c_str()); inputFile.close(); cout << "欢迎来到彩票模拟器,你要玩还是不玩。(你初始有100彩元,每张彩票2元)(玩就输入1,不玩输就入0)\n"; cin >> l; if(l >= 1){ while(1){ cout << "你想买多少张彩票。\n"; cin >> f; if(f > 1){ while(qian < 2 * f){ cout << "你买不起" << f << "张彩票,请重新输入\n"; cin >> f; } qian -= 2 * f; } else if(f == 1) qian -= 2; else if(f <= 0){ while(f <= 0){ cout << "请重新输入。\n"; cin >> f; if(f > 1){ while(qian < 2 * f){ cout << "你买不起" << f << "张彩票,请重新输入\n"; cin >> f; } qian -= 2 * f; } else if(f == 1) qian -= 2; } } else{ cout << "你不够钱了,你猜到我手中有多少彩元,那么我手中的彩元归你。(我手中有50~100彩元)\n"; d = rand() % 51 + 50; cout << "现在开始猜吧。\n"; while(1){ cin >> e; if(d > e) cout << "小了。\n"; else if(d < e) cout << "大了。\n"; else{ cout << "猜对了,恭喜你获得了" << d << "彩元。\n"; qian += d; break; } } } for(i_ = 1 ; i_ <= f ; i_++){ cout << "第" << i_ << "张彩票。\n"; cout << "请输入选5个从01~35的号码。\n"; for(int i = 1 ; i <= 5 ; i++) cin >> a[i]; cout << "请输入选2个从01~12的号码。\n"; for(int i = 6 ; i <= 7 ; i++) cin >> a[i]; for(int i = 1 ; i <= 5 ; i++) b[i] = rand() % 35 + 1; for(int i = 6 ; i <= 7 ; i++) b[i] = rand() % 12 + 1; l1 = a[1] == b[1]; l2 = a[2] == b[2]; l3 = a[3] == b[3]; l4 = a[4] == b[4]; l5 = a[5] == b[5]; l6 = a[6] == b[6]; l7 = a[7] == b[7]; if(l1 && l2 && l3 && l4 && l5 && l6 && l7){ c = (rand() % 501 + 500) * 10000; cout << "恭喜你中了一等奖,获得奖金" << c << "彩元。\n"; qian += c; } else if((l1 && l2 && l3 && l4 && l5) && (l6 || l7)){ c = (rand() % 5 + 1) * 100000; cout << "恭喜你中了二等奖,获得奖金" << c << "彩元。\n"; qian += c; } else if(l1 && l2 && l3 && l4 && l5){ cout << "恭喜你中了三等奖,获得奖金10000彩元。\n"; qian += 10000; } else if(((l1 && l2 && l3 && l4) || (l1 && l2 && l3 && l5) || (l1 && l2 && l4 && l5) || (l1 && l3 && l4 && l5) || (l2 && l3 && l4 && l5)) && (l6 && l7)){ cout << "恭喜你中了四等奖,获得奖金3000彩元。\n"; qian += 3000; } else if(((l1 && l2 && l3 && l4) || (l1 && l2 && l3 && l5) || (l1 && l2 && l4 && l5) || (l1 && l3 && l4 && l5) || (l2 && l3 && l4 && l5)) && (l6 || l7)){ cout << "恭喜你中了五等奖,获得奖金300彩元。\n"; qian += 300; } else if(((l1 && l2 && l3) || (l1 && l2 && l4) || (l1 && l2 && l5) || (l1 && l3 && l4) || (l1 && l3 && l5) || (l1 && l4 && l5) || (l2 && l3 && l4) || (l2 && l3 && l5) || (l2 && l4 && l5) || (l3 && l4 && l5)) && (l6 && l7)){ cout << "恭喜你中了六等奖,获得奖金200彩元。\n"; qian += 200; } else if((l1 && l2 && l3 && l4) || (l1 && l2 && l3 && l5) || (l1 && l2 && l4 && l5) || (l1 && l3 && l4 && l5) || (l2 && l3 && l4 && l5)){ cout << "恭喜你中了七等奖,获得奖金100彩元。\n"; qian += 100; } else if(((l1 && l2 && l3) || (l1 && l2 && l4) || (l1 && l2 && l5) || (l1 && l3 && l4) || (l1 && l3 && l5) || (l1 && l4 && l5) || (l2 && l3 && l4) || (l2 && l3 && l5) || (l2 && l4 && l5) || (l3 && l4 && l5)) && (l6 || l7)){ cout << "恭喜你中了八等奖,获得奖金15彩元。\n"; qian += 15; } else if(((l1 && l2) || (l1 && l3) || (l1 && l4) || (l1 && l5) || (l2 && l3) || (l2 && l4) || (l2 && l5) || (l3 && l4) || (l3 && l5) || (l4 && l5)) && (l6 && l7)){ cout << "恭喜你中了八等奖,获得奖金15彩元。\n"; qian += 15; } else if((l1 && l2 && l3) || (l1 && l2 && l4) || (l1 && l2 && l5) || (l1 && l3 && l4) || (l1 && l3 && l5) || (l1 && l4 && l5) || (l2 && l3 && l4) || (l2 && l3 && l5) || (l2 && l4 && l5) || (l3 && l4 && l5)){ cout << "恭喜你中了九等奖,获得奖金5彩元。\n"; qian += 5; } else if(((l1 && l2) || (l1 && l3) || (l1 && l4) || (l1 && l5) || (l2 && l3) || (l2 && l4) || (l2 && l5) || (l3 && l4) || (l3 && l5) || (l4 && l5)) && (l6 || l7)){ cout << "恭喜你中了九等奖,获得奖金5彩元。\n"; qian += 5; } else if((l1 || l2 || l3 || l4 || l5) && (l6 && l7)){ cout << "恭喜你中了九等奖,获得奖金5彩元。\n"; qian += 5; } else if(l6 && l7){ cout << "恭喜你中了九等奖,获得奖金5彩元\n"; qian += 5; } else cout << "很遗憾,你没中奖。\n"; } cout << "中奖号码是:"; for(int i = 1 ; i <= 7 ; i++){ if(b[i] < 10) cout << "0"; cout << b[i]; if(i == 5) cout << " |"; if(i == 7) cout << "。\n"; else cout << " "; } cout << "你还剩" << qian << "彩元。\n"; cout << "你还要玩吗?(玩就输入1,不玩就输入0)。\n"; cin >> l; if(l == 0) break; } } ofstream file("c++彩票模拟器的钱.txt"); file << qian; file.close(); return 0; }
#include <bits/stdc++.h> #include <conio.h> #include <windows.h> using namespace std; const int COLUMN[4] = { 0, 2, 5, 8 }; const int DISC_CNT_MAX = 10; const int ROW_OP_CNT = 2, COL_OP_CNT = 16; const int ROW_MESSAGE = 3, COL_MESSAGE = 16; const int ROW_HELP = 15, COL_HELP = 1; const int ROW_MAX = 30, COL_MAX = 120; const int BLUE = 1; const int GREEN = 2; const int CYAN = 3; const int AQUA = 3; const int RED = 4; const int PURPLE = 5; const int YELLOW = 6; const int WHITE = 7; int n; stack<int> rod[4]; int sz[4] = { 0 }; int pos1, pos2; int key; bool prev_key_is_esc; int op_cnt; bool is_moving; int moved_disc; template <typename T> inline T read() { T x = 0; T multiplier = 1; char ch = getchar(); while (ch < '0' || ch > '9') { if (ch == '-') { multiplier = -1; } ch = getchar(); } while (ch >= '0' && ch <= '9') { x = (x << 3) + (x << 1) + (ch & 15); ch = getchar(); } return x * multiplier; } void set_caret_pos(int row = 1, int col = 1) { COORD pos; pos.X = col - 1; pos.Y = row - 1; SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), pos); } int get_caret_row() { CONSOLE_SCREEN_BUFFER_INFO info; GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &info); return info.dwCursorPosition.Y + 1; } int get_caret_col() { CONSOLE_SCREEN_BUFFER_INFO info; GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &info); return info.dwCursorPosition.X + 1; } pair<int, int> get_caret_pos() { CONSOLE_SCREEN_BUFFER_INFO info; GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &info); return make_pair(info.dwCursorPosition.Y + 1, info.dwCursorPosition.X + 1); } void set_foreground_color(int x, bool intensity = false) { SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), x | (intensity << 3)); } void set_cursor_visibility(bool visibility = true) { CONSOLE_CURSOR_INFO cc_info; cc_info.bVisible = visibility; cc_info.dwSize = 1; SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cc_info); } void disp_init_state(int n) { for (int i = 1; i <= n; i++) { set_caret_pos(i, COLUMN[1]); printf("%d", i); } for (int i = 1; i <= 3; i++) { set_caret_pos(n + 1, COLUMN[i] - 1); printf("---"); set_caret_pos(n + 2, COLUMN[i]); putchar('A' + i - 1); } set_caret_pos(ROW_OP_CNT, COL_OP_CNT); printf("0"); } void disp_help() { set_caret_pos(ROW_HELP, COL_HELP); printf("如何玩:\n" "数字表示光盘的尺寸.\n" "将A杆上圆盘移动到C杆上,每次一个.\n" "每个杆上的圆盘必须按大小升序堆叠.\n" "使用左右箭头键选择杆.\n" "按Enter键拾取选定杆上的顶部圆盘.\n" "然后使用左右键移动.\n" "按ESC取消当前移动.\n" "再次按Enter键可将圆盘放置.\n" "按R重新启动.\n" "按ESC键两次退出.\n"); } void disp_pos(int pos1, int pos2 = 0) { for (int i = 1; i <= 3; i++) { set_caret_pos(n + 3, COLUMN[i]); printf(" "); } set_caret_pos(n + 3, COLUMN[pos1]); printf("^"); if (pos2) { set_caret_pos(n + 3, COLUMN[pos2]); set_foreground_color(GREEN, true); printf("^"); set_foreground_color(WHITE); } } void clear() { for (int i = 1; i <= DISC_CNT_MAX + 3; i++) { for (int j = 1; j <= COL_MAX; j++) { set_caret_pos(i, j); putchar(' '); } } } void moving_disc(int pos1, int pos2) { int x = rod[pos1].top(); set_caret_pos(n + 1 - sz[pos1], COLUMN[pos1]); set_foreground_color(RED, true); printf("%d", x); set_foreground_color(WHITE); set_caret_pos(n - sz[pos2] + (pos1 == pos2), COLUMN[pos2]); set_foreground_color(GREEN, true); printf("%d", x); set_foreground_color(WHITE); } void update_discs(int pos1, int pos2) { int x = rod[pos1].top(); set_caret_pos(n + 1 - sz[pos1], COLUMN[pos1]); printf(" "); rod[pos1].pop(); sz[pos1]--; rod[pos2].push(x); sz[pos2]++; set_caret_pos(n + 1 - sz[pos2], COLUMN[pos2]); printf("%d", x); } void remove_temp_disc(int pos) { set_caret_pos(n - sz[pos], COLUMN[pos]); printf(" "); } void update_op_cnt() { op_cnt++; set_caret_pos(ROW_OP_CNT, COL_OP_CNT); printf("%d", op_cnt); } int main() { printf("输入光盘数量(不超过 %d): ", DISC_CNT_MAX); n = min(read<int>(), DISC_CNT_MAX); set_cursor_visibility(false); disp_help(); for (; n <= DISC_CNT_MAX; n++) { clear(); for (int i = 1; i <= 3; i++) { while (!rod[i].empty()) { rod[i].pop(); } sz[i] = 0; } for (int i = n; i >= 1; i--) { rod[1].push(i); } sz[1] = n; is_moving = false; pos1 = 1; op_cnt = 0; prev_key_is_esc = false; disp_init_state(n); disp_pos(1); while (true) { if (sz[3] == n) { set_caret_pos(ROW_MESSAGE, COL_MESSAGE); if (op_cnt != (1 << n) - 1) { printf("你用%d个动作完成了谜题.",op_cnt); } else { printf("祝贺你用最少的动作完成了谜题 " ); } Sleep(2000); break; } key = getch(); if (key == 224) { key = getch(); if (!is_moving) { if (key == 75) { // Left arrow key pos1 = (pos1 + 1) % 3 + 1; } else if (key == 77) { // Right arrow key pos1 = pos1 % 3 + 1; } disp_pos(pos1); } else { remove_temp_disc(pos2); if (key == 75) { // Left arrow key pos2 = (pos2 + 1) % 3 + 1; } else if (key == 77) { // Right arrow key pos2 = pos2 % 3 + 1; } moving_disc(pos1, pos2); disp_pos(pos1, pos2); } } else if (key == 13) { // Enter key if (!is_moving) { if (rod[pos1].empty()) { continue; } is_moving = true; moved_disc = rod[pos1].top(); pos2 = pos1; moving_disc(pos1, pos2); disp_pos(pos1, pos2); } else { if (!rod[pos2].empty() && rod[pos2].top() < moved_disc) { set_caret_pos(ROW_MESSAGE, COL_MESSAGE); printf("提示:光盘未按升序堆叠在棒上。"); continue; } is_moving = false; update_discs(pos1, pos2); update_op_cnt(); pos1 = pos2; disp_pos(pos1); } } else if (key == 27) { // Escape key if (prev_key_is_esc) { // Double ESC break; } if (is_moving) { is_moving = false; remove_temp_disc(pos2); update_discs(pos1, pos1); disp_pos(pos1); } else { prev_key_is_esc = true; } } else if (key == 'R' || key == 'r') { n--; break; } } if (prev_key_is_esc && key == 27) { // Double ESC break; } } set_caret_pos(ROW_MAX - 1, 1); return 0; }
#include <iostream> #include <cstdio> #include <cstdlib> #include <ctime> #include <conio.h> #include <cmath> #include <windows.h> using namespace std; /*** 光标定位 ***/ HANDLE hout=GetStdHandle(STD_OUTPUT_HANDLE); COORD coord; void locate(int x,int y) { coord.X=y; coord.Y=x; SetConsoleCursorPosition(hout,coord); }; /*** 隐藏光标 ***/ void hide() { CONSOLE_CURSOR_INFO cursor_info={1,0}; SetConsoleCursorInfo(hout, &cursor_info); } /*** 生成随机数 ***/ double random(double start, double end) { return start+(end-start)*rand()/(RAND_MAX + 1.0); } /*** 定义地图的长宽,蛇的坐标,长度,方向,食物的位置 ***/ int m,n; struct node { int x,y; }snake[1000]; int snake_length,dir; node food; int direct[4][2]={{-1,0},{1,0},{0,-1},{0,1}}; /*** 输出墙 ***/ void print_wall() { cout << " "; for (int i=1;i<=n;i++) cout << "-"; cout << endl; for (int j=0;j<=m-1;j++) { cout << "|"; for (int i=1;i<=n;i++) cout << " "; cout << "|" << endl; } cout << " "; for (int i=1;i<=n;i++) cout << "-"; } /*** 首次输出蛇,其中snake[0]代表头 ***/ void print_snake() { locate(snake[0].x,snake[0].y); cout << "@"; for (int i=1;i<=snake_length-1;i++) { locate(snake[i].x,snake[i].y); cout << "*"; } } /*** 判断是否撞墙或者自撞 ***/ bool is_correct() { if (snake[0].x==0 || snake[0].y==0 || snake[0].x==m+1 || snake[0].y==n+1) return false; for (int i=1;i<=snake_length-1;i++) { if (snake[0].x==snake[i].x && snake[0].y==snake[i].y) return false; } return true; } /*** 随机生成并输出食物位置 ***/ bool print_food() { srand((unsigned)time(0)); bool e; while (1) { e=true; int i=(int) random(0,m)+1,j=(int) random(0,n)+1; food.x=i;food.y=j; for (int k=0;k<=snake_length-1;k++) { if (snake[k].x==food.x && snake[k].y==food.y) { e=false;break; } } if (e) break; } locate(food.x,food.y); cout << "$"; return true; } /*** 蛇的前进 ***/ bool go_ahead() { node temp; bool e=false; temp=snake[snake_length-1]; for (int i=snake_length-1;i>=1;i--) snake[i]=snake[i-1]; snake[0].x+=direct[dir][0]; snake[0].y+=direct[dir][1]; locate(snake[1].x,snake[1].y); cout << "*"; /*** 吃到了食物 ***/ if (snake[0].x==food.x && snake[0].y==food.y) { snake_length++; e=true; snake[snake_length-1]=temp; } /*** 输出此时蛇状态 ***/ if (!e) { locate(temp.x,temp.y); cout << " "; } else print_food(); locate(snake[0].x,snake[0].y); cout << "@"; /*** 如果自撞 ***/ if (!is_correct()) { system("cls"); cout << "You lose!" << endl << "Length: " << snake_length << endl; return false; } return true; } /*** 主函数 ***/ int main() { system("mode con cols=80 lines=30"); //设置cmd窗口大小 system("color 2"); //设置字符颜色:0 黑;1 深蓝;2 深绿;3 深青;4 深红;5 深紫;6 深褐 cout << "--------------------贪吃蛇---------------------" << endl; cout << "先选择难度.请在1-10中输入1个数,1最简单,10则最难" << endl; cout << "然后进入游戏画面,以方向键控制方向.祝你游戏愉快!" << endl; cout << "-----------------------------------------------" << endl; cout << "请输入难度级别:" ; m=25; n=40; if (m<10 || n<10 || m>25 || n>40) { cout << "ERROR" << endl; system("pause"); return 0; } int hard; cin >> hard; if (hard<=0 || hard>100) { cout << "ERROR" << endl; system("pause"); return 0; } /*** 数据全部初始化,包括蛇长,位置,方向 ***/ snake_length=5; clock_t a,b; char ch; double hard_len; for (int i=0;i<=4;i++) { snake[i].x=1; snake[i].y=5-i; } dir=3; /*** 输出初始地图,蛇与食物 ***/ system("cls"); hide(); print_wall(); print_food(); print_snake(); locate(m+2,0); cout << "Now length: "; /*** 开始游戏 ***/ while (1) { /*** 难度随长度增加而提高 ***/ hard_len=(double)snake_length/(double) (m*n); /*** 调节时间,单位是ms ***/ a=clock(); while (1) { b=clock(); if (b-a>=(int)(400-30*hard)*(1-sqrt(hard_len))) break; } /*** 接受键盘输入的上下左右,并以此改变方向 ***/ if (kbhit()) { ch=getch(); if (ch==-32) { ch=getch(); switch(ch) { case 72: if (dir==2 || dir==3) dir=0; break; case 80: if (dir==2 || dir==3) dir=1; break; case 75: if (dir==0 || dir==1) dir=2; break; case 77: if (dir==0 || dir==1) dir=3; break; } } } /*** 前进 ***/ if (!go_ahead()) break; /*** 在最后输出此时长度 ***/ locate(m+2,12); cout << snake_length; } system("pause"); return 0; }
#include <bits/stdc++.h> #include <conio.h> #include <windows.h> using namespace std; int i = 1,r; double qian = 0,jqq[1000001],a,cs = 0; int main(){ srand(time(NULL)); cout << "注: 这次不会保存游戏币。\n"; cout << "游戏规则: 每次按一次空格键可以加一游戏币,如果加到2147483647(int的整数取值最大范围)获胜。\n如果输入1就可以抽加钱器,你身上最多能使用5个加钱器(系统自动给你使用前5好加钱器),"; cout << "加钱器分三个等级分别是低级(100游戏币)、中级(10000游戏币)、高级(1000000游戏币),每个等级都有普通(67%)、稀有(28%)、史诗(4%)、传说(1%)的四个小等级,\n"; cout << "低级普通加钱器使用后每次按空格键可以增加5游戏币,低级稀有加钱器使用后每次按空格键可以增加10游戏币,低级史诗加钱器使用后获50游戏币,"; cout << "低级传说加钱器使用后每次按空格键可以增加500游戏币,\n中级普通加钱器使用后每次按空格键可以增加100游戏币,中级稀有加钱器使用后每次按空格键可以增加6000游戏币,"; cout << "中级史诗加钱器使用后每次按空格键可以增加10000游戏币,中级传说加钱器使用后每次按空格键可以增加70000游戏币,\n高级普通加钱器使用后每次按空格键可以增加30000游戏币"; cout << "高级稀有加钱器使用后每次按空格键可以增加100000游戏币,高级史诗加钱器使用后每次按空格键可以增加900000游戏币,"; cout << "高级传说加钱器使用后每次按空格键可以增加8000000游戏币。\n如果输入2就可以重生,重生钱会清零,但按一次空格键增加70%游戏币。\n"; int key; while(qian < 2147483647){ key = _getch(); system("cls"); cout << "注: 这次不会保存游戏币。\n"; cout << "游戏规则: 每次按一次空格键可以加一游戏币,如果加到2147483647(int的整数取值最大范围)获胜。\n如果输入1就可以抽加钱器,你身上最多能使用5个加钱器(系统自动给你使用前5好加钱器),"; cout << "加钱器分三个等级分别是低级(100游戏币)、中级(10000游戏币)、高级(1000000游戏币),每个等级都有普通(67%)、稀有(28%)、史诗(4%)、传说(1%)的四个小等级,\n"; cout << "低级普通加钱器使用后每次按空格键可以增加5游戏币,低级稀有加钱器使用后每次按空格键可以增加10游戏币,低级史诗加钱器使用后获50游戏币,"; cout << "低级传说加钱器使用后每次按空格键可以增加500游戏币,\n中级普通加钱器使用后每次按空格键可以增加100游戏币,中级稀有加钱器使用后每次按空格键可以增加6000游戏币,"; cout << "中级史诗加钱器使用后每次按空格键可以增加10000游戏币,中级传说加钱器使用后每次按空格键可以增加70000游戏币,\n高级普通加钱器使用后每次按空格键可以增加30000游戏币"; cout << "高级稀有加钱器使用后每次按空格键可以增加100000游戏币,高级史诗加钱器使用后每次按空格键可以增加900000游戏币,"; cout << "高级传说加钱器使用后每次按空格键可以增加8000000游戏币。\n如果输入2就可以重生,重生钱会清零,但按一次空格键增加70%游戏币。\n"; if(key == 32){ sort(jqq+1,jqq+i,greater<double>()); qian = qian + (jqq[1] + jqq[2] + jqq[3] + jqq[4] + jqq[5] + 1) * pow(1.7,cs); cout << "钱: " << int(qian) << " 重生次数:" << cs << " 每次能增加的钱数: " << (jqq[1] + jqq[2] + jqq[3] + jqq[4] + jqq[5] + 1) * pow(1.7,cs) << endl; } else if(key == 49){ system("cls"); cout << "注: 这次不会保存游戏币。\n"; cout << "游戏规则: 每次按一次空格键可以加一游戏币,如果加到2147483647(int的整数取值最大范围)获胜。\n如果输入1就可以抽加钱器,你身上最多能使用5个加钱器(系统自动给你使用前5好加钱器),"; cout << "加钱器分三个等级分别是低级(100游戏币)、中级(10000游戏币)、高级(1000000游戏币),每个等级都有普通(67%)、稀有(28%)、史诗(4%)、传说(1%)的四个小等级,\n"; cout << "低级普通加钱器使用后每次按空格键可以增加5游戏币,低级稀有加钱器使用后每次按空格键可以增加10游戏币,低级史诗加钱器使用后获50游戏币,"; cout << "低级传说加钱器使用后每次按空格键可以增加500游戏币,\n中级普通加钱器使用后每次按空格键可以增加100游戏币,中级稀有加钱器使用后每次按空格键可以增加6000游戏币,"; cout << "中级史诗加钱器使用后每次按空格键可以增加10000游戏币,中级传说加钱器使用后每次按空格键可以增加70000游戏币,\n高级普通加钱器使用后每次按空格键可以增加30000游戏币"; cout << "高级稀有加钱器使用后每次按空格键可以增加100000游戏币,高级史诗加钱器使用后每次按空格键可以增加900000游戏币,"; cout << "高级传说加钱器使用后每次按空格键可以增加8000000游戏币。\n如果输入2就可以重生,重生钱会清零,但按一次空格键增加70%游戏币。\n"; cout << "你要抽低级加钱器,还是中级加钱器,还是高级加钱器。(分别输入1,2,3)\n"; cin >> a; r = rand() % 100 + 1; if(a == 1){ if(qian < 100){ cout << "你没有足够的钱。\n"; continue; } else qian -= 100; if(r >= 1 && r <= 67){ cout << "恭喜你抽到了低级普通加钱器。\n"; jqq[i] = 5; i++; } else if(r >= 68 && r <= 95){ cout << "恭喜你抽到了低级稀有加钱器。\n"; jqq[i] = 10; i++; } else if(r >= 96 && r <= 99){ cout << "恭喜你抽到了低级史诗加钱器。\n"; jqq[i] = 50; i++; } else if(r == 100){ cout << "恭喜你抽到了低级传说加钱器。\n"; jqq[i] = 500; i++; } } else if(a == 2){ if(qian < 10000){ cout << "你没有足够的钱。\n"; continue; } else qian -= 10000; if(r >= 1 && r <= 67){ cout << "恭喜你抽到了中级普通加钱器。\n"; jqq[i] = 100; i++; } else if(r >= 68 && r <= 95){ cout << "恭喜你抽到了中级稀有加钱器。\n"; jqq[i] = 6000; i++; } else if(r >= 96 && r <= 99){ cout << "恭喜你抽到了中级史诗加钱器。\n"; jqq[i] = 10000; i++; } else if(r == 100){ cout << "恭喜你抽到了中级传说加钱器。\n"; jqq[i] = 70000; i++; } } else if(a == 3){ if(qian < 1000000){ cout << "你没有足够的钱。\n"; continue; } else qian -= 1000000; if(r >= 1 && r <= 67){ cout << "恭喜你抽到了高级普通加钱器。\n"; jqq[i] = 30000; i++; } else if(r >= 68 && r <= 95){ cout << "恭喜你抽到了高级稀有加钱器。\n"; jqq[i] = 100000; i++; } else if(r >= 96 && r <= 99){ cout << "恭喜你抽到了高级史诗加钱器。\n"; jqq[i] = 900000; i++; } else if(r == 100){ cout << "恭喜你抽到了高级传说加钱器。\n"; jqq[i] = 8000000; i++; } } } else if(key == 50){ cout << "欢迎来重生。\n"; if(qian < 1000 * pow(10,cs)){ cout << "你没有足够的钱。\n"; continue; } qian = 0; cs++; cout << "重生成功。\n"; } } cout << "你赢了!\n"; return 0; }
#include <stdio.h> #include <conio.h> #include <windows.h> #include <time.h> #define Height 25 //迷宫的高度,必须为奇数 #define Width 25 //迷宫的宽度,必须为奇数 #define Wall 1 #define Road 0 #define Start 2 #define End 3 #define Esc 5 #define Up 1 #define Down 2 #define Left 3 #define Right 4 int map[Height+2][Width+2]; void gotoxy(int x,int y) //移动坐标 { COORD coord; coord.X=x; coord.Y=y; SetConsoleCursorPosition( GetStdHandle( STD_OUTPUT_HANDLE ), coord ); } void hidden()//隐藏光标 { HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE); CONSOLE_CURSOR_INFO cci; GetConsoleCursorInfo(hOut,&cci); cci.bVisible=0; //赋1为显示,赋0为隐藏 SetConsoleCursorInfo(hOut,&cci); } void create(int x,int y) //随机生成迷 { int c[4][2]= { 0,1,1,0,0,-1,-1,0 } ; //四个方向 int i,j,t; //将方向打乱 for (i=0;i<4;i++) { j=rand()%4; t=c[i][0]; c[i][0]=c[j][0]; c[j][0]=t; t=c[i][1]; c[i][1]=c[j][1]; c[j][1]=t; } map[x][y]=Road; for (i=0;i<4;i++) if(map[x+2*c[i][0]][y+2*c[i][1]]==Wall) { map[x+c[i][0]][y+c[i][1]]=Road; create(x+2*c[i][0],y+2*c[i][1]); } } int get_key() //接收按键 { char c; while(c=getch()) { if(c==27) return Esc; //Esc if(c!=-32)continue; c=getch(); if(c==72) return Up; //上 if(c==80) return Down; //下 if(c==75) return Left; //左 if(c==77) return Right; //右 } return 0; } void paint(int x,int y) //画迷宫 { gotoxy(2*y-2,x-1); switch(map[x][y]) { case Start: printf("入"); break; //画入口 case End: printf("出"); break; //画出口 case Wall: printf("▇"); break; //画墙 case Road: printf(" "); break; //画路 } } void game() { int x=2,y=1; //玩家当前位置,刚开始在入口处 int c; //用来接收按键 while(1) { gotoxy(2*y-2,x-1); printf("A"); //画出玩家当前位置 if(map[x][y]==End) //判断是否到达出口 { gotoxy(30,24); printf("\n"); // printf("到达终点,按任意键结束"); getch(); break; } c=get_key(); if(c==Esc) { gotoxy(0,24); break; } switch(c) { case Up: //向上走 if(map[x-1][y]!=Wall) { paint(x,y); x--; } break; case Down: //向下走 if(map[x+1][y]!=Wall) { paint(x,y); x++; } break; case Left: //向左走 if(map[x][y-1]!=Wall) { paint(x,y); y--; } break; case Right: //向右走 if(map[x][y+1]!=Wall) { paint(x,y); y++; } break; } } } int main() { int i,j; srand((unsigned)time(NULL)); //初始化随即种子 hidden(); //隐藏光标 for (i=0;i<=Height+1;i++) for (j=0;j<=Width+1;j++) if(i==0||i==Height+1||j==0||j==Width+1) //初始化迷宫 map[i][j]=Road; else map[i][j]=Wall; create(2*(rand()%(Height/2)+1),2*(rand()%(Width/2)+1)); //从随机一个点开始生成迷宫,该点行列都为偶数 for (i=0;i<=Height+1;i++) //边界处理 { map[i][0]=Wall; map[i][Width+1]=Wall; } for (j=0;j<=Width+1;j++) //边界处理 { map[0][j]=Wall; map[Height+1][j]=Wall; } map[2][1]=Start; //给定入口 map[Height-1][Width]=End; //给定出口 for (i=1;i<=Height;i++) for (j=1;j<=Width;j++) //画出迷宫 paint(i,j); game(); //开始游戏 getch(); return 0; }