[英]How do I change a single character in a string
我正在使用 C# 表單中的數據網格視圖創建一個吃豆子游戲。 我從一個字符串創建了游戲地圖:
private string INITMAP = "wwwwwwwwwwwwwwwwwwww"+
"wkkkkkkkkkkkkkkkkkkw"+
"wkwwkwwwwkwwwwwwkwkw"+
"wkwwkkkkkkwwkkkkkwkw"+
"wkkkkwwwwkwwkwkwkkkw"+
"wkwwkwkkkkwwkwkwkwkw"+
"wkwwkwwwwkwwkwwwkwkw"+
"wkwwkkbbbbbbbkkkkwkw"+
"wkwwwwbwbbbwbwwkwkkw"+
"wkkkkkbwbbbwbwwkkwkw"+
"wkwkwwbwbbbwbkkkwkkw"+
"wkwwkwbwwwwwbwwwwwkw"+
"wkkkkkbbbbbbbkkkkkkw"+
"wkwwwwkwkwwwwkwkwwkw"+
"wkwkkkkwkkkwwkwkkwkw"+
"wkwwkwkwkwkwwkkkwwkw"+
"wkkkkwkwkwkwwkwkkkkw"+
"wkwwkwkwkwkwwkwwkwkw"+
"wkkkkkkkkkkkkkkkkkkw"+
"wwwwwwwwwwwwwwwwwwww";
public void Draw()
int totalCells = NROWSCOLUMNS * NROWSCOLUMNS;
for (int i = 0; i < totalCells; i++)
{
int nRow = i / NROWSCOLUMNS;
int nColumn = i % NROWSCOLUMNS;
switch (map.Substring(i, 1))
{
case "w":
Rows[nRow].Cells[nColumn].Value = wall;
break;
case "k":
Rows[nRow].Cells[nColumn].Value = kibble;
break;
case "b":
Rows[nRow].Cells[nColumn].Value = blank;
break;
default:
MessageBox.Show("Unidentified value in string");
break;
}
}
然后我使用上面的代碼將圖像繪制到每個單元格中。
當 pacman 遇到粗磨時,我需要它將字符串中的“k”替換為“b”。 例如,如果粗磨食物在數據網格視圖上位於 (1,1),我需要知道如何將 INITMAP 字符串中位置 21 處的“k”更改為“b”,同時保持其他所有內容相同。
當游戲地圖在每個計時器滴答時繪制到網格視圖時,我不能只是將該單元格的圖像更改為空白圖像,因此空白將再次被該粗磨食物替換。
一種方法是獲取字母的坐標,正如 Joel Coehoorn 提到的,使用子字符串如下:
str = str.Substring(0, coordinate) + 'b' + str.Substring(coordinate+1, str.length())
其中坐標是字符串中字符的位置。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.