Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 加入列表并进行比较_C#_List_Join - Fatal编程技术网

C# 加入列表并进行比较

C# 加入列表并进行比较,c#,list,join,C#,List,Join,我真的希望能在这里得到帮助。我正在尝试做一个像拉米一样的纸牌游戏,而且已经走得很远了,但是 当玩家不能在棋盘上放下一些牌时,玩家有机会传递或交换一些牌。游戏持续2副牌(104张牌),每个玩家从一开始就得到12张牌。卡片组中的卡片结构如下: 颜色、数字、id 所有的牌都在一根长绳中,如下所示: r,1,1,r,1,2,r,2,3,r,2,4。。。。。等 玩家卡在清单中,其位置如下所示: 位置、颜色、编号、id 1、b、9、17、2、r、6、34……等 桌/板上的卡片如下所示: 位置、颜色、编号、i

我真的希望能在这里得到帮助。我正在尝试做一个像拉米一样的纸牌游戏,而且已经走得很远了,但是

当玩家不能在棋盘上放下一些牌时,玩家有机会传递或交换一些牌。游戏持续2副牌(104张牌),每个玩家从一开始就得到12张牌。卡片组中的卡片结构如下:

颜色、数字、id

所有的牌都在一根长绳中,如下所示:

r,1,1,r,1,2,r,2,3,r,2,4。。。。。等

玩家卡在清单中,其位置如下所示:

位置、颜色、编号、id

1、b、9、17、2、r、6、34……等

桌/板上的卡片如下所示:

位置、颜色、编号、id

a1、y、7、65、a2、y、8、67。。。。等

因此,每个库存、卡片组和桌子卡片都是逗号分隔的字符串,必须保持这种方式(对不起)

现在,我正在努力确保我不会在比赛中遇到很多这样的人,但是运气不好。有时我会在游戏中得到很多张牌,比如3#13张相同颜色的牌。但这是我目前的脚本:

// PLAYERCARDS //
playercardsArray = playercards.Split (","[0]);

q = 0;
m = "";
foreach(string thisvalue in playercardsArray){
    m += (q%4 == 3)?thisvalue+';':thisvalue+','; 
    q++;
}

playercardsArray = m.Split (";"[0]);

foreach(string thisCard in playercardsArray){
    playercardsList.Add(thisCard);
}

playercardsList.RemoveAt(playercardsList.Count-1); 

foreach(string remcards in playercardsList){
    joinedList.Add(remcards.Substring(remcards.IndexOf(",") + 1));
}


// OPPCARDS //
oppcardsArray = oppcards.Split (","[0]);

q = 0;
m = "";
foreach(string thisvalue in oppcardsArray){
    m += (q%4 == 3)?thisvalue+';':thisvalue+','; 
    q++;
}

oppcardsArray = m.Split (";"[0]);

foreach(string thisCard in oppcardsArray){
    oppcardsList.Add(thisCard);
}

oppcardsList.RemoveAt(oppcardsList.Count-1); 

foreach(string remcards in oppcardsList){
    joinedList.Add(remcards.Substring(remcards.IndexOf(",") + 1));
}

// BOARDCARDS //
boardcardsArray = tabletiles.Split (","[0]);

q = 0;
m = "";
foreach(string thisvalue in boardcardsArray){
    m += (q%4 == 3)?thisvalue+';':thisvalue+','; 
    q++;
}

boardcardsArray = m.Split (";"[0]);

foreach(string thisCard in boardcardsArray){
    boardcardsList.Add(thisCard);
}

boardcardsList.RemoveAt(boardcardsList.Count-1); 

foreach(string remcards in boardcardsList){
    joinedList.Add(remcards.Substring(remcards.IndexOf(",") + 1));
}

// NEWCARDS //
newcardsArray = newcards.Split (","[0]);

q = 0;
m = "";
foreach(string thisvalue in newcardsArray){
    m += (q%4 == 3)?thisvalue+';':thisvalue+','; 
    q++;
}

newcardsArray = m.Split (";"[0]);

foreach(string thisCard in newcardsArray){
    newcardsList.Add(thisCard);
}

newcardsList.RemoveAt(newcardsList.Count-1); 

foreach(string remcards in newcardsList){
    joinedList.Add(remcards.Substring(remcards.IndexOf(",") + 1));
}

// ALLCARDS //
cardsArray = new string[]{ "r,1,1","r,1,2","r,2,3","r,2,4","r,3,5","r,3,6","r,4,7","r,4,8","r,5,9","r,5,10","r,6,11","r,6,12","r,7,13","r,7,14","r,8,15","r,8,16","r,9,17","r,9,18","r,10,19","r,10,20","r,11,21","r,11,22","r,12,23","r,12,24","r,13,25","r,13,26","b,1,27","b,1,28","b,2,29","b,2,30","b,3,31","b,3,32","b,4,33","b,4,34","b,5,35","b,5,36","b,6,37","b,6,38","b,7,39","b,7,40","b,8,41","b,8,42","b,9,43","b,9,44","b,10,45","b,10,46","b,11,47","b,11,48","b,12,49","b,12,50","b,13,51","b,13,52","y,1,53","y,1,54","y,2,55","y,2,56","y,3,57","y,3,58","y,4,59","y,4,60","y,5,61","y,5,62","y,6,63","y,6,64","y,7,65","y,7,66","y,8,67","y,8,68","y,9,69","y,9,70","y,10,71","y,10,72","y,11,73","y,11,74","y,12,75","y,12,76","y,13,77","y,13,78","g,1,79","g,1,80","g,2,81","g,2,82","g,3,83","g,3,84","g,4,85","g,4,86","g,5,87","g,5,88","g,6,89","g,6,90","g,7,91","g,7,92","g,8,93","g,8,94","g,9,95","g,9,96","g,10,97","g,10,98","g,11,99","g,11,100","g,12,101","g,12,102","g,13,103","g,13,104"};
q = 0;

foreach(string thisCard in cardsArray){
    cardsList.Add(thisCard);
}

foreach (string s in joinedList){
    cardsList.Remove(s);
}

thedecks = "";
thedecks = string.Join(",", cardsList.ToArray());
我知道这是一个相当大的问题,而且可能会做得更聪明,所以我希望在这件事上能得到帮助。我已经试过很多次了,但都没有成功


提前感谢:-)

问题到底是什么?它不是在做您希望它做的事情吗?请更新您的示例以使用强类型对象而不是字符串,以便更易于阅读。并添加实际问题,而不是“现在尝试了很多次,但没有运气”。@AlexeiLevenkov阅读了OP的帖子“因此,每个库存、卡片组和桌子卡片都是逗号分隔的字符串,必须保持这种方式(抱歉)。”作业意味着具有挑战性;-)有时它无法正确连接。有时我得到的牌比104张多,这意味着一些牌的三倍@阿列克谢列文科夫-不知道你的意思:-/@snafu918-明白了。。。用牙签清理街道。。。