關於超級大數字的乙個想法

2021-08-20 07:26:37 字數 1294 閱讀 7745

還是一次無聊的時候玩遊戲的時候得到的靈感,那個遊戲裡的傷害/血量上公升的極快,基本每級可以增加10%~20%,還有到特定級別增加400%這樣型別的天賦,幾百幾千級以後數字就變得極其可怕。這個遊戲的處理是直接不用正常的數字來計數(如果用正常的數字估計記憶體也存不下),而是使用字母來表示數量級,比如1b=1000a,1c=1000b,以此類推。這樣的話,的確可以解決超級大數字的問題,只要建立乙個物件,提供每個級別的變數值,如:

//a的變數值,如500a則a=500,a<1000

//private int a;

//b的變數值

//private int b;

....

//思考了一下,用陣列存應該更加科學,從前往後分別存放a-z(根據需要,遊戲中還有aa-az等的數值)

private

int data = ;

//對應的值的單位

private string dataname = ;

然後提供顯示當前數值(根據需要從大往下選擇非0的顯示)和改變量值的方法(更改對應變數,1000進製,加減乘除根據需要分別編寫,此處只編寫加法。減法類似加法;乘法複雜一些,需要單位角標相加;除法更複雜,未推導,有興趣的可以自行推導一下。沒有很精確的需求的話可以進行近似計算,即將最大的幾位轉成正常數字進行除法)

//顯示當前的值

public string showdata() else }}

return

"0";

}//兩數相加

public

void

adddata(testdata td) else }}

//增加某位的數值

public

void

adddata(int num, string name)

int index = getnameindex(name);

if (index == -1)

int origin = data[index];

int result = origin + num;

if (result < 1000) else

}

基本的邏輯到此結束,理論上應該可以儲存無限位數的數值,特定需求下可以作為一種參考方案使用。

附帶例子中的工具方法:

private

intgetnameindex(string name)

}return -1;

}private string formatnum(double num)

關於手機遊戲的乙個想法

只是乙個想法,還沒找到好的答案。手機遊戲發展這麼多年,沒有真正能叫好又叫座的作品。我也只有在例如坐長途地鐵百無聊賴時,才會玩一會以消磨時間。由於手機在硬體上的限制,在遊戲的各個方面,遊戲情節,畫面質量,操縱性,遊戲種類等等,手機遊戲只是pc遊戲的乙個子集,簡單化,粗糙化的乙個簡易的翻版。每種新遊戲都...

關於檔案處理的乙個小想法

關於檔案處理的乙個小想法,不過我對這些不熟,現階段做不出來,只好先記錄一下,不然那天又忘了.如果有哪位朋友看到了,幫忙做出來的話,對大家也是一件好事.入題 關於目前的資料庫,我個人認為在有些情況下不太合適,反而以檔案的方式較好.現在window下有一種方式,叫按詳細資訊來檢視.相應的屬性就一目了然,...

乙個愚蠢的想法

喜歡用多介面瀏覽器的朋友一定聽過 myie2 這個瀏覽器增強工具吧?很多人可能還是他的擁躉。說實話,我也比較喜歡用這個小工具,方便,而且靈活。這個工具發展至今,在網民中口碑不錯。今天,偶然到myie2的站點上去看看,發現了這樣一則宣告 真是莫名其妙,是不是在搞笑?好好的軟體非要改個詰屈聱牙的新名字有...