一次写通的代码

ある日、boss给了一个很独特的想法,让我实现,我知道要做什么东西出来,却很没底,因为感觉很容易写错,然后,我还在紧张的条件说想一下就能写出来,然后,写完之后直接跑出正确的结果了,很开心,很开心

usingSystem;

usingUnityEngine;

usingSystem.IO;

usingSystem.Text;

usingSystem.Collections.Generic;

usingSystem.Text.RegularExpressions;

usingSystem.Collections;

usingSystem.Linq;

usingSystem.Reflection;

publicclassword_Map{

publicstringword;

publicList wh;//坐标

//public int jianglicichangdu;//奖励词长度

}

publicclassMapee{

publicList WMList;

publicintjianglicichangdu;//奖励词长度

publicintjiaochadiangeshu;//交叉点个数

publicintw;

publicinth;

publicintallwordlength;

}

publicclassmap{

privatestaticmap_instance;

publicstaticmapInstance

{

get

{

if(_instance ==null)

{

_instance =newmap();

}

return_instance;

}

}

publicmap()

{

}

stringanswerPath ="Json/answer/";

publicList getJsonArray(stringjson)

{

stringnewJson ="{\"array\":"+ json +"}";

Wrapper wrapper =JsonUtility.FromJson>(newJson);

returnwrapper.array;

}

[Serializable]

privateclassWrapper

{

publicList array =null;

}

stringJsonPath ="Json/";

//统计交叉点和地图

publicvoidsss() {

File.Delete(Application.dataPath +"//"+"FileNamesss"+".txt");

StreamWritersw;

FileInfofi =newFileInfo(Application.dataPath +"//"+"FileNamesss"+".txt");

if(!fi.Exists)

{

sw = fi.CreateText();

}

else{

sw = fi.AppendText();

}

stringdata = (Resources.Load(JsonPath +"UpToServer")asTextAsset).text;

List er = getJsonArray(data);

for(inti =0; i < er.Count; i++) {

GameLevelgl =DictionaryManager.Instance.DealDictionaryString(er[i],false);

Mapeemp =newMapee();

mp.w = gl.w;

mp.h = gl.h;

mp.allwordlength =0;

List WMLists=newList();

mp.jianglicichangdu =0;

for(intj =0; j < gl.wordsList.Count; j++) {

mp.allwordlength += gl.wordsList[j].word.Length;

word_MapWM =newword_Map();

WM.word = gl.wordsList[j].word;

List rto0 =newList();

intwordlength = gl.wordsList[j].word.Length;

if(gl.wordsList[j].d ==0) {

for(intm =0; m < wordlength; m++) {

Vector2temp =newVector2();

temp.x = gl.wordsList[j].x + m;

temp.y = gl.wordsList[j].y;

rto0.Add(temp);

}

}elseif(gl.wordsList[j].d ==1){

for(intm =0; m < wordlength; m++)

{

Vector2temp =newVector2();

temp.x = gl.wordsList[j].x ;

temp.y = gl.wordsList[j].y+m;

rto0.Add(temp);

}

}elseif(gl.wordsList[j].d ==2||gl.wordsList[j].d ==3) {

//Debug.Log(i+"???"+er[i]);

mp.jianglicichangdu += wordlength;

}

WM.wh = rto0;

WMLists.Add(WM);

}

mp.WMList = WMLists;

Dictionary dic =newDictionary();

for(intm =0; m < mp.WMList.Count; m++){

List removelist =newList();

for(intn =0; n < mp.WMList[m].wh.Count; n++)

{

if(dic.ContainsKey(mp.WMList[m].wh[n]) ==false) {

dic.Add(mp.WMList[m].wh[n],m);

}else{

removelist.Add(mp.WMList[m].wh[n]);

mp.WMList[dic[mp.WMList[m].wh[n]]].wh.Remove(mp.WMList[m].wh[n]);

}

}

mp.jiaochadiangeshu += removelist.Count;

for(intn =0; n < removelist.Count; n++) {

mp.WMList[m].wh.Remove(removelist[n]);

}

}

//int w_1 = 0;

//int w_2 = 0;

//int w_3 = 0;

//int w_4 = 0;

//int w_5 = 0;

//int w_6 = 0;

//for (int m = 0; m < mp.WMList.Count; m++) {

//if (mp.WMList[m].wh.Count == 0)

//{

////奖励词

//}

//else if (mp.WMList[m].wh.Count == 1) { w_1++; }

//else if (mp.WMList[m].wh.Count == 2) { w_2++; }

//else if (mp.WMList[m].wh.Count == 3) { w_3++; }

//else if (mp.WMList[m].wh.Count == 4) { w_4++; }

//else if (mp.WMList[m].wh.Count == 5) { w_5++; }

//else if (mp.WMList[m].wh.Count == 6) { w_6++; }

//else if (mp.WMList[m].wh.Count == 7) { w_7++; }

//else {

//Debug.Log("不可能" + mp.WMList[m].wh.Count + "_" + er[i]);

//}

//sw.WriteLine(w_6 + "\t" + w_5 + "\t" + w_4 + "\t" + w_3 + "\t"+ w_2 + "\t" + w_1 + "\t" + mp.jianglicichangdu);

sw.WriteLine(mp.w +"\t"+ mp.h +"\t"+ mp.WMList.Count +"\t"+ mp.allwordlength +"\t"+ mp.jiaochadiangeshu);

}

sw.Flush();

sw.Close();

}

//除去交叉点

publicvoidsss2()

{

File.Delete(Application.dataPath +"//"+"FileNamesss"+".txt");

StreamWritersw;

FileInfofi =newFileInfo(Application.dataPath +"//"+"FileNamesss"+".txt");

if(!fi.Exists)

{

sw = fi.CreateText();

}

else{

sw = fi.AppendText();

}

stringdata = (Resources.Load(JsonPath +"UpToServer")asTextAsset).text;

List er = getJsonArray(data);

for(inti =0; i < er.Count; i++)

{

GameLevelgl =DictionaryManager.Instance.DealDictionaryString(er[i],false);

Mapeemp =newMapee();

List WMLists =newList();

mp.jianglicichangdu =0;

for(intj =0; j < gl.wordsList.Count; j++)

{

word_MapWM =newword_Map();

WM.word = gl.wordsList[j].word;

List rto0 =newList();

intwordlength = gl.wordsList[j].word.Length;

if(gl.wordsList[j].d ==0)

{

for(intm =0; m < wordlength; m++)

{

Vector2temp =newVector2();

temp.x = gl.wordsList[j].x + m;

temp.y = gl.wordsList[j].y;

rto0.Add(temp);

}

}

elseif(gl.wordsList[j].d ==1)

{

for(intm =0; m < wordlength; m++)

{

Vector2temp =newVector2();

temp.x = gl.wordsList[j].x;

temp.y = gl.wordsList[j].y + m;

rto0.Add(temp);

}

}

elseif(gl.wordsList[j].d ==2|| gl.wordsList[j].d ==3)

{

mp.jianglicichangdu += wordlength;

}

WM.wh = rto0;

WMLists.Add(WM);

}

mp.WMList = WMLists;

//Debug.Log(WMLists.Count);

//int jiaochadian = 0;

Dictionary dic =newDictionary();

dic.Clear();

for(intm =0; m < mp.WMList.Count; m++)

{

List removelist =newList();

removelist.Clear();

for(intn =0; n < mp.WMList[m].wh.Count; n++)

{

if(dic.ContainsKey(mp.WMList[m].wh[n]) ==false)

{

dic.Add(mp.WMList[m].wh[n], m);

}

else{

removelist.Add(mp.WMList[m].wh[n]);

mp.WMList[dic[mp.WMList[m].wh[n]]].wh.Remove(mp.WMList[m].wh[n]);

}

}

for(intn =0; n < removelist.Count; n++)

{

mp.WMList[m].wh.Remove(removelist[n]);

}

}

intw_1 =0;

intw_2 =0;

intw_3 =0;

intw_4 =0;

intw_5 =0;

intw_6 =0;

intw_7 =0;

for(intm =0; m < mp.WMList.Count; m++)

{

if(mp.WMList[m].wh.Count ==0) {

//奖励词

}

elseif(mp.WMList[m].wh.Count ==1){w_1++;}

elseif(mp.WMList[m].wh.Count ==2){w_2++;}

elseif(mp.WMList[m].wh.Count ==3){w_3++;}

elseif(mp.WMList[m].wh.Count ==4) { w_4++; }

elseif(mp.WMList[m].wh.Count ==5) { w_5++; }

elseif(mp.WMList[m].wh.Count ==6) { w_6++; }

elseif(mp.WMList[m].wh.Count ==7) { w_7++; }

else{

Debug.Log("不可能"+mp.WMList[m].wh.Count+"_"+er[i]);

}

}

sw.WriteLine(w_7 +"\t"+w_6 +"\t"+ w_5 +"\t"+ w_4 +"\t"+ w_3 +"\t"+ w_2 +"\t"+ w_1 +"\t"+ mp.jianglicichangdu);

}

sw.Flush();

sw.Close();

}

//地图

stringProblemPath ="Json/problems/";

publicvoidsss3(stringcountry,stringfileName)

{

stringdata = (Resources.Load(answerPath + country +"/"+ fileName)asTextAsset).text;

List er = getJsonArray(data);

for(inti =0; i < er.Count; i++)

{

//int x_Start = 10,x_end=0,int y_start=10,y_end=0;

Dictionary dicry =newDictionary();

dicry.Clear();

GameLevelgl =DictionaryManager.Instance.DealDictionaryString(er[i],false);

for(intj =0; j < gl.wordsList.Count; j++)

{

intwordlength = gl.wordsList[j].word.Length;

for(intm =0; m < wordlength; m++)

{

Vector2temp =newVector2();

if(gl.wordsList[j].d ==0|| gl.wordsList[j].d ==2)

{

temp.x = gl.wordsList[j].x + m;

temp.y = gl.wordsList[j].y;

}else{

temp.x = gl.wordsList[j].x ;

temp.y = gl.wordsList[j].y+m;

}

if(dicry.ContainsKey(temp) ==false)

{

dicry.Add(temp,0);

}

}

}

dealVec2dic(dicry,er[i],gl);

}

Debug.Log("over");

}

publicvoiddealVec2dic(Dictionary dicry,stringtimu,GameLevelgls){

GameLevelgl = gls;

//File.Delete(Application.dataPath + "//" + "FileNamesss" + ".txt");

StreamWritersw;

FileInfofi =newFileInfo(Application.dataPath +"//"+"FileNamesss"+".txt");

if(!fi.Exists)

{

sw = fi.CreateText();

}

else

{

sw = fi.AppendText();

}

//边界

intx_Start =20, x_end =0;

inty_start =20, y_end =0;

foreach(KeyValuePair kvindicry){

if(kv.Key.x>x_end){

x_end =(int)(kv.Key.x);

}

if(kv.Key.x < x_Start)

{

x_Start = (int)(kv.Key.x);

}

if(kv.Key.y > y_end)

{

y_end = (int)(kv.Key.y);

}

if(kv.Key.y < y_start)

{

y_start = (int)(kv.Key.y);

}

}

if(x_Start!=0||x_end+1!=gl.w||y_start!=0||y_end+1!=gl.h){

Debug.Log(timu+"_"+x_Start+"_"+x_end+"_"+y_start +"_"+y_end);

gl.w = x_end +1-x_Start;

gl.h = y_end +1-y_start;

if(x_Start !=0|| y_start !=0)

{

for(intre =0; re < gl.wordsList.Count; re++)

{

WordStructws =newWordStruct();

ws.word = gl.wordsList[re].word;

ws.x=gl.wordsList[re].x-x_Start;

ws.y = gl.wordsList[re].y - y_start;

ws.d = gl.wordsList[re].d;

gl.wordsList[re] = ws;

}

}

//Debug.Log(timu);

sw.WriteLine("\""+DictionaryManager.Instance.GameLeveLToString(gl)+"\",");

}

//Debug.Log(timu);

List w_list =newList();

w_list.Clear();

for(inti =1; i < gl.w-1; i++)

{

boolma =false;

for(intj =0; j < gl.h; j++)

{

Vector2v2 =newVector2();

v2.x = i;

v2.y = j;

if(dicry.ContainsKey(v2) ==true){

ma =true;

break;

}

}

if(ma ==false&& w_list.Count >0&& w_list[w_list.Count -1] ==false){

Debug.Log(timu +"_"+"w:"+ i);

}

w_list.Add(ma);

}

w_list.Clear();

for(inti =1; i < gl.h-1; i++)

{

boolma =false;

for(intj =0; j < gl.w; j++)

{

Vector2v2 =newVector2();

v2.x = j;

v2.y = i;

if(dicry.ContainsKey(v2) ==true)

{

ma =true;

break;

}

}

if(ma ==false&& w_list.Count >0&& w_list[w_list.Count -1] ==false)

{

Debug.Log(timu +"_"+"w:"+ i);

}

w_list.Add(ma);

}

sw.Flush();

sw.Close();

}

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • thiele插值算法 1点插值算法 function [C,c]=thiele(X,Y,Z)%X为插值点横坐标,Y...
    00crazy00阅读 2,067评论 0 4
  • 星期天,老杨一个人背着手在小区里溜达,现在正是一年中最好的时光,春光烂漫。 小区花坛里,各种花正在次第开放。老杨用...
    阿尔他霞阅读 1,303评论 17 18
  • 1.对我们来说,投资等于出去赌马。我们要寻找一匹获胜几率是两分之一、赔率是一赔三的马。你要寻找的是标错赔率的赌局。...
    别样的人生阅读 299评论 0 1
  • 文/驭风者 天上十个太阳喷涌而出的岩浆 融化不了厚厚的城墙 地下十个太阳发出来的光 照不进月亮的边疆 十个太阳在天...
    驭风者hou阅读 2,252评论 11 14