當前位置:編程學習大全網 - 源碼下載 - Jflow源代碼

Jflow源代碼

舊的那個!

= = = =代碼= = = =

包com

導入Java . awt . borderlayout;

導入Java . awt . flow layout;

導入Java . awt . event . action event;

導入Java . awt . event . action listener;

導入Java . util . list;

導入javax . swing . jbutton;

導入javax . swing . jframe;

導入javax . swing . jlabel;

導入javax . swing . jlist;

導入javax . swing . jpanel;

導入javax . swing . jtextfield;

/**

*網球比賽

* @作者克裏斯

* @ClassName: Match

* @版本

* @修改者

* @ Copyright @ 2010H & amp;l技術公司。

* @ date 2011-5-24AM 11:29:39

* @描述

*/

公共類Match實現ActionListener{

private JFrame f;

private JTextField tf

私有JPanel容器;

二等兵JList myList

私有JLabel消息;

私有JButton b;

/**

* @作者克裏斯

* @title: main

* @date 2011-5-23上午11:07:27

* @param參數void

*/

公共靜態void main(String[] args) {

Match t = new Match();

t . go();

}

公共void go(){

F = new JFrame("競賽");

f.setLocation(100,200);

f.setSize(600,500);

容器= new JPanel(new BorderLayout());

f.setContentPane(容器);

JPanel title = new JPanel(new FlowLayout());

TF = new JTextField(10);

title . add(TF);

b = new JButton(" OK ");

b . addactionlistener(this);

title . add(b);

message = new JLabel();

title.add(消息);

container.add(title,BorderLayout。北);

my list = new JList();

container.add(myList,BorderLayout。中心);

f . set visible(true);

}

/**

*展示比賽結果。

* @作者克裏斯

* @title:顯示

* @date 2011-5-24上午11:31:05

* @param n void

*/

私有空顯示(整數){

c =新的危機(n);

列表& lt列表& ltstring[]& gt;& gt結果= c . get result();

String[]str = new String[result . size()];

for(int I = 0;我& ltresult . size();i++) {

StringBuilder sb = new StringBuilder();

某人追加(“第壹個”)。追加(i+1)。append(" Day:");

列表& ltstring[]& gt;matchList = result . get(I);

for(String[] match : matchList){

某人追加(“[”)。追加(匹配[0])。追加("-")。追加(匹配[1])。追加("]");

}

str[I]= sb . tostring();

}

my list . setlistdata(str);

message . settext(" ");

f . set visible(true);

}

/**

*清除數據

* @作者克裏斯

* @title:清除

* @ date 2011-5-24AM 11:30:36 void

*/

私有void clear(){

string[]str = { " " };

my list . setlistdata(str);

message . settext(" ");

}

public void action performed(action event e){

clear();

string s = TF . gettext();

if (s == null || " "。equals(s = s . trim()){

Message.setText("請輸入壹個偶數");

}

嘗試{

int n = integer . parse int(s);

如果(n & lt= 0 || n % 2!= 0) {

Message.setText("請輸入壹個偶數");

}否則{

顯示(n);

}

} catch (Exception ex) {

Message.setText("請輸入壹個偶數");

}

f . set visible(true);

}

}

第二節課:

包com

導入Java . util . ArrayList;

導入Java . util . hashmap;

導入Java . util . linked list;

導入Java . util . list;

導入Java . util . map;

導入Java . util . random;

公共類危機{

/* *玩家人數*/

私有int n;

/* *每個運動員都沒有玩過的遊戲key:玩家姓名,value:要玩的遊戲集*/

私人地圖& lt字符串,列表& ltstring[]& gt;& gtplayerMacth

/* *玩家姓名*/

私串[]玩家;

/* *最終每日遊戲分發集合*/

個人分發名單& lt列表& ltstring[]& gt;& gt結果;

/* *所有可選比賽*/

個人分發名單& lt列表& ltstring[]& gt;& gtallMatchData[];

/* *日常遊戲*/

列表& ltstring[]& gt;dayMatch

/* *隨機對象*/

私有隨機r;

/* *當前計算的天數*/

private int nowDay

公共危機(國際)

this.n = n

playerMacth = new HashMap & lt字符串,列表& ltstring[]& gt;& gt();;

result = new ArrayList & lt列表& ltstring[]& gt;& gt();

allMatchData = new linked list[n-1];

r = new Random();

init();

go();

}

/**

*初始化播放器

* @作者克裏斯

* @title: init

* @date 2011-5-23下午04: 22: 32作廢

*/

私有void init(){

//定義玩家的名字,用數字表示,從1開始。

players =新字符串[n];

for(int I = 0;我& lt球員.長度;i++) {

//定義玩家的名字。

players[I]= string . value of(I+1);

//存儲每個玩家要玩的遊戲集合。

列表& ltstring[]& gt;matchList = new LinkedList & ltstring[]& gt;();

//玩家遊戲收藏

playerMacth.put(players[i],matchList);

//播放器組件,不變

//playerlistconst . add(players[I]);

}

//定義每個人的遊戲

for(int I = 0;我& ltplayers . length-1;i++) {

for(int j = I+1;j & lt球員.長度;j++) {

string[]match = {球員[i],球員[j]};//定義壹個競賽

//將此事件添加到相應玩家的比賽集合中。

playerMacth.get(players[i])。添加(匹配);

playerMacth.get(players[j])。添加(匹配);

}

}

}

/**

*隨機獲取當前天數內可以玩的匹配組合,並將該匹配組合從總集合中移除。

*如果當前幾天沒有比賽,先獲得比賽,然後隨機。

* @作者克裏斯

* @title: getNowDayMatch

* @date 2011-5-24上午09:48:23

* @返回列表& ltstring[]& gt;

*/

個人分發名單& ltstring[]& gt;getNowDayMatch(){

if(allMatchData[nowDay]= = null){

setAllMatchNowDay();

}

如果(!allMatchData[nowDay]。isEmpty()) {

int index = r . nextint(allMatchData[now day].size());

列表& ltstring[]& gt;list = allMatchData[nowDay]。get(索引);

allMatchData[nowDay]。移除(索引);

退貨單;

}否則{

返回null

}

}

/**

*取消前壹天的比賽。

* @作者克裏斯

* @title:取消昨天

* @ date 2065 438+01-5-24 09:56:12作廢。

*/

私人作廢取消昨天(){

//清除當前日期的可選匹配組合。

allMatchData[nowDay]= null;

//時間回復到前壹天。

now day-;

//贏得前壹天的遊戲

列表& ltstring[]& gt;matchList = result . get(now day);

//取消前壹天的比賽。

result . remove(nowDay);

//恢復每個運動員沒有參加過的比賽。

for(String[] match : matchList){

playerMacth.get(match[0])。添加(匹配);

playerMacth.get(match[1])。添加(匹配);

}

}

公共void go(){

//循環天數

for(now day = 0;現在& ltn-1;) {

//1.隨機玩遊戲

列表& ltstring[]& gt;matchList = getNowDayMatch();

//沒有競爭組合。回到前壹天取消前壹天的比賽。回到前壹天,跳過這個循環。

if (matchList == null) {

cancel yesterday();

繼續;

}

//3遍歷比賽移除選手,移除選手非比賽。

for(String[] match : matchList){

playerMacth.get(match[0])。移除(匹配);

playerMacth.get(match[1])。移除(匹配);

}

result . add(matchList);

now day++;

}

}

/**

*從玩家1開始,獲取當天所有可組合的事件。

* @作者克裏斯

* @title: setAllMatchNowDay

* @ date 2011-5-24 09:42:51早上作廢。

*/

私有void setAllMatchNowDay(){

allMatchData[nowDay] =新鏈接列表& lt列表& ltstring[]& gt;& gt();

int n = 1;//1號運動員

//這個運動員沒有參加過的比賽。

列表& ltstring[]& gt;matchList = player macth . get(string . value of(n));

for(String[] match : matchList){

列表& ltstring[]& gt;selectedList = new ArrayList & ltstring[]& gt;();

selected list . add(match);

doDetAllMatchNowDay(n+1,selected list);

}

}

/**

*今天比賽的所有組合

* @作者克裏斯

* @title: doDetAllMatchNowDay

* @ date 2011-5-24 09:46:05AM

* @param playerNum

* @param selectedList void

*/

private void doDetAllMatchNowDay(int player num,List & ltstring[]& gt;selectedList){

//運動員姓名

string player = string . value of(player num);

布爾標誌=真;

//判斷這個運動員是否入選。

for(String[]match:selected list){

if(匹配[0]。equals(player) || match[1]。等於(玩家)){

flag = false

打破;

}

}

//已被選中。

if ( flag == false) {

//最後壹個人

if (playerNum == n) {

allMatchData[nowDay]。add(selected list);

}否則{

doDetAllMatchNowDay(player num+1,selected list);

}

返回;

}

//這個運動員沒有參加過的比賽。

列表& ltstring[]& gt;matchList = player macth . get(player);

//這個運動員可以選擇的比賽。

列表& ltstring[]& gt;canDoList = new ArrayList & ltstring[]& gt;();

for(String[] match : matchList){

flag = true

for(String[]selected:selected list){

if(匹配[0]。等於(玩家)){

if(匹配[1]。等於(選定的[0])){

flag = false

}else if(match[1]。等於(selected[1]){

flag = false

}

}否則{

if(匹配[0]。等於(選定的[0])){

flag = false

}else if(匹配[0]。等於(selected[1]){

flag = false

}

}

}

如果(標誌){

can dolist . add(match);

}

}

//遍歷這個運動員可以選擇的遊戲。

for(String[] match : canDoList){

列表& ltstring[]& gt;new list = copyArrayList(selected list);

//錄制當前遊戲

new list . add(match);

//最後壹個人

if (playerNum == n) {

allMatchData[nowDay]。add(new list);

}否則{

doDetAllMatchNowDay(player num+1,new list);

}

}

}

/**

*復制收藏

* @作者克裏斯

* @title: copyArrayList

* @ date 2011-5-24 09:24:44am

* @param list

* @返回列表& ltstring[]& gt;

*/

個人分發名單& ltstring[]& gt;copy ArrayList(List & lt;string[]& gt;列表){

列表& ltstring[]& gt;newList = new ArrayList & ltstring[]& gt;();

for(String[] s : list){

newList.add

}

返回newList

}

公共列表& lt列表& ltstring[]& gt;& gtgetResult() {

返回結果;

}

}

  • 上一篇:家政服務app開發費用怎麽算
  • 下一篇:鹽酸利多卡因註射液是治什麽病的?它的價格是多少?人體註射有害嗎?
  • copyright 2024編程學習大全網