工程项目上传:http://download.csdn.net/user/Lijun7788
绘制数据,程序需要一个9*9的数据象"427659183153278469986413725842531976571964832369827541618792354294385617735146298"这样
数据使用一个int[9][9]的二维数组进行存储,根据用户选择的不同级别将其中的数据随机变为0,
我设计了两个数组,oldData保存原有数据,data保存当前数据,对于原有数据不能进行修改和清除,对oldData中为0的数据可以进行修改和清除
int hard=8;//困难程度
int lvl=0;//当前游戏级别
int[][] data=new int[9][9];
int[][] oldData=new int[9][9];
//关卡数据
private final String[] easyData =new String[]{
"427659183153278469986413725842531976571964832369827541618792354294385617735146298",
"948327156756841293231956748574693281162478539389125674739862415684315927512497863",
"897641523365982741142375689629158374753496218481723956918567432276834195534219867",
"215679384839542167647138259381497526792865431564213978926751843453986712178324695",
"693572841754198362182364579276915438318247695945683217827439156531726984469851723"};
//初始化游戏
private void initGame(){
if(lvl>easyData.length-1){
msg("您已经通关了!!");
return;
}
String strData=easyData[lvl];
for(int i=0;i<strData.length();i++){
if(Math.random()*10>hard){
data[i%9][i/9]=0;
}
else{
data[i%9][i/9]=Integer.parseInt(""+strData.charAt(i));
}
oldData[i%9][i/9]=data[i%9][i/9];
}
selX=selY=0;
myView.clearFocus();
setGameTitle("");
}
在onDraw事件中绘制数据
//绘图
@Override
protected void onDraw(Canvas canvas) {
//...
//画数据
for(int i=0;i<9;i++){
for(int j=0;j<9;j++){
String dat=""+data[i][j];
if(!dat.equals("0")){
int c=Color.RED;
if(oldData[i][j]==0){
if(i==selX && j==selY)
c=Color.WHITE;
else
c=Color.BLACK;
}
canvas.drawText(dat, i*w+w/3, j*w+w/2+5,createPaint(
c
) );
}
}
}
}
编写按键事件,1-9放置数据 0清除数据
//键盘事件
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
switch (keyCode) {
case KeyEvent.KEYCODE_DPAD_DOWN: selY++;break;
case KeyEvent.KEYCODE_DPAD_UP: selY--;break;
case KeyEvent.KEYCODE_DPAD_LEFT: selX--;break;
case KeyEvent.KEYCODE_DPAD_RIGHT: selX++;break;
case KeyEvent.KEYCODE_0: setData(0);break;
case KeyEvent.KEYCODE_1: setData(1);break;
case KeyEvent.KEYCODE_2: setData(2);break;
case KeyEvent.KEYCODE_3: setData(3);break;
case KeyEvent.KEYCODE_4: setData(4);break;
case KeyEvent.KEYCODE_5: setData(5);break;
case KeyEvent.KEYCODE_6: setData(6);break;
case KeyEvent.KEYCODE_7: setData(7);break;
case KeyEvent.KEYCODE_8: setData(8);break;
case KeyEvent.KEYCODE_9: setData(9);break;
default:
return super.onKeyDown(keyCode, event);
}
if(selY>8) selY=0;
if(selY<0) selY=8;
if(selX>8) selX=0;
if(selX<0) selX=8;
chkGameOver();//检查游戏是否完成
myView.clearFocus();//重新绘图
return true;
}
//设置数据
private void setData(int n) {
//原有数据为零的可以清除和放置数据
if(oldData[selX][selY]==0)
data[selX][selY]=n;
}
写一个chkGameOver检查是否完成游戏
//检查程序是否结束
private void chkGameOver() {
if(isOver()){
setGameTitle("通过了");
}
else{
setGameTitle("");
}
}
private void setGameTitle(String title){
setTitle("数独[第"+(lvl+1)+"/"+easyData.length+"关]"+title+" -- blog.csdn.net/lijun7788");
}
private boolean isOver(){
//判断横向的
for(int i=0;i<9;i++){
for(int j=0;j<9-1;j++){
if(data[i][j]==0) return false;
for(int k=j+1;k<9;k++){
if(data[i][j]==data[i][k])
return false;
}
}
}
//判断纵向的
for(int i=0;i<9;i++){
for(int j=0;j<9-1;j++){
for(int k=j+1;k<9;k++){
if(data[j][i]==data[k][i])
return false;
}
}
}
for(int i=0;i<9;i++){
for(int j=0;j<9-1;j++){
for(int k=j+1;k<9;k++){
if(data[i/3*3+j/3][i%3*3+j%3]==data[i/3*3+k/3][i%3*3+k%3])
return false;
}
}
}
return true;
}
基本功能完成,为了更友好添加菜单功能:
//创建菜单
@Override
public boolean onCreateOptionsMenu(Menu menu) {
menu.add("重出题").setOnMenuItemClickListener(mitemClick);
menu.add("重来").setOnMenuItemClickListener(mitemClick);
menu.add("解题").setOnMenuItemClickListener(mitemClick);;
menu.add("下一关").setOnMenuItemClickListener(mitemClick);;
menu.add("难易程度").setOnMenuItemClickListener(mitemClick);;
menu.add("退出").setOnMenuItemClickListener(mitemClick);
return super.onCreateOptionsMenu(menu);
}
添加菜单事件:
OnMenuItemClickListener mitemClick=new OnMenuItemClickListener() {
public boolean onMenuItemClick(MenuItem mItem) {
if(mItem.getTitle().equals("重来")){
reDo();
}
if(mItem.getTitle().equals("解题")){
showAll();
}
if(mItem.getTitle().equals("难易程度")){
selHard();
}
if(mItem.getTitle().equals("退出")){
closeGame();
}
if(mItem.getTitle().equals("重出题")){
initGame();
}
if(mItem.getTitle().equals("下一关")){
if(lvl>easyData.length-1){
msg("已经通关了!");
return true;
}
lvl++;
initGame();
}
return true;
}
};
//重来
private void reDo(){
for(int i=0;i<9;i++){
for(int j=0;j<9;j++){
data[i][j]=oldData[i][j];
}
}
selX=selY=0;
myView.clearFocus();
}
//解题
private void showAll(){
String strData=easyData[lvl];
for(int i=0;i<strData.length();i++){
data[i%9][i/9]=Integer.parseInt(""+strData.charAt(i));
}
myView.clearFocus();
}
//对话框
private void msg(String msg){
new AlertDialog.Builder(this).setTitle("数独[hahaman李君出品]").setMessage(msg).show();
}
//难易程度
private void selHard(){
new AlertDialog.Builder(this).setTitle("数独[hahaman李君出品]").setItems(new String[]{"简单","中等","困难"},new DialogInterface.OnClickListener() {
public void onClick(DialogInterface arg0, int n) {
if(n==0) hard=7;
if(n==1) hard=6;
if(n==2) hard=5;
lvl=0;
initGame();
}
}).show();
}
private void closeGame(){
this.finish();
}
菜单效果图:(后面又加了一个)
解题效果图:
选择难易程度:
通关对话框:
工程项目上传:http://download.csdn.net/user/Lijun7788
另附282关地图:
//关卡数据
private final String[] easyData =new String[]{
"427659183153278469986413725842531976571964832369827541618792354294385617735146298",
"948327156756841293231956748574693281162478539389125674739862415684315927512497863",
"897641523365982741142375689629158374753496218481723956918567432276834195534219867",
"215679384839542167647138259381497526792865431564213978926751843453986712178324695",
"693572841754198362182364579276915438318247695945683217827439156531726984469851723",
"148236975567491823392587164685723419479165382213948657931652748724819536856374291",
"324167598891235647765849213652973184913584726487621935538712469276498351149356872",
"268741539793856124541392876154283697386479215927165483479628351612537948835914762",
"382765419974182563165439728697358142231647985458921376849576231523814697716293854",
"138967452642835179975124386726391548859746231413258697291483765367519824584672913",
"167259438935814672842637519618542793723961854594378261379485126456123987281796345",
"471623985983175624256849713137498562629531478548267139794386251312754896865912347",
"746153982132498657958726341391872564467935218285641793823564179619287435574319826",
"136952847425871693879643251964385172751264389283719564618437925542196738397528416",
"192346857567892143483571296871963425329754618654128379716485932235619784948237561",
"423915687761348592895672143532461879689723415174589326257134968916857234348296751",
"794328651568417293213569478376892145152674839849153762481735926625941387937286514",
"574613298289475361613892754467139825321586947958724613736951482845267139192348576",
"617395482892147365435826917786953124241768539359412678563279841178534296924681753",
"315792864728465193469183275137846529592317648846259731683524917971638452254971386",
"368427159259361874714895326972643518586712943143589762895276431631954287427138695",
"637542198825139647914867532253781964476953281198624753349275816562418379781396425",
"296345781815267943347918256781623594524791368639584127152436879473859612968172435",
"937465128268713945154289637485397261621854793793621584512948376879136452346572819",
"158476329293158647476923185845617932937842561621395478762531894589264713314789256",
"158236497973548216426719583761384925589127634342965178834691752295473861617852349",
"817456923924371856653928714765814392238697145491532678382149567549763281176285439",
"329176584847295163156843729614987352275431896983652417738569241462718935591324678",
"321478596795163824468592137157249683246835971839617452574386219912754368683921745",
"825341769793562814416978253354829176168754932279136485542617398931485627687293541",
"248753961157296483936418257625347819389162745714589326563874192471925638892631574",
"863529471951478236427613958592761843718934562346852719689345127134287695275196384",
"492637815516289743738154926154728369683915472279463158345876291827591634961342587",
"689751243317426985254983167763892514541367829892514376478135692925678431136249758",
"657421938342698517189537462863279145214365789795814623531986274426753891978142356",
"854623971617954382923817564762149853481536297395782146176298435539471628248365719",
"498167235573982641162543879621354798347698512985721364754239186836415927219876453",
"325746198976821435184539627869214753452673981713985264231498576698157342547362819",
"539614278718952643462738159351279864274586931896341725943867512685123497127495386",
"291584376638729145745613892517968234926431587483257619854372961169845723372196458",
"412897365396541872875632941187265439629413587543789216734926158961358724258174693",
"821576934437921568965483217546392871182745693793618425378264159219857346654139782",
"753164289962785134184392657247836915615429873398517462529671348431958726876243591",
"829453176641728395753961284385214967294675831176839542468192753517386429932547618",
"851327964429615378637489512168942735295738146374561289512876493746293851983154627",
"256971438831645927479823651362487195594316872187592364718269543923154786645738219",
"358216974791834652264975183942781536675493218813652749589327461126548397437169825",
"513842976768951423429376851987124365352689147641735289874513692236497518195268734",
"681237495245968371379154286426581937957326814138749652762895143813472569594613728",
"416572983987341652325698417753829164169457238248136795634215879591784326872963541",
"745839162382671954619542783837125496594763218261984537176298345458317629923456871",
"856392147213547986974168523437289651598716432621435798745821369389674215162953874",
"784531926291764583365829714619245837823976451547183692152497368438652179976318245",
"916458372832697415547213869485921637679345128321786954798132546253864791164579283",
"317682549896453721542179836231846957965721483478395612183567294724918365659234178",
"256914738379568214814237596762851349931642857548793162183426975425379681697185423",
"287914365351687249964352187518793426643521798792468513139845672476239851825176934",
"172345896894267135536819472361974528489521763257683914928756341715432689643198257",
"721658943495213687836749152914326578372895461658174329269537814183462795547981236",
"318759426426381975759264813932178564875946231164532798283417659691825347547693182",
"865129473739485612142736859573268941298314567416597238354972186627851394981643725",
"934827615765941238128635479543186792872594361691372854356418927289753146417269583",
"813569427725148639946273158671492583352786941498351762267814395539627814184935276",
"715369284846257913239841657697183542452796831381524796574618329923475168168932475",
"476893152219654837853721469794582316381469275625137984148976523537248691962315748",
"862975341354621789197483256513246897289537164746819523975362418421798635638154972",
"836142597497865312512379648174253869258796134963418725349687251725931486681524973",
"589346712431725869762981534354812697917634285628579143173458926295163478846297351",
"394516782258937164617284935429178653783695241165423879571842396936751428842369517",
"971548263382761954654329871246895137738216549519437628493682715827153496165974382",
"726359841135284769849671523498732156652148937317596284981423675564817392273965418",
"516247389487319265293865471865921743971436528324758196159672834738194652642583917",
"584362917173498526926715483638541792297836145415279638742953861869127354351684279",
"738942516659173284241586379825439167976851432413627895187295643362714958594368721",
"315974268762813549984652317653741892149328756278569134837495621426137985591286473",
"267389514143527968985641372374258691659413287821796435536172849792864153418935726",
"716259438435687912829134756654971823192368574378425169967813245241596387583742691",
"245971863738625491691483527473812956129536784856794132562149378317258649984367215",
"462837519189546723753912846846371952271659384395428671528193467637284195914765238",
"293456817867291543415873269741569382928314756536728194182647935659132478374985621",
"275136849439857621681942735912374568863215497754698312328769154147523986596481273",
"712864359693125847584973621157498236926537418348612795869341572471256983235789164",
"816749352537628914294513678365281497742935861981467235429176583158394726673852149",
"298371546435962781176854923864195237923786154517243698381629475659437812742518369",
"341798256295641378768523491672384915459167832183952647814235769536879124927416583",
"287634591439175826561982437346819275752463189918527643673241958825396714194758362",
"786391542425687319319542876532718964894263751671954283958436127167829435243175698",
"953786421821493576746512398632849715178365942495271683314627859589134267267958134",
"934817265728635419165924783491756832576283194283149576659471328312598647847362951",
"157986243286341795493257816835429167749613582621875439568734921914562378372198654",
"147869235536217489928435671291653748684792153753184962872541396469328517315976824",
"714368952596241783382597416841635297267189534935724861129453678678912345453876129",
"586714392794623851132985476428531769675298143913476528357869214849152637261347985",
"498261735536784129217593684389645217721839456654172398145926873973418562862357941",
"136597428248361975975428631869745312324816597517932864793254186481679253652183749",
"752681493913547268468293715697318542321754986845962371239876154176425839584139627",
"481563279597182643263974815634821957752639481819457326376245198128796534945318762",
"498175632321496578675283149839764251146852793257931486912347865763518924584629317",
"941768532237915684586342179175429863893576241624831957462183795758294316319657428",
"358719264641325987927864513834572196576193842192486375469238751215947638783651429",
"581764293927835164643192587816423759735981642294657318478316925159278436362549871",
"398714526625893714417562983763428159152679348984135267539246871841957632276381495",
"417236958895471623236958417768543291354192786921687345689725134143869572572314869",
"943186572172534698658279413897621345435897261261453987526918734384765129719342856",
"128945637563718249479236185731694528954382761286157394347861952615429873892573416",
"497615382352894761816723495179268543683457219245139876924576138761382954538941627",
"187462359239185476564397281641729538978543162352816794825634917413978625796251843",
"938247561564891732721536498643128957852379614179654823295783146486912375317465289",
"582317496976854213341269785158726349629543178734198562897432651265971834413685927",
"176859324439621758285437961793514682812396475654782193567148239948263517321975846",
"768243591954781362123569784597138426436972158281654937345816279679425813812397645",
"259437618631528749487961523548673291926154387173289465865712934392845176714396852",
"761495832348216975295387416824561793513729648679834521932648157456173289187952364",
"792163458368542917514798326621874539859316742473925861137659284286437195945281673",
"659231847432789156871645392368492715947513628215867439184956273793128564526374981",
"853279416421368759679514823392685174718432695564791382247153968185946237936827541",
"984275136216389457357164928791423685825916374643857219162748593538691742479532861",
"457293186683715924219648753935867412742951368861324579326579841178432695594186237",
"183796524657214893942835167376482951295173486814569372731928645468357219529641738",
"679453812328961745541728936986342571712695384435817269854236197197584623263179458",
"857613924491728536623594871278956143936471258145832697382145769764289315519367482",
"567283419431967258289154736725498163613725984948316527174832695396541872852679341",
"561489372729631548384572619942857163836124957175963824417395286653248791298716435",
"783941265695327148142865973934586712271493586568712394359674821816239457427158639",
"675913824348572619129684357983765241461239785257841963732158496816497532594326178",
"289165374573489162164273598791654283426831759835792641352946817918527436647318925",
"367512489842397516159648237428735691796821345513469872975283164681954723234176958",
"786543129294871536135269784562398471378154692941627853817936245453712968629485317",
"425139786796248513381657249538714692169582437247963158612895374853476921974321865",
"528461379361789425479523618913876542645912783782345961156297834234658197897134256",
"561438297497625813283917456859361742132794685746852139615283974978546321324179568",
"826174593145392678739586124482617359561439287973258461694823715357961842218745936",
"829675431147238956536491287695784123482316795371952648768549312953127864214863579",
"134768295298135746657294138519327864486519327723486519961852473375641982842973651",
"584691372263457819917283456135846927798512643642379185479165238826734591351928764",
"859716234164532987732849165327491658581367492946285371493178526218653749675924813",
"837561942524397618691824537319482756756913284482756193975638421243175869168249375",
"156982743934571826827463195273154968649238517518796432765349281481627359392815674",
"476128395395467281812593674769231458531874926248659137657312849924786513183945762",
"849173625617852493523946178358291764791465832264387951982734516176528349435619287",
"623185479784239561915674283862751934149328756537946128476892315351467892298513647",
"529734186816952734734816925145698372963271548278345619691483257457129863382567491",
"923156784467289513185734269346921875572843196819675432694518327251397648738462951",
"582176349934582167761934258845213976273469815196857432418695723359721684627348591",
"176325489938164275542897163314689527627513894895472316259731648461958732783246951",
"468951723792348561531726984316285497985437216247169358829674135154893672673512849",
"741263958856419732392578146189754263235196874674382591913847625468925317527631489",
"832574691451698372679132845786421539915386427324957186193245768268713954547869213",
"451982376837654219296713854679835421342176985185249763923568147764321598518497632",
"731465289859732146642891573287319465415286937396574812528647391173928654964153728",
"596314872481792365372658941258136497743289156169547283917825634634971528825463719",
"126483957935672418487915632314768295762594381598321746671839524859247163243156879",
"412539768678421539539687124327914856851763942946258317785146293263895471194372685",
"895367412146892573273514689684975231321648795957231846412759368738126954569483127",
"359871624864253197172964853917486532538729416426135789693548271245317968781692345",
"356421798178659423429378516941736852865912347732845169513267984294183675687594231",
"589267431324851679761349582216795843493682157875413926138576294942138765657924318",
"563294871298517463147863529326941758789635142451728396675382914934176285812459637",
"751862394923541786846379125689423571532718649174695832315284967497136258268957413",
"871359462592476381436821579768195243345682917219743856927568134184237695653914728",
"249538176718269354563147298457923861196784532832651749621395487985472613374816925",
"532471986879365241641829573127598364384216795965743128758632419493187652216954837",
"256349718138726954947185236874912563523468197691537482765293841312854679489671325",
"376528941924167835851934276139852467467319528582746193695271384243685719718493652",
"359721468467895132128364579514987326792136854683542917831279645976453281245618793",
"345876219182934765697251384529647831813529476764183952256398147431762598978415623",
"984273615135486972267951843623147598578629134419835267392768451851394726746512389",
"436715289815392476792486153321549867674238915589671342168927534253864791947153628",
"417629853359418276268375149872943561694581327135267498721856934946132785583794612",
"176952348534817926928634157367589412415263879289741635642178593893425761751396284",
"123698457497125368856374921965487132238561794714932586582743619379216845641859273",
"143859276729361458685472391391748562257936814864215739578694123932187645416523987",
"371452968568739124429681357812573496794168235653924781146295873237816549985347612",
"758391264496275813213486579584962137139847652627153498845639721971528346362714985",
"635184279782953614149762358961537482524698137873421965318279546496815723257346891",
"782915463961834527354726189127583946496172358835469271548397612619248735273651894",
"841567293936482751752139486487213965619854372523796148175928634398641527264375819",
"293765418156482973748139625367241859824596137519873246631927584985314762472658391",
"657348129183972564249561783732816945915234876468759312526183497874695231391427658",
"372456918895721436641389572539672184284193657716845293467918325928534761153267849",
"289651734453927681176834952615379248948512367327468195832795416764183529591246873",
"597348216416295873382176459158439627724861395639752148875624931941583762263917584",
"716492358543768129289135764352984617461527893897613245935276481128349576674851932",
"231769548657438219498521736124376895589142673763895421872613954915284367346957182",
"195236478637489251824517963256374819318952746479168325781623594963745182542891637",
"815623794476895312293147856158964273369752481742381965924576138537218649681439527",
"329841765567329418418567392934618527872935641651274983193452876785196234246783159",
"981564273362978514457213968235681497194357826678492351726849135549136782813725649",
"815637294927854316346219875764391582238765941591482763172548639689123457453976128",
"619238457782415936534769182427183695351697824896524713265841379948372561173956248",
"341278965678195423529634718962541387184763592753829641897316254435982176216457839",
"574923816691875234283614759819762345735489621426531978157296483362148597948357162",
"578124963413869257692573418251786394734291586986435721149657832865342179327918645",
"763485219891236547524917836175349682346528971982671453617852394459163728238794165",
"437821965951346782268957431546713298872569143193482576619234857384175629725698314",
"169247538857931426243856197536128749971364852428795361792413685385679214614582973",
"952147386137865249684932517761528934495376821823491675519284763246753198378619452",
"142365789798421635365798241514279863873546192926183574637952418451837926289614357",
"835192647264837915971456382659713824147289536328645179793528461512364798486971253",
"953267814142598673876314925327185469689473251415926387764859132298731546531642798",
"974815326182736459653294871817563942269487513435921768348672195796158234521349687",
"967148253238657914541932678376584129495213867812796435759861342123479586684325791",
"893174652512638974764529381956841723487263195231957846628715439375496218149382567",
"574162389891735624263894715156928437327416598489573261912647853735289146648351972",
"426173895753829614918546732281964357375218946649357281862491573534782169197635428",
"495876132327419865186352497614527389273968514958143276849635721532791648761284953",
"314527968869431752527896143653148279792365814148279635276954381985713426431682597",
"179345826368279415524816973485692731237481659916753248641937582852164397793528164",
"478562913513489762296713584859134627167825439324976158735648291942351876681297345",
"213578496674923581589641237195867342426359178738214659951736824842195763367482915",
"589134762374269185261857349637485291915726834428913576792341658153698427846572913",
"194563872527198463386724159612857394953246781748319625461985237239671548875432916",
"431782659295136847687495231876913425152674983943258176569827314718349562324561798",
"183254967496738512257619384739145826614823795528967431371492658865371249942586173",
"756192843384657219912348576531869724297431685648275391863924157179586432425713968",
"763195248981642537542783691317958426296437815458216379629574183875321964134869752",
"524897316186423597739516284918734652462958731357162849871245963293681475645379128",
"295374816386129547174856329428617953659483172731295684813762495567941238942538761",
"936572841152483967748916532563147298894325716271698354617839425429751683385264179",
"963587214724613985851429736275846391316792548498135672649351827582974163137268459",
"819645732746823915253719684431567829978234561562981347394156278687492153125378496",
"618345927973821645524796831461258793387619254259437168845162379136974582792583416",
"386495172219387564745126983473819625691572348528643791937254816864931257152768439",
"786391452531642897249578631895426713317859246624137985152964378978213564463785129",
"734612985189547632526983147315876429472395816968421753847259361651738294293164578",
"721893465458627931369514872146972358983465127572381694835746219297138546614259783",
"923865741871934526456271839597182364634759218182346957769423185215698473348517692",
"673598142129346875845271693312759468764812539958634721596127384481963257237485916",
"489513267723968541615247398132874659596321784847659132374186925951432876268795413",
"715983624842651739396724851931867245654219387287435916123576498468192573579348162",
"573216498481739256926854371348195627697482513152673849769548132234961785815327964",
"236517984198643275574829361415368729769452813823791546687934152941275638352186497",
"934762158258149673761583429145836297673295841892471536516927384387654912429318765",
"172659843836174592549238617795316284614892375283745961328461759457983126961527438",
"587643219943128567261795348629854173158379426734216895392487651815962734476531982",
"913572846526481937874963152367825491489317265251694783148756329735249618692138574",
"682435917493167528715829634126378459549612873378954162931746285857291346264583791",
"148736529792845631653129874371692458829574316564381297487953162236417985915268743",
"782143965496527183513986427365794218924851736871632549157468392639215874248379651",
"376258491819463527425971638732649185684125379591387246948536712257814963163792854",
"718945623243786591596321847489637215125498736637152984861274359354869172972513468",
"752318496498267351163549872271986534945173628836452917624735189389621745517894263",
"129576834785394261463128597956413728812657943374289156691832475547961382238745619",
"451968723827543619936217584674825931185439276392176458268791345543682197719354862",
"317496258962587314458321976786912435149735862235648197874153629691274583523869741",
"498312657627589341135746829251873964986254713743961582362498175519627438874135296",
"743925861168473592529186374451839726687214935932567418395642187214798653876351249",
"754198326832645179169732854517864932628913745493257681281476593945381267376529418",
"746981352315472986928653174173246598592718463684539721467325819839167245251894637",
"692857431871463952453912876328146795569378124147529368916234587735681249284795613",
"938176245671254398524983716362814759987523146145697238421593687735862419869471352",
"256987134318462597947153862874216953539748216621395478183629745792534681465871329",
"874169352239584671561372948625841793713295864498637215987453126146928537352716489",
"493721586617895342852463179124587693789136425365942817538219764946378251271654938",
"762189543534627189918354762893746215256831974471295638629478351145963827387512496",
"578439126613527498429186375894673512732851649156942837345298761267315984981764253",
"935427618261938754487651293513869427679542831842173569798215346324796185156384972",
"478163529592478631316259874869714352153826497247935186931687245684592713725341968",
"845126937627539418913847256439612875258473691761958324182365749394781562576294183",
"716289534354761289298543671541937862867412953932658417483195726675324198129876345",
"598123467476598231123746958639412875812375649745689123381254796954867312267931584",
"527693481684271953139485726463752198971348562852169347216934875748516239395827614",
"865432197194857632723916458279681543436275981518349276942763815381524769657198324",
"286137549945682173371459628813725496624913857759846312192364785437598261568271934",
"925864317741253968368917542839721654456398271172546893683179425297435186514682739",
"381546279542379168967281543456138927239764815178952436613495782825617394794823651",
"349657281821943567756128943912765834587432196634891725273586419198374652465219378",
"358192674741856239296374158925718346167439825834265917419627583683541792572983461",
"231948657467325189895671243546297831382416795719583462928754316153862974674139528",
"378264591265981374419375682854137926623849715791652438142796853587413269936528147",
"728943156134562879569781432371426985985317624642895713456278391813659247297134568",
"234568719697213845185479263976854132853921674421637598368142957542796381719385426",
"179326485468795321352841796824613957937584162516279834645138279293467518781952643",
"381497562654328719729156438193765284478239651265841973532684197947513826816972345",
"917628534385914762246357189734285691162479358859163247421836975593741826678592413",
"275491638189263457364785291921378564647159823853642179512837946796514382438926715",
"713596428968274351452183967371942586625837149849615732284751693597368214136429875",
"269715348481392675573468921647851293958273164132649857814927536326584719795136482",
"948765213351829647762341895284156739635987421179432586596218374427693158813574962",
"912836574547291836368574192768129345159384762423756981651287493923415678847639215",
"965478123214936875738521964756841239328697541149253876312684597769152483485397612",
"968357421413298567725164983174635892859721634632498517546783219982146375371259846"
};