一個游戲的JAVA源碼,大家一起討論下!
<PRE class=java style="FONT-WEIGHT: bold; BACKGROUND-COLOR: #c5c5c5" name="code">package com.pip.util.test;
import java.util.ArrayList; import java.util.List;
class Test { static int ok = 1;
/**
* 有100個人圍成一個圈(編號0-99),從第0號的人開始從1報數, 凡報到3的倍數的人離開圈子,然后再數下去, 直到最后只剩一個人為止,
* 問此人原來的位置是多少號?
*/
private void test1() {
int total = 100;
int start = 1;
List list = new ArrayList();
for (int i = 1; i <= 100; i++) {
Person person = new Person(i, "Y");
list.add(person);
}
List tt = list;
while (true) {
tt = doGame(tt);
System.out.println("count num:" + Test.ok);
int tem = tt.size();
if (tem <= 2)
break;
}
for (int i = 0; i < tt.size(); i++) {
Person person = (Person) tt.get(i);
int index = person.getIndex();
System.out.println(index + 1 + "是最后一個留下的人!");
}
}
private List doGame(List list) {
List lists = new ArrayList();
int size = list.size();
int num = size;
if (size == 2) {
}
for (int i = 0; i < size; i++) {
Person person = (Person) list.get(i);
if ("Y".equals(person.getStatus())) {
int count = i + 1;
if (Test.ok % 3 == 0) {
person.setStatus("N");
num--;
System.out.println("index:" + person.getIndex() + "\t 離開");
} else {
lists.add(person);
}
}
if (num == 1) {
break;
}
Test.ok++;
}
return lists;
}
class Person {
int index;
String status;
public Person() {
}
public Person(int index, String status) {
this.index = index;
this.status = status;
}
public int getIndex() {
return index;
}
public void setIndex(int index) {
this.index = index;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
}
public static void main(String args[]) {
System.out.println("start....");
Test test = new Test();
test.test1();
System.out.println("end!");
}
public static void main1(String[] args) {
int count = 100;
// 剩余人數
int leavings = count;
int[] all = new int[count];
// index人物編號,counter報數
int index = 0, counter = 0;
while (true) {
// 人物對應的值為-1表示出局
if (all[index] != -1) {
all[index] = index + 1;
counter++;
}
if (counter % 3 == 0) {
if (--leavings == 1) {
System.out.println(index);
break;
}
all[index] = -1;
}
index++;
if (index == count - 1) {
index = 0;
}
}
}
}</PRE>
本文由用戶 wf1006 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!