private void Movechallenge_Load(object sender, EventArgs e) { viewarray = new List <ViewList>(); for (int i = 0; i < studentname.Length; i++) { ViewList viewList = new ViewList(); viewList.Settext((i + 1).ToString(), studentname[i]); if (i == 0) // 첫 줄은 타이틀 { ViewList title = new ViewList(); title.Settitle(); result.Add(title.GetList()); viewarray.Add(title); } viewarray.Add(viewList); } viewarray.ForEach(x => x.Dock = DockStyle.Top); viewarray.Reverse <ViewList>().ToList().ForEach(x => panel1.Controls.Add(x)); // 역순 추가해야 마지막이 최상단에 위치 buzzer.SetMsgNo(Handle); if (!buzzer.SetConnection()) { MessageBox.Show("수신기 연결 오류"); } Receiver303.StartVote(buzzer.ComNo); checkbuzzer = new bool[bps]; rank = new Dictionary <string, string>(studentname.Length); panel1.Visible = true; }
private void allcolor_Click(object sender, EventArgs e) // 전체 buzzer 색상변경 { try { Receiver303.UpdateAllIdSame(buzzer.ComNo, 0, Convert.ToByte(comboBox1.Text), Convert.ToByte(comboBox2.Text), Convert.ToByte(comboBox3.Text), Convert.ToByte(comboBox4.Text)); } catch (Exception ex) { MessageBox.Show(ex.Message); } }
private void eachcolor_Click(object sender, EventArgs e) // 선택 buzzer 색상변경 { try { Receiver303.UpdateOneId(buzzer.ComNo, Convert.ToInt32(textBox2.Text) - 1, 0, Convert.ToByte(comboBox1.Text), Convert.ToByte(comboBox2.Text), Convert.ToByte(comboBox3.Text), Convert.ToByte(comboBox4.Text)); } catch (Exception ex) { MessageBox.Show(ex.Message); } }
private void Pacer_Load(object sender, EventArgs e) { rank = new Dictionary <string, string>(studentname.Length); buzzer.SetMsgNo(Handle); if (!buzzer.SetConnection()) { MessageBox.Show("수신기 연결 오류"); } Receiver303.StartVote(buzzer.ComNo); Game.recordhistory = game.Recordhistory().OrderByDescending(x => x[1]).ToList();; // 역대 recordhistory 가져오기 Ranking(); }
public void GameRule() // 게임 규칙 { if (showstudent <= studentname.Length) { int id = Convert.ToInt32(buzzer.ID); for (int i = 0; i < checkbuzzer.Length; i++) // 버저의 눌림상태를 번호순으로 확인하여 순서대로 눌릴 수 있도록함 { if (checkbuzzer[i] == false) { if (i == (id - 1) % bps) //버저는 (bps * n) + 1번부터 (bps * n) + bps까지 할당 { checkbuzzer[i] = true; if (!studentname[showstudent - 1].StartsWith("unknown")) // unknown의 경우 DB접근 X { game.Buzzerdata(id, buzzer.Content, buzzer.Color, buzzer.Time); } if (i == 0) // 게임 시작 { stopwatch.Restart(); return; } viewarray[showstudent].Settime(i, stopwatch.Elapsed.ToString().Substring(3, 8)); if (i == bps - 1) // 마지막 버저 { stopwatch.Stop(); checkbuzzer = new bool[bps]; rank.Add(viewarray[showstudent].GetName(), viewarray[showstudent].Gettotal()); List <string> r = viewarray[showstudent].GetList(); result.Add(r); game.UpdateRecord(game.getGamenum(), Convert.ToInt32(r[0]), r[7]); // 기록 DB저장 Ranking(); if (showstudent++ == studentname.Length) // 마지막 참가자 { MessageBox.Show("게임종료"); Game.recordhistory = game.Recordhistory().OrderBy(x => x[1]).ToList(); // 역대 기록 갱신 GetResult.Enabled = true; Receiver303.StopVote(buzzer.ComNo); } } } else { break; } } } } }
private void gamestart_Click(object sender, EventArgs e) // 게임 시작 { gamename = ((Button)sender).Text; if (MessageBox.Show("게임을 생성하시겠습니까?", "확인", MessageBoxButtons.YesNo) == DialogResult.Yes) { Receiver303 connectioncheck = new Receiver303(); connectioncheck.SetMsgNo(Handle); if (!connectioncheck.SetConnection()) { MessageBox.Show("수신기 연결 오류로 게임생성 불가"); return; } gamepanel.Controls.Clear(); Parent.Width = this.Width += 160; db.InsertGame(gamename); int[] stunum = new int[students]; // 학생 고유 번호 int unum = 1; // unknown 번호 for (int i = 0; i < students; i++) { try { stunum[i] = Convert.ToInt32(texts[i].Text.Split('/')[0]); } catch { studentname[i] = studentname[i] == null ? "unknown" + unum++ : studentname[i]; } } db.InsertParticipate(stunum); // 참가인원 등록 switch (gamename) { case "movechallenge": Movechallenge movechallenge = new Movechallenge(studentname); movechallenge.Dock = DockStyle.Fill; gamepanel.Controls.Add(movechallenge); break; case "pacer": Pacer pacer = new Pacer(studentname); pacer.Dock = DockStyle.Fill; gamepanel.Controls.Add(pacer); break; } } }
public void BuzzerSetting_VisibleChanged(object sender, EventArgs e) // 화면변경 시 버저 수신종료, 색상 변경 초기화 { Receiver303.StopVote(buzzer.ComNo); Receiver303.UpdateAllIdSame(buzzer.ComNo, 0, 0, 0, 0, 0); }