// Morse code tree construct header for morse code tutor // Authors: Yen-Khai Lee + Jeff Fung // NetID: yl245 + wf23 #include struct morse_tree_node { char ch[2]; struct morse_tree_node *dit; struct morse_tree_node *dah; } ; typedef struct morse_tree_node MNODE; MNODE root_node; MNODE anode; MNODE bnode; MNODE cnode; MNODE dnode; MNODE enode; MNODE fnode; MNODE gnode; MNODE hnode; MNODE inode; MNODE jnode; MNODE knode; MNODE lnode; MNODE mnode; MNODE nnode; MNODE onode; MNODE pnode; MNODE qnode; MNODE rnode; MNODE snode; MNODE tnode; MNODE unode; MNODE vnode; MNODE wnode; MNODE xnode; MNODE ynode; MNODE znode; MNODE dah_nodeO09; MNODE dit_nodeO8; MNODE dah_nodeU2; MNODE node0; MNODE node1; MNODE node2; MNODE node3; MNODE node4; MNODE node5; MNODE node6; MNODE node7; MNODE node8; MNODE node9; //MNODE nodev_dit; MNODE nodeEOW; void nodetree() { root_node.ch[0] = ':'; root_node.ch[1]='\0'; anode.ch[0] = 'A'; anode.ch[1] = '\0'; bnode.ch[0] = 'B'; bnode.ch[1] = '\0'; cnode.ch[0] = 'C'; cnode.ch[1] = '\0'; dnode.ch[0] = 'D'; dnode.ch[1] = '\0'; enode.ch[0] = 'E'; enode.ch[1] = '\0'; fnode.ch[0] = 'F'; fnode.ch[1] = '\0'; gnode.ch[0] = 'G'; gnode.ch[1] = '\0'; hnode.ch[0] = 'H'; hnode.ch[1] = '\0'; inode.ch[0] = 'I'; inode.ch[1] = '\0'; jnode.ch[0] = 'J'; jnode.ch[1] = '\0'; knode.ch[0] = 'K'; knode.ch[1] = '\0'; lnode.ch[0] = 'L'; lnode.ch[1] = '\0'; mnode.ch[0] = 'M'; mnode.ch[1] = '\0'; nnode.ch[0] = 'N'; nnode.ch[1] = '\0'; onode.ch[0] = 'O'; onode.ch[1] = '\0'; pnode.ch[0] = 'P'; pnode.ch[1] = '\0'; qnode.ch[0] = 'Q'; qnode.ch[1] = '\0'; rnode.ch[0] = 'R'; rnode.ch[1] = '\0'; snode.ch[0] = 'S'; snode.ch[1] = '\0'; tnode.ch[0] = 'T'; tnode.ch[1] = '\0'; unode.ch[0] = 'U'; unode.ch[1] = '\0'; vnode.ch[0] = 'V'; vnode.ch[1] = '\0'; wnode.ch[0] = 'W'; wnode.ch[1] = '\0'; xnode.ch[0] = 'X'; xnode.ch[1] = '\0'; ynode.ch[0] = 'Y'; ynode.ch[1] = '\0'; znode.ch[0] = 'Z'; znode.ch[1] = '\0'; dah_nodeO09.ch[0] = ':'; dah_nodeO09.ch[1] = '\0'; dit_nodeO8.ch[0] = ':'; dit_nodeO8.ch[1] = '\0'; dah_nodeU2.ch[0] = ':'; dah_nodeU2.ch[1] = '\0'; node0.ch[0] = '0'; node0.ch[1] = '\0'; node1.ch[0] = '1'; node1.ch[1] = '\0'; node2.ch[0] = '2'; node2.ch[1] = '\0'; node3.ch[0] = '3'; node3.ch[1] = '\0'; node4.ch[0] = '4'; node4.ch[1] = '\0'; node5.ch[0] = '5'; node5.ch[1] = '\0'; node6.ch[0] = '6'; node6.ch[1] = '\0'; node7.ch[0] = '7'; node7.ch[1] = '\0'; node8.ch[0] = '8'; node8.ch[1] = '\0'; node9.ch[0] = '9'; node9.ch[1] = '\0'; //nodev_dit.ch[0] = '-'; nodev_dit.ch[1] = '\0'; nodeEOW.ch[0] = ':'; nodeEOW.ch[1] = '\0'; root_node.dah = &tnode; root_node.dit = &enode; tnode.dah = &mnode; tnode.dit = &nnode; mnode.dah = &onode; mnode.dit = &gnode; onode.dah = &dah_nodeO09; onode.dit = &dit_nodeO8; dah_nodeO09.dah = &node0; dah_nodeO09.dit = &node9; dit_nodeO8.dah = NULL; dit_nodeO8.dit = &node8; node0.dah = &nodeEOW; nodeEOW.dit = NULL; nodeEOW.dah = NULL; node0.dit = NULL; node9.dah = NULL; node9.dit = NULL; node8.dah = NULL; node8.dit = NULL; gnode.dah = &qnode; gnode.dit = &znode; qnode.dah = NULL; qnode.dit = NULL; znode.dah = NULL; znode.dit = &node7; node7.dah = NULL; node7.dit = NULL; nnode.dah = &knode; nnode.dit = &dnode; knode.dah = &ynode; knode.dit = &cnode; ynode.dah = NULL; ynode.dit = NULL; cnode.dah = NULL; cnode.dit = NULL; dnode.dah = &xnode; dnode.dit = &bnode; xnode.dah = NULL; xnode.dit = NULL; bnode.dah = NULL; bnode.dit = &node6; node6.dah = NULL; node6.dit = NULL; enode.dah = &anode; enode.dit = &inode; anode.dah = &wnode; anode.dit = &rnode; wnode.dah = &jnode; wnode.dit = &pnode; jnode.dah = &node1; jnode.dit = NULL; node1.dah = NULL; node1.dit = NULL; pnode.dah = NULL; pnode.dit = NULL; rnode.dah = NULL; rnode.dit = &lnode; lnode.dah = NULL; lnode.dit = NULL; inode.dah = &unode; inode.dit = &snode; unode.dah = &dah_nodeU2; unode.dit = &fnode; dah_nodeU2.dah = &node2; dah_nodeU2.dit = NULL; node2.dah = NULL; node2.dit = NULL; fnode.dah = NULL; fnode.dit = NULL; snode.dah = &vnode; snode.dit = &hnode; vnode.dah = &node3; vnode.dit = NULL; node3.dah = NULL; node3.dit = NULL; hnode.dah = &node4; hnode.dit = &node5; node4.dah = NULL; node4.dit = NULL; node5.dah = NULL; node5.dit = NULL; } // A-Z, 0-9 flash char letter[36][1] = { 0b10000010, //A 0b01110100, //B 0b01010100, //C 0b01100011, //D 0b10000001, //E 0b11010100, //F 0b00100011, //G 0b11110100, //H 0b11000010, //I 0b10000100, //J 0b01000011, //K 0b10110100, //L 0b00000010, //M 0b01000010, //N 0b00000011, //0 0b10010100, //P 0b00100100, //Q 0b10100011, //R 0b11100011, //S 0b00000001, //T 0b11000011, //U 0b11100100, //V 0b10000011, //W 0b01100100, //X 0b01000100, //Y 0b00110100, //Z 0b00000101, //0 0b10000101, //1 0b11000101, //2 0b11100101, //3 0b11110101, //4 0b11111101, //5 0b01111101, //6 0b00111101, //7 0b00011101, //8 0b00001101 //9 };