拼图游戏C#代码.docx
- 文档编号:29560008
- 上传时间:2023-07-24
- 格式:DOCX
- 页数:24
- 大小:20.53KB
拼图游戏C#代码.docx
《拼图游戏C#代码.docx》由会员分享,可在线阅读,更多相关《拼图游戏C#代码.docx(24页珍藏版)》请在冰豆网上搜索。
拼图游戏C#代码
声明:
本游戏由14477-Ly所写,可以转载,须说明出处
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Threading.Tasks;
namespaceConsoleApplication1
{
classProgram
{
publicstaticintx1,y1;//定义两个数用来移动数组作为参考坐标
staticint[,]ss=newint[20,20];//定义一个静态二维数组做为参考数组
staticint[,]sss=newint[20,20];//定义一个静态二维数组做为移动数组
staticboolpan=false;//判断真假值用于程序跳出
staticintiii=0;//用于统计步数
staticint[,]paixu=newint[20,20];//用来存储对应难度的排行榜
staticint[]tongjishuzu={0,0,0,0,0,0,0};//统计各难度的排行
staticboolyanse11=false;//用来判断是否产生随机背景颜色
staticboolyanselll=false;//用来判断是否产生随机字体颜色
///
///对数组进行排序
///
///
///
publicstaticvoidpaixushuzu(intx,intnandu)//用直接选择排序方式对排行榜进行排序
{
if(x>10)
x=10;
for(inti=1;i { intb=0; for(intj=0;j<=x-i;j++) { if(paixu[nandu-3,j]>=paixu[nandu-3,b]) b=j; else continue; } inth; h=paixu[nandu-3,b]; paixu[nandu-3,b]=paixu[nandu-3,x-i]; paixu[nandu-3,x-i]=h; } } /// ///输出排行榜 /// /// publicstaticboolshuchu() { intxxxf=0; boolxxxxxx=false; while(true) { Console.WriteLine("请选择排行榜: A.3*3B.4*4C.5*5D.6*6E.7*7F.8*8G.9*9"); paochuyichang(xxxxxx); string[]jieshou=jieshoufanghuizifuchang(); if("A"==jieshou[1]||"B"==jieshou[1]||"C"==jieshou[1]||"D"==jieshou[1]||"E"==jieshou[1]||"F"==jieshou[1]||"G"==jieshou[1]||"a"==jieshou[1]||"b"==jieshou[1]||"c"==jieshou[1]||"d"==jieshou[1]||"e"==jieshou[1]||"f"==jieshou[1]||"g"==jieshou[1]) { switch(jieshou[0]) { case"A": xxxf=0;break; case"B": xxxf=1;break; case"C": xxxf=2;break; case"D": xxxf=3;break; case"E": xxxf=4;break; case"F": xxxf=5;break; case"G": xxxf=6;break; } break; } else { Console.Clear(); xxxxxx=true; continue; } } if(tongjishuzu[xxxf]==0) { Console.WriteLine("您所玩游戏次数为零,没有任何排行! "); } else { Console.Clear(); Console.WriteLine("{0}*{1}排行榜为: ",xxxf+3,xxxf+3); inttemp=tongjishuzu[xxxf]; if(temp>10) { temp=10; } for(inti=0;i { Console.WriteLine("No.{0}: \t\t{1}",i+1,paixu[xxxf,i]); } } Console.WriteLine("请按任意键返回! "); ConsoleKeyInfoch=Console.ReadKey(true);//定义一个从键盘接受字符的变量 Console.Clear(); returnfalse; } /// ///输出游戏提示玩法 /// /// publicstaticbooldes() { Console.Write("\t\t本游戏为数字拼图1.1版本,在w,a,s,d基础\n\t上增加方向键控制数字板移动\n\n\t界面仍然很简陋,仅有控制台,但已很接近图形界面\n\n\t其中数字为可移动板,空格为可移动位置\n\n\t按任意键返回..."); ConsoleKeyInfoch=Console.ReadKey(true);//定义一个从键盘接受字符的变量 Console.Clear(); returnfalse; } /// ///产生随机数组 /// /// publicstaticvoidcankaoshuzu(intcd)//用于产生随机数组 { int[]num=newint[cd*cd]; int[]newNum=newint[cd*cd];//定义一个二维数组 inti,j,r=cd*cd-1,k=0; intn; inttmp; Randomrand=newRandom(); for(i=0;i { num[i]=i; } ///这个算法只需要循环你的数范围的次数而已 for(i=0;i { n=rand.Next(0,r);//随机产生一个0~cd*cd之间的数,r的初始值是cd newNum[i]=num[n];//把产生的随机数当成num的下标赋给newNum数组 tmp=num[n];//然后把num[n]和它最后一个数交换(num[r]),这是避免重复 num[n]=num[r]; num[r]=tmp; r--;//自减,下次产生的随机数就可以从0到8了, } intx=1;//给出顺序值参考数组值变量 for(intix=0;ix { for(intixx=0;ixx { ss[ix,ixx]=x; x++; } } for(i=0;i<=cd-1;i++) { for(j=0;j<=cd-1;j++) { sss[i,j]=newNum[k]; k=k+1; } } } /// ///用来输出参考数组和移动之后的数组排列 /// /// publicstaticvoidprint(intcd)//用来输出参考数组和移动之后的数组排列 { for(inti=0;i<=cd-1;i++)//输出移动数组 { for(intj=0;j<=cd-1;j++) { if(sss[i,j]! =0) { Console.Write("{0,-4}",sss[i,j]);//指定字符串宽带度,并输出。 } else { x1=i; y1=j; charx=''; Console.Write("{0,-4}",x);//指定字符串宽带度,并输出。 } } Console.Write("\t"); for(intjx=0;jx<=cd-1;jx++)//输出参考数组数组 { if(ss[i,jx]! =cd*cd) Console.Write("{0,-4}",ss[i,jx]);//指定字符串宽带度,并输出。 else { charxxxxxx=''; Console.Write("{0,-4}",xxxxxx); } } Console.Write("\n"); } } /// ///判断指令是否正确,否则抛出异常 /// /// publicstaticvoidpaochuyichang(boolpangduang)//用来判断输入指令错误抛出异常 { if(pangduang) { Console.WriteLine("您输入指令有误请重新输入: "); } } /// ///返回字符串的字符 /// /// publicstaticstring[]jieshoufanghuizifuchang()//从控制台接受一个按键并将其转换成字符串返回 { ConsoleKeyInfoch;//定义一个从键盘接受字符的变量 ch=Console.ReadKey(true);//从键盘接受后复制给变量,加上true可以使其输入键不在控制台上显示 string[]jieshouzifu=newstring[2]; jieshouzifu[0]=Convert.ToString(ch.Key);//将变量转为字符串 jieshouzifu[1]=Convert.ToString(ch.KeyChar); returnjieshouzifu; } /// ///用来移动数组 /// /// /// publicstaticvoidyidong(stringyid,intx)//用来移动数组 { switch(yid) { case"W": case"UpArrow": { if(x1 { sss[x1,y1]=sss[x1+1,y1];sss[x1+1,y1]=0;x1++;pan=false;iii++; } else { pan=true; } }; break; case"S": case"DownArrow": { if(x1! =0) { sss[x1,y1]=sss[x1-1,y1];sss[x1-1,y1]=0;x1--;pan=false;iii++; } else { pan=true; } }; break; case"D": case"RightArrow": { if(y1! =0) { sss[x1,y1]=sss[x1,y1-1];sss[x1,y1-1]=0;y1--;pan=false;iii++; } else { pan=true; } }; break; case"A": case"LeftArrow": { if(y1 { sss[x1,y1]=sss[x1,y1+1];sss[x1,y1+1]=0;y1++;pan=false;iii++; } else { pan=true; } }; break; default: pan=true;break;//判断指令错误 } } /// ///判断数组是否相等,相等的话返回真值,不相等的话返回假 /// /// /// publicstaticboolbijiaoxiangdeng(intcd) { intblian=1; boolx=true; for(inti=0;i { for(intj=0;j { if(blian==cd*cd) { break; } if(sss[i,j]==blian) { } else { x=false; } } } returnx; } /// ///用户选择颜色 /// /// publicstaticboolyans() { boolpandzl=false,panzl11=false; intjieb=0,jiez=0; stringjiex; while(true) { Console.WriteLine("请选择背景颜色: \n1.黑色2.蓝色3.青色4.藏蓝色5.深紫色6.深灰色7.深绿色8.深紫红色\n9.深红色10.深黄色11.灰色12.绿色13.紫红色14.红色15.白色16.黄色17.由系统随机生成颜色18.由系统动态生成颜色"); if(pandzl) { Console.WriteLine("您输入指令由误请重新输入! "); } jiex=Console.ReadLine(); if(jiex=="1"||jiex=="2"||jiex=="3"||jiex=="4"||jiex=="5"||jiex=="6"||jiex=="7"||jiex=="8"||jiex=="9"||jiex=="10"||jiex=="11"||jiex=="12"||jiex=="13"||jiex=="14"||jiex=="15"||jiex=="16"||jiex=="17"||jiex=="18") { intjiexx=int.Parse(jiex); if(1<=jiexx&&jiexx<=16) { yanseb(jiexx);//产生用户选择的颜色 yanse11=false; break; } else if(jiexx==17) { jieb=newRandom().Next(2,16);//产生随机颜色 yanseb(jieb); yanse11=false; break; } else { yanse11=true;//产生动态的随机系统颜色 break; } } else { Console.Clear();//清空控制台 pandzl=true; continue; } } while(true) { Console.WriteLine("请选择字体颜色: \n1.黑色2.蓝色3.青色4.藏蓝色5.深紫色6.深灰色7.深绿色8.深紫红色\n9.深红色10.深黄色11.灰色12.绿色13.紫红色14.红色15.白色16.黄色17.由系统随机生成颜色18.由系统动态生成颜色"); while(true) { if(panzl11) { Console.WriteLine("您输入指令由误请重新输入! "); } jiex=Console.ReadLine(); if(jiex=="1"||jiex=="2"||jiex=="3"||jiex=="4"||jiex=="5"||jiex=="6"||jiex=="7"||jiex=="8"||jiex=="9"||jiex=="10"||jiex=="11"||jiex=="12"||jiex=="13"||jiex=="14"||jiex=="15"||jiex=="16"||jiex=="17"||jiex=="18") { intjiexx=int.Parse(jiex); if(1<=jiexx&&jiexx<=16) { yansez(jiexx);//产生用户选择的颜色 yanselll=false; break; } else if(jiexx==17) { jiez=newRandom().Next(1,16);//产生随机颜色 yansez(jiez); yanselll=false; break; } else { yanselll=true;//产生动态的随机系统颜色 break; } } else { panzl11=true; } } break; } Console.WriteLine("按任意键返回。 。 。 "); ConsoleKeyInfoch=Console.ReadKey(true);//定义一个从键盘接受字符的变量 Console.Clear(); returnfalse; } publicstaticvoidyanseb(intf)//背景色 { if(yanse11) { f=newRandom().Next(2,16);//不允许产生黑色 } switch(f) { case1: Console.BackgroundColor=ConsoleColor.Black;break; case2: Console.BackgroundColor=ConsoleColor.Blue;break; case3: Console.BackgroundColor=ConsoleColor.Cyan;break; case4: Console.BackgroundColor=ConsoleColor.DarkBlue;break; case5: Console.BackgroundColor=ConsoleColor.DarkCyan;break; case6: Console.BackgroundColor=ConsoleColor.DarkGray;break; case7: Console.BackgroundColor=ConsoleColor.DarkGreen;break; case8: Console.BackgroundColor=ConsoleColor.DarkMagenta;break; case9: Console.BackgroundColor=ConsoleColor.DarkRed;break; case10: Console.BackgroundColor=ConsoleColor.DarkYellow;break; case11: Console.BackgroundColor=ConsoleColor.Gray;break; case12: Console.BackgroundColor=ConsoleColor.Green;break; case13: Console.BackgroundColor=ConsoleColor.Magenta;break; case14: Console.BackgroundColor=ConsoleColor.Red;break; case15: Console.BackgroundColor=ConsoleColor.White;break; case16: Console.BackgroundColor=ConsoleColor.Yellow;break; } } publicstaticvoidyansez(intf)//字体颜色 { if(yanselll) { f=newRandom().Next(1,16); } switch(f) { case1: Consol
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 拼图游戏 C# 代码