程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> C語言基礎知識 >> 魔方算法

魔方算法

編輯:C語言基礎知識
#include<conio.h>
  #include<stdio.h>
  #include<stdlib.h>
  #include<graphics.h>
  int a[3][3]={1,1,1,1,1,1,1,1,1};                      /*IN99vIALIZE SIX PLANS*/
  int b[3][3]={2,2,2,2,2,2,2,2,2};
  int c[3][3]={4,4,4,4,4,4,4,4,4};
  int d[3][3]={3,3,3,3,3,3,3,3,3};
  int e[3][3]={5,5,5,5,5,5,5,5,5};
  int f[3][3]={7,7,7,7,7,7,7,7,7};
  int top[3][3],front[3][3],side[3][3];
  int position=0,temp[3]={0,0,0},new[3][3];             /*POS99vION ASSIGN THE ARROW POS99vION*/
  int sign;
  main()
  {
  int l=60,x=50,y=50,key,count,input=0,errorcode;                 /*L MEANS THE LENTH OF THE SQUARE,X MEANS THE IN99vAIL POS99vION OF X,Y MEANS THE IN99vIAL POS99vION OF Y*/
  int a1[3][3]={1,1,1,1,1,1,1,1,1};                     /*IN99vIALIZE SIX PLANS FOR BACKUP*/
  int b1[3][3]={2,2,2,2,2,2,2,2,2};
  int c1[3][3]={4,4,4,4,4,4,4,4,4};
  int d1[3][3]={3,3,3,3,3,3,3,3,3};
  int e1[3][3]={5,5,5,5,5,5,5,5,5};
  int f1[3][3]={7,7,7,7,7,7,7,7,7};
  int graphdriver=VGA,graphmode=VGAHI;
  initgraph(&graphdriver,&graphmode,"");
  errorcode = graphresult();
  if (errorcode != grOk)                                /*MEET ERROR*/
  {                                                     /*SHOW THE ERROE*/
  printf("Graphics error: %s ", grapherrormsg(errorcode));
  printf("Press any key to exit:");
  getch();
  exit(1);
  }
  drawing(x,y,l);                                       /*DRAWING THE BIG SQUARE*/
  drawing(x+400,y,l/2);                                 /*DRAWING THE SMALL SQUARE*/
  do
  {
  sign=position%3;                                      /*COPY DATA TO SHOW*/
  copy (&a,&top);
  copy (&b,&front);
  copy (&c,&side);
  color(x,y,l);                                         /*SHOWING THE BIG SQUARE*/
  copy (&e,&top);
  change2(&top,1);
  copy (&f,&front);
  change2(&front,2);
  copy (&d,&side);
  color(x+400,y,l/2);                                   /*SHOWING THE SMALL SQUARE*/
  setcolor(14);
  arrow(x,y,l);
  key=bioskey(0);                                       /*READ KEYBORD*/
  switch(key)
  {
  case 283:printf("Esc");                               /*IF INPUT_KEY="ESC" TO EX99v THE PROGRAM*/
    goto end;
  case 20480:setcolor(0);                               /*IF INPUT_KEY="DOWN" TO CHANGE THE ARROW*/
      arrow(x,y,l);
      if(position==8)
      position=0;
             else
      position=position+1;
             break;                                     /*IF INPUT_KEY="UP" TO CHANGE THE ARROW*/
  case 18432:setcolor(0);
      arrow(x,y,l);
      if(position==0)
      position=8;
      else
      position=position-1;
      break;
  case 19712:input=1;                                   /*IF INPUT_KEY="RIGHT" TO MOVE FORWARD*/
      break;
  case 19200:input=3;                                   /*IF INPUT_KEY="LEFT" TO MOVE REWARD*/
             break;
  case 7181: setcolor(0);                               /*IF INPUT_KEY="ENTER" TO RELOAD */
      arrow(x,y,l);
             copy(&a1,&a);
             copy(&b1,&b);
             copy(&c1,&c);
             copy(&d1,&d);
             copy(&e1,&e);
             copy(&f1,&f);
             position=0;
             break;
  case 14624:setcolor(0);                               /*IF INPUT_KEY="SPACE" TO RANDOM MOVE*/
      arrow(x,y,l);
             randomize();
             position=random(9);
             input=1;
             break;
  }
  if(input!=0)                                          /*USE POS99vION TO JUDGE AND CHANGE DATA*/
  {                          
  
 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved