一段c语言代码看不懂,请各位指教!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一段c语言代码看不懂,请各位指教!相关的知识,希望对你有一定的参考价值。

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int num[]=1,2,3,4,5,6,7,8,0;
main()
char key=0;
int pos;
clrscr();
randomize();
newGame();
for(;;)
key=getch();
if(key==0) continue;
pos=GetTheNull();
switch(key) /*从这里开始*/
case 72:
if(pos<=5) change(pos,pos+3);
break;
case 80:
if(pos>=3) change(pos,pos-3);
break;
case 77:
if(pos%3!=0) change(pos,pos-1);
break;
case 75:
if(pos%3!=2) change(pos,pos+1);
break; /*到这里为止看不懂*/
case 110:
newGame();

update();
if(isSuccess()) gotoxy(26,10);
printf("\332\304\304\304\304\304\304\304\304\304\304\304\304\267");
gotoxy(26,11);
printf("\263 \272");
gotoxy(26,12);
printf("\263 Well Done! \272");
gotoxy(26,13);
printf("\263 \272");
gotoxy(26,14);
printf("\324\315\315\315\315\315\315\315\315\315\315\315\315\274\n");
getch();
newGame();

if(key==27) break;

clrscr();

/*其它子函数就不用介绍了吧,望大家指教*/
如要看整段代码,去http://tieba.baidu.com/f?z=11162185&ct=335544320&lm=0&sc=0&rn=50&tn=baiduPostBrowser&word=c%D3%EF%D1%D4&pn=0
我的意思是详细的解释那段代码,还是请大家先看看完整的代码再回答吧。
我的qq825619590,大家也可以在线告诉我,谢谢了!

key是接收键盘输入的字符,其值是字符ASCII值,譬如72,80,77,75,110
对应case的各分支,分别表示向上,向下,向右,向左,重新开始。

pos表示九个格中空格的位置,
九格子位置如下:
0 1 2
3 4 5
6 7 8

1)按“向上”的话,如果空格pos<=5的位置,也就是在上两排,交换空格(pos)和它下面空格(pos+3)的位置;如果空格pos>5,也就是在最下面一排,那么空格“向上”不起作用的。

同理:
2)按“向下”的话,如果空格pos>=3的位置,也就是在下面两排,交换空格(pos)和它上面空格(pos-3)的位置;如果空格pos<3,也就是在最上面一排,那么空格“向下”不起作用的。
3)pos%3!=0,也就是空格在右边两列,按下“向右”交换pos和pos-1
4)pos%3!=2,也就是空格在左边两列,按下“向左”交换pos和pos+1

拿张纸画画,能看出来的。祝你成功
参考技术A 这里执行的是Switch...Case...语句,如果key是72的话执行change(pos,pos+3);然后退出Switch,如果是80,执行if(pos>=3) change(pos,pos-3);然后退出Switch,后面的都是跟这2个一样的。

一段看不懂的代码(关于描述符)

 1 class CallbackProperty(object):
 2     """A property that will alert observers when upon updates"""
 3 
 4     def __init__(self, default=None):
 5         self.data = dict()
 6         self.default = default
 7         self.callbacks = dict()
 8 
 9     def __get__(self, instance, owner):
10         if instance is None:
11             return self
12         return self.data.get(instance, self.default)
13 
14     def __set__(self, instance, value):
15         for callback in self.callbacks.get(instance, []):
16             # alert callback function of new value
17             callback(value)
18         self.data[instance] = value
19 
20     def add_callback(self, instance, callback):
21         """Add a new function to call everytime the descriptor within instance updates"""
22         if instance not in self.callbacks:
23             self.callbacks[instance] = []
24         self.callbacks[instance].append(callback)
25 
26 class BankAccount(object):
27     balance = CallbackProperty(0)
28 
29 def low_balance_warning(value):
30     if value < 100:
31         print("You are now poor")
32 
33 ba = BankAccount()
34 BankAccount.balance.add_callback(ba, low_balance_warning)
35 
36 ba.balance = 5000
37 print("Balance is %s" % ba.balance)
38 ba.balance = 99

 

以上是关于一段c语言代码看不懂,请各位指教!的主要内容,如果未能解决你的问题,请参考以下文章

这是一段LCD12864液晶的其中一段C语言编程,我看不懂,其中的意思可以告诉我吗?哪怕一

一段程序看不懂,高手帮忙读一下

请问C语言中的:stdio.h是啥意思,说仔细些,我刚自学的,不懂,还请指教

C语言 如何在一段时间内检测键盘是不是按下

基于FFT的算法优化 要C语言完整程序(利用旋转因子的性质),有的请留言,答谢!!!(有核心代码,望指教

求C语言程序:如何获得一个程序运行的时间? 最好带一段简单的代码 新人学不懂 呵呵 谢谢大家啦