概述
做游戲,其實就是按照自己的想法模擬,游客做出操作A會怎樣,操作B會怎樣,這樣就能實作一些最基本的小游戲了,
這里就給出一個例子叭~
#include <bits/stdc++.h>
using namespace std;
int main() {
A:
cout << "請輸入一個1~1000的整數,";
srand(time(0)); int x, sum = 0, res = rand() % 1000 + 1;
while (true) {
cin >> x; ++sum;
if (x > 1000 || x < 1) {
cout << "輸入錯誤,請重新輸入!"; goto A;
}
if (x == res) {
cout << "答對了!一共用了" << sum << "次!\n"; return 0;
} else if (x < res) {
cout << "輸入的數小于答案!\n";
} else {
cout << "輸入的數大于答案!\n";
}
}
return 0;
}
即便是最簡單的猜數游戲,也是要用到很多語法滴!請大家繼續學習!
1.如何生成n到m范圍內的亂數
首先,我們要呼叫頭檔案:#include < ctime > (time.h)
然后,我們要種下隨機種子(不然會和上次結果相同)~srand(time(0));
最后,我們要呼叫rand函式,巧妙地mod一下~
int n = rand() % m + n;
2.goto陳述句用法
goto陳述句的語意是改變程式流向, 轉去執行陳述句標號所標識的陳述句,也就相當于呼叫函式啦,
當然,這類最簡單的小游戲會讓人玩著玩著就煩,那么我們就有兩種解決方案:
1.美化游戲頁面
2.換一個游戲
顯然,第一種方案更簡單,那么,一起來跟蒟蒻君學習如何美化頁面叭!
美化游戲頁面的方法
1.改變視窗大小
這里會用到#include <windows.h>里面的system函式,
具體實作:system(“mode con cols = 寬 lines = 高”);
注意
1.system里面要有雙引號
2.寬和lines中間是空格,而不是逗號
2.改變顏色
1)改變背景/前景色
先定義一下~
背景色:小黑窗的顏色 前景色:輸入/輸出的東東的顏色,
這里用到的也是system函式(不要忘記頭檔案鴨),
具體實作:system(“color 背景色前景色”);
tips: 這里給大家一個表格,
背景色 前景色
0 = 黑色 8 = 灰色
1 = 藍色 9 = 淡藍色
2 = 綠色 A = 淡綠色
3 = 湖藍色 B = 淡淺綠色
4 = 紅色 C = 淡紅色
5 = 紫色 D = 淡紫色
6 = 黃色 E = 淡黃色
7 = 白色 F = 亮白色
2)改變字體顏色
具體實作(也要呼叫windows.h):SetConsoleTextAttribute(句柄|顏色),GetStdHandle和FOREGROUND_或BACKGROUND_,值為INTENSITY或RED或GREEN或BLUE,
這里給大家一一列出~
GetStdHandle(STD_OUTPUT_HANDLE)獲得句柄,
FOREGROUND_INTENSITY 表示設定前景色為高亮顯示,
FOREGROUND_RED 表示設定前景色為紅色,即字體顏色為紅色,
FOREGROUND_GREEN 表示設定前景色為綠色,即字體顏色為綠色,
FOREGROUND_BLUE 表示設定前景色為藍色,即字體顏色為藍色,
BACKGROUND_INTENSITY 表示設定背景色為高亮顯示,
BACKGROUND_RED 表示設定背景色為紅色,
BACKGROUND_GREEN 表示設定背景色為綠色,
BACKGROUND_BLUE 表示設定背景色為藍色,
注意:兩個引數之間用|隔開,而不用逗號,
3.慢速輸出
這里指的“慢速輸出”,就是輸出停頓輸出停頓…這樣的回圈,
這里要用到windows.h里的Sleep函式,引數為停頓的毫秒數,
具體實作:
#include <windows.h>
#include <iostream>
using namespace std;
......
char ch[] = "大家好";
for (int i = 0; ch[i] != '\0'; ++i) {
cout << ch[i]; Sleep(1000);
}
tips:
1.Sleep的首字母S要大寫,
2.1秒=1000毫秒
4.在指定位置輸出
這里呼叫windows.h里SetConsoleCursorPosition函式,兩個引數分別為獲取句柄和位置,位置建議用COORD結構體(其實不用管它是個神馬東東,直接呼叫就ok啦),
具體實作:
void gotoxy(int x, int y) {
COORD pos = {y - 1, x - 1};
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), pos);
}
以后還會有更多優化,今天的美化頁面就先講這么多啦!
如果大家想做更好的游戲,就需要演算法的基礎!遇到問題歡迎私信我,繼續期待第二章叭!!!如果覺得好的話,不如一鍵三連后再走,感謝可愛的粉絲們~
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/252043.html
標籤:其他
上一篇:讓你秒懂漢諾塔的遞回問題
下一篇:關于構建工具網站的摸索以及記錄
