[关闭]
@Senl 2017-03-21T11:26:33.000000Z 字数 7762 阅读 1199

3.20学习进度

技术学习

3.20   学习进度

java学习

  1. //游戏启动类
  2. public class GameLauncher {
  3. public static void main(String args[]){
  4. Game game_one = new Game();
  5. game_one.gameStart();
  6. }
  7. }
  8. //游戏类
  9. public class Game {
  10. Player p1;
  11. Player p2;
  12. Player p3;
  13. public void gameStart(){
  14. p1 = new Player();
  15. p2 = new Player();
  16. p3 = new Player();
  17. int numberp1 = 0;
  18. int numberp2 = 0;
  19. int numberp3 = 0;
  20. boolean p1Result = false;
  21. boolean p2Result = false;
  22. boolean p3Result = false;
  23. int targetNumber = (int) (Math.random()*20);
  24. System.out.println("The number is betwenn 0 - 19\n");
  25. while(true){
  26. System.out.println("The number is "+targetNumber);
  27. p1.guess();
  28. p2.guess();
  29. p3.guess();
  30. numberp1 = p1.number;
  31. numberp2 = p2.number;
  32. numberp3 = p3.number;
  33. if(numberp1==targetNumber){
  34. p1Result = true;
  35. }
  36. if(numberp2==targetNumber){
  37. p2Result = true;
  38. }
  39. if(numberp3==targetNumber){
  40. p3Result = true;
  41. }
  42. if(p1Result||p2Result||p3Result){
  43. System.out.println("let's check the answer");
  44. System.out.println("Player 1 answer is"+numberp1);
  45. if(p1Result){
  46. System.out.println("\n###  P1 wins!!!    ###\n");
  47. }
  48. System.out.println("Player 2 answer is"+numberp2);
  49. if(p2Result){
  50. System.out.println("\n###   P2 wins!!!   ###\n");
  51. }
  52. System.out.println("Player 3 answer is"+numberp3);
  53. if(p3Result){
  54. System.out.println("\n###   P3 wins!!!   ###\n");
  55. }
  56. System.out.println("\n GAME OVER!!! \n");
  57. break;
  58. }
  59. else{
  60. System.out.println("\nsorry,Let's start a new game\n");
  61. }
  62. }
  63. }
  64. }
  65. //玩家类
  66. public class Player {
  67. int number = 0;
  68. public void guess(){
  69. number = (int)(Math.random()*20);
  70. System.out.println("I guess "+number);
  71. }
  72. }

安卓

C语言和数据结构

  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #define LEN sizeof(Node)
  4. #define MAX 64
  5.             //为结构体Node和枚举类型Status更改名字
  6. typedef struct Node
  7. {
  8. int data;
  9. struct Node *next;
  10. }Node,*ptr_Node;
  11. typedef enum Status
  12. {
  13. SUCCESS,ERROR
  14. }Status;
  15. ptr_Node pt;                                 //将链表头节点作为全局变量
  16. int exist=0;                                //将链表是否存在作为全局变量
  17. void select();            //函数声明
  18. ptr_Node create(int *arr,int n);
  19. void destroy(ptr_Node head);
  20. Status insert(ptr_Node head,ptr_Node node,int index);
  21. Status delete(ptr_Node head,int index,int *data);
  22. int search(ptr_Node head,int data);
  23. Status edit(ptr_Node head,int index,int *data);
  24. int main(void)                               //主函数处理输入输出
  25. {
  26. printf("请输入任意你想存放至链表的数字(除0),输入任意字符停止\n");
  27. printf("当前支持最大输入的数据为%d个\n",MAX);
  28. printf("需要修改请把LinkLiset.c文件中#define MAX %d 改成你所需的数字\n\n",MAX);
  29. select();
  30. system("pause");
  31. }
  32. ptr_Node create(int *arr,int n)                //创建单链表函数
  33. {
  34. if(n<=0)                                   //判断传入数组的长度
  35. return NULL;
  36.  ptr_Node p1,p2,head;                       //变量定义和初始化
  37. p1=p2=(ptr_Node)malloc(LEN);
  38. head =NULL;
  39. p1->data=*arr;
  40.  int j=0;
  41. while(*(arr+j)!='\0')                      //循环使上一个节点的next指向下一个节点的data数据的地址
  42. {
  43. j=j+1;
  44.    if(j==1)
  45. head=p1;
  46.    else
  47. p2->next = p1;
  48.   p2=p1;
  49. p1=(ptr_Node)malloc(LEN);
  50. p1->data=*(arr+j);
  51. }
  52.  p2->next=NULL;                             //防止野指针
  53. free(p1);                                  //释放循环结前申请的无用空间
  54. p1=NULL;                                   //防止野指针
  55. return(head);
  56. }
  57. void destory(ptr_Node head)                    //销毁链表函数
  58. {
  59. if(head==NULL)
  60. printf("ERROR");
  61. else
  62. {
  63. ptr_Node p1=NULL,p2=NULL;
  64. p1=head;
  65. p2=p1->next;
  66. while(p2!=NULL)
  67. {
  68. p1->next=NULL;
  69. free(p1);
  70. p1=p2;
  71. p2=p1->next;
  72. }
  73. p1=NULL;
  74. p2=NULL;
  75. head=NULL;
  76. }
  77. }
  78. void print(ptr_Node head)                       //输出链表函数
  79. {
  80. ptr_Node p=NULL;
  81. if(head==NULL)
  82. printf("\nERROR,the head is empty\n");
  83. else
  84. {
  85. p=head;
  86. printf("what we get is:\n\t\t(head)%d",p->data);
  87. p=p->next;
  88. while(p!=NULL)                        //当指针不为空的时候输出
  89. {
  90. printf("---->%d",p->data);
  91. p=p->next;
  92. }
  93. printf("(end)\n\nThat‘s all.\n");
  94. }
  95. }
  96. Status insert(ptr_Node head,ptr_Node node,int index)//插入节点
  97. {
  98. ptr_Node p1=head;
  99. ptr_Node p2=NULL;
  100. ptr_Node p3=node;
  101. int j,n=index-1;
  102. if(index==1)                                    //当插入的节点是要插到头节点时候
  103. {
  104. p3->next=p1;
  105. pt=p3;
  106. return SUCCESS;
  107.  }
  108. for(j=0;j<index;j++)                           //for循环找到插入的位置
  109. {
  110. if(j==index-1)                              //if条件中执行插入操作
  111. {
  112. p2=p1->next;
  113. p1->next=p3;
  114. p3->next=p2;
  115. }
  116. p2=p1->next;
  117. p1=p2;
  118. }
  119. return SUCCESS;
  120. }
  121. Status delete(ptr_Node head,int index,int *data) //删除函数
  122. {
  123. ptr_Node p1=head;
  124. ptr_Node p2=NULL;
  125. int j;
  126. int *p=data;
  127.     for(j=0;j<=index-2;j++)                     //找到待删除的节点的位置
  128. {
  129. p2=p1->next;
  130. p1=p2;
  131. }
  132. p2=p1->next;
  133. p1->next=p2->next;                              //将p1指针指向待删除的节点的下一个节点
  134. *p=p2->data;
  135. printf("the data deleted is:%d\n",p2->data);
  136. free(p2);
  137.  printf("\n!!!链表已根据您的需求删除节点!!!\n");
  138. printf("查看请输入任意数字,不查看输入任意字符\n");
  139. if(scanf("%d",&j))
  140. print(pt);                              //输出链表
  141. else
  142. return SUCCESS;
  143. return SUCCESS;
  144. }
  145. int search(ptr_Node head,int data)              //查找节点函数
  146. {
  147. ptr_Node p1=head;
  148. ptr_Node p2=head;
  149.  for(int i=0;p2!=NULL;++i)                  //执行查找操作,找到返回节点的位置
  150. {
  151. if(p2->data == data)
  152. return i;
  153. else
  154. p2=p2->next;
  155. }
  156. return -1;                                //未找到返回-1
  157. }
  158. Status edit(ptr_Node head,int index,int *data) //修改节点值函数
  159. {
  160. ptr_Node p1=head;
  161. ptr_Node p2=head;
  162. for(int i=0;i<index;++i)
  163. {
  164. p1 = p1->next;
  165. }
  166. int temp = p1->data;
  167. p1->data = *data;
  168. *data = temp;
  169.  return SUCCESS;
  170. }
  171. void select()
  172. {
  173. int a[MAX],data[5],length,t,select=1,index=1;//a待存数组,data待存数组,length链表长度,select为控制页面变量
  174. int number;                                  //用于search函数中查找
  175. int data_num=0;
  176. for(length=0;scanf("%d",a+length);length++);
  177. *(a+length)='\0';                              //自定义输入链表中的数据
  178. system("cls");
  179. printf("已接收数据\n接下来请选择你所需操作\n\n");
  180. while(select)                             //接下来使用一个swirch处理事件
  181. {
  182. printf("\n1.根据输入数组生成链表");
  183. printf("\n2.销毁链表链表");
  184. printf("\n3.根据输入的值在链表中插入");
  185. printf("\n4.根据输入的值在链表中 删除");
  186. printf("\n5.根据输入的值在链表中  查找");
  187. printf("\n6.根据data中的值在链表中修改");
  188. printf("\n7.输出链表");
  189. printf("\n8.输出data数组");
  190. printf("\n9.修改data数组中第一个值");
  191. printf("\n0.退出");
  192. printf("\n若输入非1-9,0数字,则默认第一个选项\n");
  193. printf("\n请选择你的操作:");
  194. getchar();
  195. scanf("%d",&select);
  196. switch(select)
  197. {
  198. case 1:if(exist)
  199. {
  200. printf("\n已存在链表,自动销毁链表中\n");
  201. destory(pt);
  202. printf("\n链表销毁完毕\n");
  203. printf("将根据你最开始输入的原始数据重新生成链表\n");
  204. }
  205.              pt = create(a,length);       //调用create方法生成单链表
  206. exist=1;                //链表生成
  207. printf("\n链表生成完毕\n");
  208. print(pt);
  209. getchar();
  210. printf("输入一个整数清屏并退出至菜单,输入字符退出程序\n");
  211. if(scanf("%d",&t))
  212. system("cls");
  213. else
  214. {
  215. select=0;
  216. break;
  217. }
  218. break;
  219.          case 2:if(exist)               //检测链表是否已存在
  220. {
  221. destory(pt);
  222. printf("\n链表销毁完毕\n\n");
  223. exist=0;           //链表已销毁
  224. }
  225. else
  226. printf("链表未生成,无法销毁,请退出至菜单运行1\n");
  227.         printf("输入一个整数清屏并退出至菜单,输入字符退出程序\n");
  228. if(scanf("%d",&t))
  229. system("cls");
  230. else
  231. {
  232. select=0;
  233. break;
  234. }
  235. break;
  236.     case 3:if(exist)                    //检验链表是否生成
  237. printf("链表已存在,可以插入\n");
  238.         else
  239. {
  240. pt = create(a,length);
  241. printf("\n链表生成完毕\n");
  242. exist=1;
  243. }
  244. ptr_Node node;              //生成一个新的节点
  245. node = (ptr_Node)malloc(LEN);
  246. node->next=NULL;
  247. node->data=0;
  248. printf("请输入你想插入的第几个节点和插入节点的数据\n");
  249. A:scanf("%d %d",&index,&t); //检查用户使用数据是否越界
  250. if(index<=0||index>length)
  251. {
  252. printf("数据越界,请重新输入\n");
  253. goto A;
  254. }
  255. node->data=t;
  256. insert(pt,node,index);
  257. printf("修改之后的链表为:\n");
  258. print(pt);
  259. length++;
  260. printf("输入一个整数清屏并退出至菜单,输入字符退出程序\n");
  261. if(scanf("%d",&t))
  262. system("cls");
  263. else
  264. {
  265. select=0;
  266. break;
  267. }
  268. break;
  269.     case 4:if(exist)                    //检验链表是否生成
  270. printf("链表已存在,可以删除\n");
  271.         else
  272. {
  273. pt = create(a,length);
  274. printf("\n链表生成完毕\n");
  275. exist=1;
  276. }
  277. printf("\n请输入你想删除的第几个节点之后的节点:");
  278. B:scanf("%d",&index);       //检查用户使用数据是否越界
  279. if(index<=0||index>=length)
  280. {
  281. printf("数据越界,请重新输入\n");
  282. goto B;
  283. }
  284. delete(pt,index,data);
  285. data_num = (length-index); //检查data数组个数
  286. length--;                 //修改链表当前长度
  287. printf("输入一个整数清屏并退出至菜单,输入字符退出程序\n");
  288. if(scanf("%d",&t))
  289. system("cls");
  290. else
  291. {
  292. select=0;
  293. break;
  294. }
  295. break;
  296.                 case 5:if(!exist)                             //检验链表是否生成
  297. {
  298. printf("链表未生成\n");
  299. printf("将根据你最开始输入的原始数据重新生成链表\n");
  300. pt = create(a,length);
  301. printf("\n链表生成完毕\n");
  302. exist=1;
  303. }
  304. else
  305. printf("链表存在,可进行查找\n");
  306. printf("\n请输入你需要查找的值:");
  307. scanf("%d",&number);
  308. int temp=search(pt,number);           //检验是否找到节点
  309. if(~temp)                             //按位取反检验是否找到节点,是则输出节点位置,否则说明失败
  310. printf("在第%d个节点存在与data相同的值\n\n",temp);
  311. else
  312. printf("未能找到所需的data值\n\n");
  313. printf("\n输入一个整数清屏并退出至菜单,输入字符退出程序\n");
  314. if(scanf("%d",&t))
  315. system("cls");
  316. else
  317. {
  318. select=0;
  319. break;
  320. }
  321. break;
  322.     case 6: if(data_num)                      //检测data数组中是否有值
  323. {
  324. if(!exist)
  325. {
  326. printf("链表未生成\n");
  327. printf("将根据你最开始输入的原始数据重新生成链表\n");
  328. pt = create(a,length);
  329. printf("\n链表生成完毕\n");
  330. exist=1;
  331. }
  332. else
  333. printf("链表存在,可进行修改\n");
  334.         printf("\n请输入你想修改的第几个节点之后的节点:");
  335. C:scanf("%d",&index);               //检查用户使用数据是否越界
  336. if(index<=0||index>=length)
  337. {
  338. printf("数据越界,请重新输入\n");
  339. goto C;
  340. }
  341.       Status b=edit(pt,index,data);
  342. b==SUCCESS?printf("\n修改成功"):printf("\n修改失败");//输出修改的结果是否成功
  343. }
  344. else
  345. printf("\ndata中无值,无法进行修改操作,请退出至菜单运行6或9\n");
  346.       printf("\n输入一个整数清屏并退出至菜单,输入字符退出程序\n");
  347. if(scanf("%d",&t))
  348. system("cls");
  349. else
  350. {
  351. select=0;
  352. break;
  353. }
  354. break;
  355.     case 7:if(exist)                       //检验链表是否存在
  356. print(pt);
  357. else
  358. {
  359. printf("链表未生成,无法输出,请退出至菜单运行1\n\n");
  360. }
  361. printf("输入一个整数清屏并退出至菜单,输入字符退出程序\n");
  362. if(scanf("%d",&t))
  363. system("cls");
  364. else
  365. {
  366. select=0;
  367. break;
  368. }
  369. break;
  370.     case 8: if(data_num)                  //检测data数组是否有值,有则输出,无则要求用户输入
  371. {
  372. printf("\ndata数组为:");
  373. for(int k=0;k<data_num;k++)
  374. printf("\t%d",data[k]);
  375. }
  376. else
  377. printf("data数组中未有值,请退出至菜单运行4\n");
  378. printf("\n输入一个整数清屏并退出至菜单,输入字符退出程序\n");
  379. if(scanf("%d",&t))
  380. system("cls");
  381. else
  382. {
  383. select=0;
  384. break;
  385. }
  386. break;
  387.     case 9:if(data_num)                          //检验data数组中是否有值,有则无需输入,无则要求用户输入
  388. printf("已经有数据了,无需输入\n");
  389. else{
  390. printf("\n请输入一个整数\n");
  391. F:if(scanf("%d",&data[0]))         //防止用户输入错误的数据类型
  392. {
  393. printf("\n输入成功\n");
  394. data_num=1;
  395. }
  396. else
  397. {
  398. printf("\n输入失败,请退出至菜单重新输入\n");
  399. }
  400. }
  401. printf("\n输入一个整数清屏并退出至菜单,输入字符退出程序\n");
  402. getchar();
  403. if(scanf("%d",&t))
  404. system("cls");
  405. else
  406. {
  407. select=0;
  408. break;
  409. }
  410. break;
  411.        default:
  412. break;
  413. }
  414.         }
  415. }
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注