日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++(11)--编程实践1-经典养成类游戏简单实践

發布時間:2023/12/13 c/c++ 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++(11)--编程实践1-经典养成类游戏简单实践 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

經典養成類游戲簡單實踐-小公主養成記


《老九學堂C++課程》學習筆記。《老九學堂C++課程》詳情請到B站搜索《老九零基礎學編程C++入門》
-------------簡單的事情重復做,重復的事情用心做,用心的事情堅持做(老九君)---------------
致敬:日本Gainax公司推出養成游戲,美少女夢工廠

使用控制臺編寫一個小游戲需要實現的基礎功能

  • 新增數據
  • 修改數據
  • 刪除數據
  • 查詢數據
  • 游戲規則:游戲一共運行78個月,安排每個月的行程,合理規劃增加基礎屬性。最后主人公成為什么靠的是不同的培養模式。

    將使用的技能點:分支結構,循環結構,數組,*vector/array, 指針

    劇情策劃-》原畫-》劇情動畫-》寫程序把動畫串起來成為場景(10幾個人,2年)

    /****************************** 文件名:main.cpp* 創建人:cyy* 日 期:2021-01-08* 描 述:C++第一階段項目《小公主養成記》* 修改人:somebody* 日 期:someday* 版 本:1.0.0* *****************************/ #include <iostream> #include <iomanip> #include <ctime> #include <vector> #include <array> #include <cstdlib>using namespace std;int main(){// 1.為父親女兒取名字/** 父親姓名 */string value_father_name;/** 女兒姓名 */string value_daughter_name;/** 女兒生日的月份 */int value_birth_month = 7;/** 女兒生日的日期 */int value_birth_day = 5;/** 女兒的五項基本信息:體力、智力、魅力、道德、氣質*/vector<int> value_daughter_baseinfos;/** 五項基本屬性名 */array<string, 5> value_arrary_baseinfoname = {"體力","智力","魅力","道德","氣質"};/** 女兒的初始金幣*/int value_daughter_gold = 500;string value_daughter_constell;string constell_name[12][2]={{"山羊座", "水瓶座"}, // 一月{"水瓶座", "雙魚座"}, // 二月{"雙魚座", "白羊座"}, // 三月{"白羊座", "金牛座"}, // 四月{"金牛座", "雙子座"}, // 五月{"雙子座", "巨蟹座"}, // 六月{"巨蟹座", "獅子座"}, // 七月{"獅子座", "處女座"}, // 八月{"處女座", "天秤座"}, // 九月{"天秤座", "天蝎座"}, // 十月{"天蝎座", "射手座"}, // 十一月{"射手座", "山羊座"}, // 十二月};int choice, temp1, temp2, temp3;// 2.為女兒錄入初始信息,cout << "父親的姓名: ";cin >> value_father_name;cout << "女兒的姓名: ";cin >> value_daughter_name;cout << "女兒的生日(MM DD): ";cin >> value_birth_month >> value_birth_day;/** 每個星座的最后一天 */int constell_dates[] = {20, 19, 21, 20, 21, 22, 23, 23, 23, 24, 23, 22};value_daughter_constell = constell_name[value_birth_month-1][value_birth_day / constell_dates[value_birth_month-1]];cout << "女兒的信息:";cout << "姓名:" << value_daughter_name << endl;cout << "生日:1659-" << value_birth_month << "-" << value_birth_day << endl;cout << "星座:" << value_daughter_constell << endl;// .依據女兒的星座,設置游戲的基本參數(體力,智力,魅力,道德,氣質)if(value_daughter_constell == "山羊座" || value_daughter_constell == "雙魚座" || value_daughter_constell == "白羊座"){value_daughter_baseinfos.push_back(80);value_daughter_baseinfos.push_back(15);value_daughter_baseinfos.push_back(15);value_daughter_baseinfos.push_back(11);value_daughter_baseinfos.push_back(11);}else if(value_daughter_constell == "金牛座" || value_daughter_constell =="雙子座" || value_daughter_constell =="巨蟹座"){value_daughter_baseinfos.push_back(30);value_daughter_baseinfos.push_back(20);value_daughter_baseinfos.push_back(23);value_daughter_baseinfos.push_back(35);value_daughter_baseinfos.push_back(47);}else if(value_daughter_constell == "獅子座" || value_daughter_constell =="處女座" || value_daughter_constell=="天平座"){value_daughter_baseinfos.push_back(12);value_daughter_baseinfos.push_back(13);value_daughter_baseinfos.push_back(23);value_daughter_baseinfos.push_back(32);value_daughter_baseinfos.push_back(21);}else{value_daughter_baseinfos.push_back(2);value_daughter_baseinfos.push_back(32);value_daughter_baseinfos.push_back(12);value_daughter_baseinfos.push_back(33);value_daughter_baseinfos.push_back(26);}for(int i = 0; i < 5 ; i++){cout << value_daughter_baseinfos[i] << "\t";}// 3. 開始游戲大循環// 游戲從1659年6月開始for(int year = 1659; year <= 1659 + 7; year++){for(int month = (year == 1659 ? 6 : 1); month < 13; month++){// 判斷本月是不是女兒的生日if(month == value_birth_month){cout << "本月是" << value_daughter_name << "的生日,要不要送禮物呢?" << endl;// 依據用戶的輸入做判斷 }// 顯示游戲主菜單cout << "\n 1.查看狀態 \t2.安排行程 \t3.親自談話 \t4.存檔 \t5.讀檔" << endl;cin >> choice;switch(choice){case 1: //1.查看狀態cout << "女兒的信息:";cout << "姓名:" << value_daughter_name << endl;cout << "生日:1659-" << value_birth_month << "-" << value_birth_day << endl;cout << "星座:" << value_daughter_constell << endl;cout << "金幣:" << value_daughter_gold << endl;//打印核心屬性"cout << left;for(int i = 0; i < 5; i++){cout << value_arrary_baseinfoname[i] << ": " << setw(4) << value_daughter_baseinfos[i];// 計算實心框的百分比int solidCount = value_daughter_baseinfos[i] / 10;for(int j = 0; j < 10; j++){if(j < solidCount){cout << "?";} elsecout << "?";}cout << endl;}break;case 2: //2.安排行程: 一個月最多安排三個行程{string month_parts[] = {"上旬","中旬","下旬"};int num; // 課上說case里面不能定義變量,需要打括號。但是我是可以的for(int i = 0; i < 3; i++){cout << "--" << month << "月--" << month_parts[i] << endl;cout << "1.學習武藝\n 2.上私塾\n 3.學習禮法\n 4.出城修行\n 5.打工賺錢" << endl;cout << "請選擇:";cin >> choice;// 需要進行判斷沒錢的情況,強制打工srand(time(NULL));if(choice == 1){ // 加體力,加魅力,減金錢value_daughter_baseinfos[0] += temp1 = rand() % 11;value_daughter_baseinfos[2] += temp2 = rand() % 11;value_daughter_gold -= temp3 = rand() % 51;cout << "學習張無忌好榜樣!!!!" << endl;cout << "體力+" << temp1 << ",魅力+" << temp2 << ",金錢-"<< temp3 << endl;}else if(choice == 5){value_daughter_gold -= temp3 = rand() % 101;cout << "通過努力打工賺到了" << temp3 << "金幣" << endl;}}break;}case 3: //3.親自談話break;case 4: //4.存檔break;case 5: //5.讀檔break;default:break;}}}// 4. 根據各項闡述,判定游戲結果int sum = 0;for(int i = 0; i < 5; i++){sum += value_daughter_baseinfos[i];}if(sum >= 2000){cout << "最優游戲結果:登基為女王陛下" << endl;}else if(sum >= 1800 && sum < 2000){cout << "次優游戲結果:成為王妃" << endl;}else if(sum >= 1200 && sum < 1600){int maxValue = value_daughter_baseinfos[0];int maxIdex = 0;for(int i = 1; i < 5; i++){if(maxValue < value_daughter_baseinfos[i]){maxValue = value_daughter_baseinfos[i];maxIdex = i;}}if ( maxIdex == 4 && value_daughter_baseinfos[2] > value_daughter_baseinfos[4]){cout << "經過長期的訓練" << value_daughter_name << "成為一名高榮的高級祭司" << endl;}return 0; }

    總結

    以上是生活随笔為你收集整理的C++(11)--编程实践1-经典养成类游戏简单实践的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。