20粉粉福
Yuexingfei_qwq · · 休闲·娱乐
拖了几天的粉福来啦!!!!!
1.my头像
2.my个人中心封面(原图)
3.C++游戏:
#include <bits/stdc++.h>
#include <iostream>
#include <time.h>
#include <stdlib.h>
#include <cmath>
#include <windows.h>
#include <cstdlib>
#include <cstdio>
#include <stdio.h>
#define pa system("pause")
using namespace std;
struct Info {
int num, di; //di:地盘 (1:绿 | 2:黄 | 0:无)
} a[6];
int y = 2, g = 2, w = 1, opt;//y:黄色地盘 | g:绿色地盘 | w:无人地盘
bool err1, err2;
inline int write(const string _Str) {
for (int i = 0; i < (int)_Str.size(); i++) {
putchar(_Str[i]);
Sleep(50);
}
return EOF;
}
void init() {
for (int i = 1; i <= 5; i++) {
a[i].num = rand() % 6 + 1;
}
a[1].di = a[2].di = 1;
a[3].di = 0;
a[4].di = a[5].di = 2;
}
void out() {
system("cls");
printf ("地图:\n**************\n");
for (int i = 1; i <= 5; i++) {
switch (a[i].di) {
case 1:
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_GREEN);
break;
case 2:
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN);
break;
default:
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);
break;
}
if (a[i].num < 0)
a[i].num = 0;
printf ("%d ", a[i].num);
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_BLUE | FOREGROUND_RED | FOREGROUND_GREEN);
}
printf ("\n**************\n");
}
void tian() {
Sleep(1000);
write ("天降神兵!\n");
Sleep(1500);
system("cls");
int cl = rand() % 5 + 1;
out();
printf ("降在总第%d个兵营,加三个兵!", cl);
Sleep(1000);
a[cl].num += 3;
}
void f1(int n, int l, int m) {//f:绿
a[n].num -= l;
a[m].num += l;
}
void f2() {
if (a[g + 1].di == 0) {
if (a[g].num > a[g + 1].num) {
a[g].num -= a[g + 1].num;
a[g + 1].num = a[g].num;
a[g].num = 0;
a[g + 1].di = 1;
g++;
w--;
} else {
if (a[g].num < a[g + 1].num) {
a[g + 1].num -= a[g].num;
a[g].num = a[g + 1].num;
a[g + 1].num = 0;
a[g].di = 0;
g--;
w++;
} else {
a[g].num = 0;
a[g + 1].num = 0;
}
}
} else {
if (a[g].num > a[g + 1].num) {
a[g].num -= a[g + 1].num;
a[g + 1].num = a[g].num;
a[g].num = 0;
a[g + 1].di = 1;
g++;
y--;
} else {
if (a[g].num < a[g + 1].num) {
a[g + 1].num -= a[g].num;
a[g].num = a[g + 1].num;
a[g + 1].num = 0;
a[g].di = 2;
g--;
y++;
} else {
a[g].num = 0;
a[g + 1].num = 0;
}
}
}
}
void g1(int n, int l, int m) {//g:黄
n = n + g + w;
m = m + g + w;
a[n].num -= l;
a[m].num += l;
}
void g2() {
if (a[g + w].di == 0) {
if (a[g + w + 1].num > a[g + w].num) {
a[g + w + 1].num -= a[g + w].num;
a[g + w].num = a[g + w + 1].num;
a[g + w + 1].num = 0;
a[g + w].di = 2;
y++;
w--;
} else {
if (a[g + w + 1].num < a[g + w].num) {
a[g + w].num -= a[g + w + 1].num;
a[g + w].num = a[g + w + 1].num;
a[g + w + 1].num = 0;
a[g + w + 1].di = 0;
y--;
w++;
} else {
a[g + w + 1].num = 0;
a[g + w].num = 0;
}
}
} else {
if (a[g + w + 1].num > a[g + w].num) {
a[g + w + 1].num -= a[g + w].num;
a[g + w].num = a[g + w + 1].num;
a[g + w + 1].num = 0;
a[g + w].di = 2;
y++;
g--;
} else {
if (a[g + w + 1].num < a[g + w].num) {
a[g + w].num -= a[g + w + 1].num;
a[g + w].num = a[g + w + 1].num;
a[g + w + 1].num = 0;
a[g + w + 1].di = 1;
y--;
g++;
} else {
a[g + w + 1].num = 0;
a[g + w].num = 0;
}
}
}
}
void welcome() {
MessageBox(NULL, TEXT("边 界 之 争"), TEXT("进入"), MB_OK);
MessageBox(NULL, TEXT("本游戏需要两个人互相对抗"), TEXT("提示"), MB_OK);
write("你好,勇士们!欢迎来到边界之争!\n");
Sleep(1000);
write("作者:yuexingfei\n");
Sleep(1000);
pa;
}
void xin() {
write (" 新");
Sleep(1000);
write (" 手");
Sleep(1000);
write (" 教");
Sleep(1000);
write (" 程\n");
Sleep(1000);
}
void zheng() {
system("cls");
write (" 正");
Sleep(1000);
write (" 式");
Sleep(1000);
write (" 游");
Sleep(1000);
write (" 戏\n");
Sleep(1000);
system("cls");
}
bool erro1(int n, int l, int m) {
if (n > g || m > g || a[n].num < l ) {
err1 = false;
return false;
}
return true;
}
bool erro2(int n, int l, int m) {
if (g + w > n + g + w || g + w > m + g + w || a[n + g + w].num < l ) {
err2 = false;
return false;
}
return true;
}
int main() {
system("title 边界之争");
system("color 17");
welcome();
char c;
while (1) {
write ("是否跳过新手教程?(y/n)\n");
scanf ("%c", &c);
if (c == 'n' || c == 'N' || c == 'y' || c == 'Y')
break;
else
write ("输入错误!\n");
Sleep(1500);
system("cls");
}
system("color 07");
//新手教程
if (c == 'n' || c == 'N') {
system("cls");
xin();
write ("一:布局\n");
Sleep(1000);
write ("共5个地盘,初始绿、黄双方各2个地盘,中间的无人领地1个地盘\n");
Sleep(1000);
write ("兵营号为本队从左到右数的第几个兵营,数字代表本兵营的兵力,颜色代表阵营(绿色为绿队,灰色为无人领地,黄色为黄队)\n");
pa;
system("cls");
write ("二:输入类型\n");
Sleep(1000);
write ("输入1:换兵\n");
Sleep(1000);
write ("输入2:进攻\n");
Sleep(1000);
write ("输入其他数字:不操作\n");
Sleep(1000);
write ("提示:要先输入表示操作类型的数字哦~\n");
pa;
system("cls");
write ("三:操作输入\n");
while (1) {
write("操作输入\"1\":换兵\n");
Sleep(1000);
write ("首先,输入1表示你要换兵;其次,输入需要调动的兵营号;然后,输入想要调动的兵力的数量;最后,输入要调往的兵营号。\n");
Sleep(2000);
write("地图:\n**************\n");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_GREEN);
write ("9 5 ");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);
write ("6 ");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN);
write ("6 5");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_BLUE | FOREGROUND_RED | FOREGROUND_GREEN);
write ("\n**************\n请绿操作!\n\n");
Sleep(2000);
write ("试着在绿队1号兵营中抽出6个兵移到2号兵营吧!\n");
write("提示:要先输入数字1,表示你要换兵哦!\n");
int a, b, c, d;
scanf ("%d%d%d%d", &a, &b, &c, &d);
if (a == 1 && b == 1 && c == 6 && d == 2)
break;
else {
write("输入错误!");
Sleep(1000);
system("cls");
}
}
system("cls");
write("地图:\n**************\n");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_GREEN);
write ("3 11 ");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);
write ("6 ");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN);
write ("6 5");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_BLUE | FOREGROUND_RED | FOREGROUND_GREEN);
write ("\n**************\n");
Sleep(1002);
write ("很好!\n");
Sleep(2500);
system("cls");
while (1) {
write("操作输入\"2\":进攻\n");
Sleep(1000);
write("效果:让本队最靠近敌方(包括无人领地)的兵营进攻\n");
Sleep(2000);
write("分三种情况:\n一:我多敌少,夺得一格地盘,消耗兵力为对方兵力\n");
write("地图:\n*****\n");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_GREEN);
write ("5 ");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);
write ("3");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_BLUE | FOREGROUND_RED | FOREGROUND_GREEN);
write ("\n*****\n请绿操作!\n\n");
Sleep(2000);
write("请输入\"2\"进攻!\n");
int x;
scanf ("%d", &x);
if (x == 2) {
break;
} else {
write("输入错误!");
Sleep(1000);
system("cls");
}
}
write("地图:\n*****\n");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_GREEN);
write ("2 0");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_BLUE | FOREGROUND_RED | FOREGROUND_GREEN);
write ("\n*****\n");
Sleep(1000);
write ("很好!\n");
Sleep(1000);
system("cls");
while (1) {
write("二:敌多我少,失去一格地盘,本兵营兵力归零,对方兵力消耗为我方兵力\n");
write("地图:\n*****\n");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_GREEN);
write ("2 ");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);
write ("5");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_BLUE | FOREGROUND_RED | FOREGROUND_GREEN);
write ("\n*****\n请绿操作!\n\n");
Sleep(2000);
write("请输入\"2\"进攻!\n");
int x;
scanf ("%d", &x);
if (x == 2) {
break;
} else {
write("输入错误!");
Sleep(1000);
system("cls");
}
}
write("地图:\n*****\n");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);
write ("0 3");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_BLUE | FOREGROUND_RED | FOREGROUND_GREEN);
write ("\n*****\n");
Sleep(1000);
write ("很好!\n");
Sleep(1000);
system("cls");
while (1) {
write("三:敌我相等,地盘不变,双方兵力都归零\n");
write("地图:\n*****\n");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_GREEN);
write ("11 ");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);
write ("11");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_BLUE | FOREGROUND_RED | FOREGROUND_GREEN);
write ("\n*****\n请绿操作!\n\n");
Sleep(2000);
write("请输入\"2\"进攻!\n");
int x;
scanf ("%d", &x);
if (x == 2) {
break;
} else {
write("输入错误!");
Sleep(1000);
system("cls");
}
}
write("地图:\n*****\n");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_GREEN);
write ("0 ");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);
write ("0");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_BLUE | FOREGROUND_RED | FOREGROUND_GREEN);
write ("\n*****\n");
Sleep(1000);
write ("很好!\n");
Sleep(1000);
system("cls");
write ("四:获胜条件\n");
Sleep(1000);
write("谁先占领所有地盘,谁就赢了!\n");
Sleep(3000);
system("cls");
write("恭喜你,完成了新手教程!\n祝游玩愉快!\n");
system("pause");
}
//正式
system("cls");
zheng();
srand(time(0));
init();
while (1) {
int t = rand() % 4;
if (t == 1)
tian();
while (1) {
err1 = true;
out();
write ("请绿操作!\n");
scanf ("%d", &opt);
switch (opt) {
case 1://移兵
int n, m, l;
scanf("%d%d%d", &n, &l, &m);
if (erro1(n, l, m))
f1(n, l, m);
break;
case 2://攻击
f2();
break;
}
if (!err1) {
write ("操作错误!\n");
Sleep(1000);
} else
break;
}
//判断1
if (g == 5) {
out();
Sleep(1000);
system("cls");
MessageBox(NULL, TEXT("恭喜绿胜利了!!!"), TEXT("胜利了!!!"), MB_OK);
break;
} else {
if (y == 5) {
out();
Sleep(1000);
system("cls");
MessageBox(NULL, TEXT("恭喜黄胜利了!!!"), TEXT("胜利了!!!"), MB_OK);
break;
}
}
system("cls");
while (1) {
err2 = true;
out();
write ("请黄操作!\n");
scanf ("%d", &opt);
switch (opt) {
case 1://移兵
int n, m, l;
scanf("%d%d%d", &n, &l, &m);
if (erro2(n, l, m))
g1(n, l, m);
break;
case 2://攻击
g2();
break;
}
if (!err2) {
write ("操作错误!\n");
Sleep(1000);
} else
break;
}
//判断2
if (g == 5) {
out();
Sleep(1000);
system("cls");
MessageBox(NULL, TEXT("恭喜绿胜利了!!!"), TEXT("胜利了!!!"), MB_OK);
break;
} else {
if (y == 5) {
out();
Sleep(1000);
system("cls");
MessageBox(NULL, TEXT("恭喜黄胜利了!!!"), TEXT("胜利了!!!"), MB_OK);
break;
}
}
}
system("pause");
return 0;
}
40粉粉福预告:曝字迹、曝照片二选一(你们选),C++游戏*1,问答(想问问题的在下面回复或私信)
谢谢关注!